Exemplo n.º 1
0
 public async Task DoActionAsync(CoreBase trainBy)
 {
     for (int i = 0; i < Amount; i++)
     {
         CoreBase g = Prefabs.Instantiate(Identify).GetComponent <CoreBase>();
         g.transform.SetOnHorizon(trainBy.transform.position.x);
         //
         TroopDetails det = g.GetComponent <CoreBase>().GetDetails <TroopDetails>();
         det.DeBuff.AddFlag(AgentDeBuff.Freeze);
         det.SetLevel(trainBy.Details.Level);
         //
         g.transform.parent = trainBy.transform.parent;
         g.SetTeam(trainBy.Team);
         await Awaiters.Seconds(0.1f);
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// 產生護盾
 /// </summary>
 public void MakeShield()
 {
     if (ShieldTime <= 0)
     {
         if (Shield != null)
         {
             Shield.GetDetails <TroopDetails>().HitPoint = 0;
         }
         Shield                  = Instantiate(InstantiateObject).GetComponent <CoreBase>();
         Shield.Team             = _agent.Team;
         Shield.gameObject.layer = 16;
         TroopDetails det = Shield.GetComponent <CoreBase>().GetDetails <TroopDetails>();
         det.Level = _agent.GetDetails <DetailsBase>().Level;
         float scale = Mathf.Pow(det.GrowthRate, det.Level - 1);
         det.MaxHitPoint           = det.HitPoint = (int)(det.MaxHitPoint * scale);
         det.Damage                = (int)(det.Damage * scale);
         det.KnockBack             = (int)(det.KnockBack * scale);
         det.Gold                  = (int)(det.Gold * scale);
         Shield.transform.position = transform.position;
         ShieldTime                = ShieldCoolDown;
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// 初始化
 /// </summary>
 protected override void Awake()
 {
     _details = new TroopDetails(Identify);
     base.Awake();
 }