예제 #1
0
 public virtual void RegisterLeader(Leader newLeader)
 {
     if (newLeader == null)
         return;
     leader = newLeader;
     if (!leader.IsOwnedByPlayer())
         Destroy(label);
     Deselect();
     ResetTarget();
     lastOrderer = null;
     aBase = leader.aBase;
     teamColor = leader.teamColor;
     leader.RegisterUnit(this);
     renderer.material.color = teamColor;
     SetOutlineColor(outlineColor);
     float distanceFromLeader = Vector3.Distance(transform.position, leader.transform.position);
     if (leader != (Leader)Commander.player && distanceFromLeader >= MOVE_TO_LEADER_DISTANCE)
     {
         OrderData supportLeader = new OrderData(leader, this);
         supportLeader.SetOrder(Order.move, false);
         supportLeader.SetMoveType(MoveType.DefendSelf);
         supportLeader.SetTarget(leader.transform);
         RecieveOrder(supportLeader);
     }
     else
     {
         leader.UnitRequestOrders(this);
     }
     if (IsOwnedByPlayer() && !IsLedByPlayer())
         MessageList.Instance.AddMessage(uName + ", acknowledging " + leader.name + " as my new leader.");
 }