Ejemplo n.º 1
0
	//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);
	}
Ejemplo n.º 2
0
	//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);
	}
Ejemplo n.º 3
0
	/// <summary>
	/// Loads the action.
	/// action type is not required
	/// </summary>
	/// <param name="s">S.</param>
	public abstract void loadAction(SerializedCompletedAction s);
Ejemplo n.º 4
0
	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;
	}
Ejemplo n.º 5
0
	public override void loadAction(SerializedCompletedAction s){
		locationToPreformAction = unit.grid.gridLocationToGameGrid(s.locationToPerformAction);
	}
Ejemplo n.º 6
0
	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);
	}
Ejemplo n.º 7
0
	public override SerializedCompletedAction serializeAction(){
		SerializedCompletedAction completedActionSave = new SerializedCompletedAction();
		completedActionSave.actionAmountInt = attackStrength;
		completedActionSave.locationToPerformAction = attackLocation.gridLocation;
		completedActionSave.actionType = typeof(AttackScript);
		return completedActionSave;
	}
Ejemplo n.º 8
0
	public override void loadAction(SerializedCompletedAction s){
		attackStrength = s.actionAmountInt;
		attackLocation = unit.grid.gridLocationToGameGrid(s.locationToPerformAction);
	}