public override void SaveState(PluginDataWrapper pluginData) { var writer = pluginData.GetWriterForWrappedSequentialData(); CutterWrapper.SaveCutters(this, writer, cutters.Values); currentState.Save(writer); }
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); } }
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); }
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); } }
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); } }