//Constructor for AI. public AttackScript(UnitScript u, GridBlock attackLocation) : this(u){ this.attackLocation = attackLocation; if(attackLocation.unitInstalled == null) Debug.LogWarning("No unit to attack!"); SerializedCompletedAction sac = new SerializedCompletedAction(); sac.locationToPerformAction = attackLocation.gridLocation; sac.actionAmountInt = unit.getAttackPower(); loadAction(sac); u.addActionToQueue(this); }
//Constructor for AI. public MoveScript(UnitScript u, GridBlock b) : this(u){ bool validMove = false; adjBlocks = new GridBlock[4]; for(int i = 0; i < adjBlocks.Length; i++){ adjBlocks[i] = u.getBlockList().First.Value.getAdj(i); if(b == adjBlocks[i]) validMove = true; } if(!validMove) Debug.LogWarning("Move not valid!"); SerializedCompletedAction sac = new SerializedCompletedAction(); sac.locationToPerformAction = b.gridLocation; loadAction(sac); u.addActionToQueue(this); }
/// <summary> /// Loads the action. /// action type is not required /// </summary> /// <param name="s">S.</param> public abstract void loadAction(SerializedCompletedAction s);
public override SerializedCompletedAction serializeAction(){ if(locationToPreformAction == null){ Debug.LogError("Action is not set yet!"); } SerializedCompletedAction temp = new SerializedCompletedAction(); temp.locationToPerformAction = locationToPreformAction.gridLocation; temp.actionType = typeof(MoveScript); return temp; }
public override void loadAction(SerializedCompletedAction s){ locationToPreformAction = unit.grid.gridLocationToGameGrid(s.locationToPerformAction); }
private void Rpc_receaveUnitActionsOverNetwork(ushort x, ushort y, byte[] actionType, byte[] actionAmount, ushort[] locX, ushort[] locY){ Type type; ActionScript tmp; SerializedCompletedAction sca = new SerializedCompletedAction(); UnitScript localUnit = localGrid.gameGrid[x, y].unitInstalled; localUnit.resetActionQueue(false); for(int i = 0; i < actionType.Length; i++){ //recreate the action on client type = getActionType(actionType[i]); object[] prm = { localUnit }; tmp = (ActionScript)Activator.CreateInstance(type, prm); sca.actionAmountInt = actionAmount[i]; sca.locationToPerformAction = new GridLocation((int)locX[i], (int)locY[i]); tmp.loadAction(sca); localUnit.addActionToQueue(tmp); } addUnitToActingQueue(x, y); }
public override SerializedCompletedAction serializeAction(){ SerializedCompletedAction completedActionSave = new SerializedCompletedAction(); completedActionSave.actionAmountInt = attackStrength; completedActionSave.locationToPerformAction = attackLocation.gridLocation; completedActionSave.actionType = typeof(AttackScript); return completedActionSave; }
public override void loadAction(SerializedCompletedAction s){ attackStrength = s.actionAmountInt; attackLocation = unit.grid.gridLocationToGameGrid(s.locationToPerformAction); }