Beispiel #1
0
        void OnMovementStarted(WorldWalker walker)
        {
            animationController.PlayExclusive("Assets/Units/Dog/Models/Dog_Run_Cycle_.ani", 0, true);
            animationController.SetSpeed("Assets/Units/Dog/Walk.ani", 2);

            currentState.MovementStarted();
        }
Beispiel #2
0
 void RegisterEvents(WorldWalker walker)
 {
     walker.MovementStarted  += OnMovementStarted;
     walker.MovementFinished += OnMovementFinished;
     walker.MovementFailed   += OnMovementFailed;
     walker.MovementCanceled += OnMovementCanceled;
 }
Beispiel #3
0
        void OnMovementStarted(WorldWalker walker)
        {
            animationController.PlayExclusive("Assets/Units/Chicken/Models/Walk.ani", 0, true);
            animationController.SetSpeed("Assets/Units/Chicken/Models/Walk.ani", 2);

            Shooter.StopShooting();

            if (!AttackMove)
            {
                Shooter.SearchForTarget = false;
            }
        }
Beispiel #4
0
        public override void LoadState(PluginDataWrapper pluginData)
        {
            animationController = CreateAnimationController(Unit);
            walker   = Unit.GetDefaultComponent <WorldWalker>();
            attacker = Unit.GetDefaultComponent <MovingMeeleAttacker>();

            RegisterEvents();
            var reader = pluginData.GetReaderForWrappedSequentialData();

            healthBar = HealthBarControl.Load(Level, Unit, reader);
            reader.GetNext(out bool attackMove);
            AttackMove = attackMove;
        }
Beispiel #5
0
        void RegisterEvents(WorldWalker walker, Shooter shooter, UnitSelector selector)
        {
            walker.MovementStarted  += OnMovementStarted;
            walker.MovementFinished += OnMovementFinished;
            walker.MovementFailed   += OnMovementFailed;
            walker.MovementCanceled += OnMovementCanceled;



            shooter.BeforeShotFired    += BeforeShotFired;
            shooter.TargetAutoAcquired += OnTargetAutoAcquired;
            shooter.TargetDestroyed    += OnTargetDestroyed;

            selector.UnitSelected += OnUnitSelected;
        }
Beispiel #6
0
        public override void LoadState(PluginDataWrapper pluginData)
        {
            animationController = CreateAnimationController(Unit);
            walker = Unit.GetDefaultComponent <WorldWalker>();

            RegisterEvents(walker);

            var reader = pluginData.GetReaderForWrappedSequentialData();

            healthBar    = HealthBarControl.Load(Level, Unit, reader);
            currentState = State.Load(reader, this);
            reader.GetNext(out int treeID);
            targetTree = treeID != 0 ? (Tree)Level.GetBuilding(treeID).BuildingPlugin : null;
            reader.GetNext(out int cutterID);
            Cutter = (TreeCutter)Level.GetBuilding(cutterID).BuildingPlugin;
        }
Beispiel #7
0
        public static Chicken CreateNew(ILevelManager level, IUnit unit, ChickenType type)
        {
            Chicken newChicken = new Chicken(level, unit, type);

            newChicken.animationController = unit.CreateComponent <AnimationController>();
            newChicken.Walker  = WorldWalker.CreateNew(newChicken, level);
            newChicken.Shooter = Shooter.CreateNew(newChicken, level, type.ProjectileType, new Vector3(0, 0.7f, -0.7f), 20);
            newChicken.Shooter.SearchForTarget   = true;
            newChicken.Shooter.TargetSearchDelay = 2;
            newChicken.healthBar = new HealthBarControl(level, unit, 100, new Vector3(0, 15, 0), new Vector2(0.5f, 0.1f), true);

            var selector = UnitSelector.CreateNew(newChicken, level);

            MovingRangeTarget.CreateNew(newChicken, level, new Vector3(0, 0.5f, 0));

            newChicken.RegisterEvents(newChicken.Walker, newChicken.Shooter, selector);

            return(newChicken);
        }
Beispiel #8
0
        public Dog(ILevelManager level, IUnit unit, DogType myType, bool loading)
            : base(level, unit)
        {
            this.myType         = myType;
            this.distCalc       = new DogDistCalc(this, 0.5f, 0.2f, 1);
            unit.AlwaysVertical = false;

            if (loading)
            {
                return;
            }

            animationController = CreateAnimationController(Unit);
            walker = WorldWalker.CreateNew(this, level);
            RegisterEvents(walker);
            MovingRangeTarget.CreateNew(this, level, targetOffset);
            healthBar    = new HealthBarControl(level, unit, 100, new Vector3(0, 1, 0), new Vector2(0.5f, 0.1f), true);
            currentState = new SearchingForTree((State)null, this);
        }
Beispiel #9
0
        public static Wolf CreateNew(ILevelManager level, IUnit unit, WolfType myType)
        {
            Wolf wolf = new Wolf(level, unit, myType);

            wolf.animationController = CreateAnimationController(unit);
            wolf.walker   = WorldWalker.CreateNew(wolf, level);
            wolf.attacker = MovingMeeleAttacker.CreateNew(wolf,
                                                          level,
                                                          true,
                                                          new IntVector2(20, 20),
                                                          1,
                                                          5,
                                                          0.5f);
            wolf.healthBar = new HealthBarControl(level, unit, 100, new Vector3(0, 0.7f, 0), new Vector2(0.5f, 0.1f), true);
            UnitSelector.CreateNew(wolf, level);
            MovingRangeTarget.CreateNew(wolf, level, targetOffset);
            unit.AlwaysVertical = false;
            wolf.RegisterEvents();
            return(wolf);
        }
Beispiel #10
0
 void OnMovementCanceled(WorldWalker walker)
 {
     animationController.Stop("Assets/Units/Chicken/Models/Walk.ani");
     Shooter.SearchForTarget = true;
     Shooter.ResetShotDelay();
 }
Beispiel #11
0
        void OnMovementCanceled(WorldWalker walker)
        {
            animationController.Stop("Assets/Units/Dog/Models/Dog_Run_Cycle_.ani");

            currentState.MovementCanceled();
        }
Beispiel #12
0
 void OnMovementCanceled(WorldWalker walker)
 {
     animationController.Stop("Assets/Units/Wolf/Models/Wolf_Run_cycle_.ani");
 }
Beispiel #13
0
 void OnMovementStarted(WorldWalker walker)
 {
     animationController.PlayExclusive("Assets/Units/Wolf/Models/Wolf_Run_cycle_.ani", 0, true);
     animationController.SetSpeed("Assets/Units/Wolf/Models/Wolf_Run_cycle_.ani", 1);
 }