Пример #1
0
        public override void SaveState(PluginDataWrapper pluginData)
        {
            var writer = pluginData.GetWriterForWrappedSequentialData();

            CutterWrapper.SaveCutters(this, writer, cutters.Values);
            currentState.Save(writer);
        }
Пример #2
0
            public override void OnUpdate(float timeStep)
            {
                if (!cutterBuildTimeout.Update(timeStep, true))
                {
                    return;
                }

                if (Player.cutters.Count == TargetNumberOfCutters)
                {
                    Player.currentState = new BuildUnits(this, Player);
                    return;
                }

                if (!Player.type.TreeCutter.Cost.HasResources(Player.Player))
                {
                    return;
                }

                CutterWrapper newCutter = CutterWrapper.CreateNewCutter(Level, Player);

                if (newCutter != null)
                {
                    Player.type.TreeCutter.Cost.TakeFrom(Player.Player);
                    Player.cutters.Add(newCutter.Building, newCutter);
                }
            }
Пример #3
0
            public static Dictionary <IBuilding, CutterWrapper> LoadCutters(SequentialPluginDataReader reader, AggressivePlayer player, ILevelManager level)
            {
                Dictionary <IBuilding, CutterWrapper> cutters = new Dictionary <IBuilding, CutterWrapper>();

                reader.GetNext(out int numberOfCutters);
                for (int i = 0; i < numberOfCutters; i++)
                {
                    CutterWrapper newWrapper = new CutterWrapper(reader, player, level);
                    cutters.Add(newWrapper.cutter.Building, newWrapper);
                    player.takenPositions.Add(newWrapper.position);
                }
                return(cutters);
            }
Пример #4
0
        public override void LoadState(PluginDataWrapper pluginData)
        {
            Keep = GetKeep();
            var reader = pluginData.GetReaderForWrappedSequentialData();

            cutters      = CutterWrapper.LoadCutters(reader, this, Level);
            currentState = State.Load(reader, this);

            foreach (var wolf in Player.GetUnitsOfType(type.Wolf.UnitType))
            {
                wolfs.Add(wolf, (Wolf)wolf.Plugin);
            }

            foreach (var chicken in Player.GetUnitsOfType(type.Chicken.UnitType))
            {
                chickens.Add(chicken, (Chicken)chicken.Plugin);
            }
        }
Пример #5
0
            protected void HoldCutters()
            {
                if (Player.cutters.Count >= TargetNumberOfCutters)
                {
                    return;
                }

                if (!Player.type.TreeCutter.Cost.HasResources(Player.Player))
                {
                    return;
                }

                CutterWrapper newCutter = CutterWrapper.CreateNewCutter(Level, Player);

                if (newCutter != null)
                {
                    Player.type.TreeCutter.Cost.TakeFrom(Player.Player);
                    Player.cutters.Add(newCutter.Building, newCutter);
                }
            }