Ejemplo n.º 1
0
        public static UnitAbility Map(string abString)
        {
            UnitAbility myability = null;

            UnitAbilities myabilities = UnitAbilities.AdrenalGlands;

            if (abString == "AdeptPiercingAttack")
            {
                myabilities = UnitAbilities.ResonatingGlaives;
            }
            else if (abString == "BlinkTech")
            {
                myabilities = UnitAbilities.Blink;
            }
            else if (abString == "Stimpack")
            {
                myabilities = UnitAbilities.Stimpack;
            }
            else if (abString == "ShieldWall")
            {
                myabilities = UnitAbilities.CombatShield;
            }
            else if (abString == "zerglingmovementspeed")
            {
                myabilities = UnitAbilities.MetabolicBoost;
            }
            else if (abString == "zerglingattackspeed")
            {
                myabilities = UnitAbilities.AdrenalGlands;
            }
            else if (abString == "CentrificalHooks")
            {
                myabilities = UnitAbilities.CentrifugalHooks;
            }
            else if (abString == "PunisherGrenades")
            {
                myabilities = UnitAbilities.ConcussiveShells;
            }
            else if (abString == "Charge")
            {
                myabilities = UnitAbilities.Charge;
            }
            else if (abString == "Tier2")
            {
                myabilities = UnitAbilities.Tier2;
            }
            else if (abString == "Tier3")
            {
                myabilities = UnitAbilities.Tier3;
            }
            else
            {
                return(null);
            }

            myability = AbilityPool.Abilities.SingleOrDefault(x => x.Ability == myabilities).DeepCopy();

            return(myability);
        }
Ejemplo n.º 2
0
 internal void StartTwoStepAttack(UnitAbilities unitSource, int atkId)
 {
     if (twoStepCoro != null)
     {
         unitSource.StopCoroutine(twoStepCoro);
     }
     twoStepCoro = unitSource.StartCoroutine(HoldAttackForUserInput(unitSource, atkId));
 }
 internal static void AssignAbilitiesToUI(UnitAbilities abilities)
 {
     Attack[] abilitis = abilities.GetNormalAbilities();
     m.InitList(abilitis.Length);
     for (int i = 0; i < abilitis.Length; i++)
     {
         m.instances[i].GetComponent <ButtonInteraction>().interaction
             = ScriptableObject.CreateInstance <TwoStepAttack>().Init(abilities, i);
     }
 }
Ejemplo n.º 4
0
 // Use this for initialization
 void Start()
 {
     entity    = Entity.RequireEntity(this.gameObject);
     anim      = GetComponentInChildren <Animator>();
     abilities = new UnitAbilities(entity.UID);
     gun       = GetComponentInChildren <GunController>();
     waypoint  = Instantiate(waypoint);
     waypoint.GetComponent <WaypointController>().UID = entity.UID;
     waypoint.gameObject.SetActive(false);
     savedRange = range;
     nav        = GetComponent <NavMeshAgent>();
 }
Ejemplo n.º 5
0
    public void Start()
    {
        UnitOrder = new Order(ID);
        Health    = MaxHealth;

        for (int i = 0; i < _unitAbilities.Count; i++)
        {
            Ability instance = Instantiate(_unitAbilities[i]);
            instance.Owner = this;
            instance.ID    = i;
            UnitAbilities.Add(instance);
        }
    }
Ejemplo n.º 6
0
    IEnumerator HoldAttackForUserInput(UnitAbilities source, int atkId)
    {
        yield return(null);

        while (true)
        {
            if (Input.GetKeyUp(KeyCode.Mouse0))
            {
                break;
            }
            yield return(null);
        }
        source.GetNormalAbilities()[atkId].ApplyDamage(curPlayerUnit, unit.curSlot);
        twoStepCoro = null;
    }
Ejemplo n.º 7
0
 public TwoStepAttack Init(UnitAbilities unitSource, int atkId)
 {
     this.unitSource = unitSource;
     this.atkId      = atkId;
     return(this);
 }