Exemplo n.º 1
0
        private void AddTask(GameState s, RTSUnit unit)
        {
            // Init The Unit
            if (unit.CombatController != null)
            {
                unit.CombatController.Init(s, this, unit.Data.CombatControllerInitArgs);
            }
            if (unit.MovementController != null)
            {
                unit.MovementController.Init(s, this, unit.Data.MovementControllerInitArgs);
            }
            if (unit.AnimationController != null)
            {
                unit.AnimationController.Init(s, this, unit.Data.AnimationControllerInitArgs);
            }
            if (unit.ActionController != null)
            {
                unit.ActionController.Init(s, this, unit.Data.ActionControllerInitArgs);
            }

            var btu = new BTaskUnitDecision(s, unit);

            unit.OnDestruction += (o) => {
                tbEntityDecisions.RemoveTask(btu);
            };
            tbEntityDecisions.AddTask(btu);
        }
Exemplo n.º 2
0
        private void AddTask(GameState s, RTSSquad squad)
        {
            // Init The Squad
            if (squad.TargetingController != null)
            {
                squad.TargetingController.Init(s, this, squad.Team.Race.SCTargeting);
            }
            if (squad.MovementController != null)
            {
                squad.MovementController.Init(s, this, squad.Team.Race.SCMovementInitArgs);
            }
            if (squad.ActionController != null)
            {
                squad.ActionController.Init(s, this, squad.Team.Race.SCActionInitArgs);
            }

            var bts = new BTaskSquadDecision(s, squad);

            squad.OnDeath += (o) => {
                tbSquadDecisions.RemoveTask(bts);
            };
            tbSquadDecisions.AddTask(bts);
        }