Beispiel #1
0
        public override void Execute()
        {
            if (resource == null || resource.Equals(null) || resource.HealthPoints <= 0)
            {
                OnResourceGathered?.Invoke(); return;
            }
            if (!Utils.InRange(unit, unit.Target, unit.unitData.UnitRange))
            {
                unit.ChangeState(typeof(ChaseState)); return;
            }

            GatherResource();
        }
Beispiel #2
0
        public override void Execute()
        {
            if (building == null)
            {
                OnBuildingDone?.Invoke();
            }

            if (!Utils.InRange(unit, unit.Target, unit.unitData.UnitRange))
            {
                unit.ChangeState(typeof(ChaseState)); return;
            }

            timer += Time.deltaTime;

            if (timer > 1 / builderData.BuildSpeed)
            {
                timer = 0;

                Construct();
            }
        }