123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- using UnityEngine;
- using System.Collections;
- public class FlagItem : MapItem
- {
- public enum State
- {
- Base,
- Ground,
- Craft,
- Waiting,
- }
- private State state;
- private int craftId;
- private Craft linkedCraft;
- public int linkedCraftId
- {
- get{
- if(linkedCraft != null)
- return linkedCraft.id;
- return -1;
- }
- }
- public void LinkToCraft(Craft craft)
- {
- this.linkedCraft = craft;
- state = State.Craft;
- }
- public void WaitToLinkId(int craftId)
- {
- this.craftId = craftId;
- state = State.Waiting;
- }
- public override TeamUtil.Team team {
- get {
- return base.team;
- }
- set {
- base.team = value;
- int index = value.GetHashCode() - 1;
- Renderer[] renderers = this.GetComponentsInChildren<Renderer>();
- for(int i=0; i<renderers.Length; i++)
- {
- renderers[i].material.mainTexture = textureArr[index];
- }
- }
- }
- public void PutGround(Vector3 pos)
- {
- this.position = pos;
- LinkToCraft(null);
- state = State.Ground;
- }
- public void PutToBase(Vector3 pos)
- {
- PutGround(pos);
- state = State.Base;
- }
- public bool IsInBase()
- {
- return state == State.Base;
- }
- public bool IsOnGround()
- {
- return state == State.Ground;
- }
- void Update()
- {
- if(linkedCraft != null)
- {
- if(!linkedCraft.IsDead())
- {
- transform.position = linkedCraft.position;
- }
- // else
- // {
- // PutGround(linkedCraft.position);
- // }
- }
- else if(state == State.Waiting)
- {
- Craft craft = map.GetBattleObject(craftId) as Craft;
- if(craft != null)
- {
- LinkToCraft(craft);
- }
- }
- }
- }
|