internal static List <PawnData> FetchAllPawnDatas() { List <PawnData> pawnDatas = new List <PawnData>(); const int timeOutInMilliSec = 1000; try { Client.mConnection.Ext().SetSemaphore("pawnData", timeOutInMilliSec); IObjectSet result = Client.mConnection.QueryByExample(new PawnData()); if (result.Count <= 0) { return(null); } while (result.HasNext()) { PawnData p = (PawnData)result.Next(); Client.mConnection.Ext().Refresh(p, int.MaxValue); pawnDatas.Add(p); } } finally { Client.mConnection.Ext().ReleaseSemaphore("pawnData"); } return(pawnDatas); }
internal static void UpdatePawnData(PawnData pdata) { const int timeOutInMilliSec = 1000; try { Client.mConnection.Ext().SetSemaphore("pawnData", timeOutInMilliSec); IObjectSet result = Client.mConnection.QueryByExample(new PawnData(pdata.id, pdata.ownerId)); PawnData data; if (result.Count <= 0) { data = pdata; } else { data = (PawnData)result.Next(); } data.currentPosId = pdata.currentPosId; data.ownerId = pdata.ownerId; Client.mConnection.Ext().Store(data, int.MaxValue); Client.mConnection.Commit(); } finally { Client.mConnection.Ext().ReleaseSemaphore("pawnData"); } }
/** Manages when the user releases the mouse and tries to make a move */ public void ConfirmMovePawn(object sender, object args) { PlayerController localPlayer = matchController.localPlayer; GameObject obj = ((Draggable)sender).gameObject; PawnData pawn = obj.GetComponent <PawnData>(); Tile initialTile = pawn.GetContainingTile(); // gets the pawn previous position (Tile) Vector3 finalPos = (Vector3)args; Tile finalTile = gameBoard.GetTileNearWorldPosition(finalPos); // finds the Tile where the user wants to move the pawn Vector3 oldPos = ((Draggable)sender).oldPos; Vector3 realFinalPos = oldPos; if (finalTile != null) { Move move = new Move(pawn.pawnType, initialTile.x, initialTile.z, finalTile.x, finalTile.z); if (game.IsMoveValid(move)) { realFinalPos = finalTile.transform.localPosition; localPlayer.UpdatePawnCoordinates(pawn, finalTile.x, finalTile.z); localPlayer.PawnMoved(move); } } realFinalPos.y = oldPos.y; obj.transform.localPosition = realFinalPos; // moves the pawn locally (client side) localPlayer.PlayerMovesThePawn(pawn.gameObject, realFinalPos); // moves the pawn over the network }
private void CmdUpdatePawnCoordinates(GameObject pawnObj, int x, int z) { PawnData pawn = pawnObj.GetComponent <PawnData>(); pawn.x = x; pawn.z = z; }
/** Invoked whenever a pawn is placed at the start of the game */ private void OnPlacePawn(object sender, object args) { Placement placement = (Placement)args; GameObject pawnToSpawn = gameBoard.PlacePawn(placement, ref refTile); PawnData pawnData = pawnToSpawn.GetComponent <PawnData>(); pawnData.x = refTile.x; pawnData.z = refTile.z; NetworkServer.Spawn(pawnToSpawn); }
void OnTriggerEnter(Collider other) { PawnData pawn = other.gameObject.GetComponent <PawnData>(); GameManager.instance.PowerUps.Remove(gameObject); GameManager.instance.availableforPUSpawn.Add(gameObject.transform); Destroy(gameObject); pawn.IncreasedDamage(modifier, duration, isPermanent); }
public Pawn Spawn(string name, Cell cell, int duration) { PawnData stats = Stats.FirstOrDefault(p => p.name == name); if (stats != null) { return(Spawn(stats, cell, duration)); } return(null); }
public void AddLives(int lives, PawnData player) { if (player.gameObject.tag == "Player1") { livesTextP1.text = ((int)lives).ToString(); } if (player.gameObject.tag == "Player2") { livesTextP2.text = ((int)lives).ToString(); } }
public void AddScore(PawnData player, int score) { if (player.gameObject.tag.Equals("Player1")) { scoreTextp1.text = ((int)score).ToString(); } if (player.gameObject.tag.Equals("Player2")) { scoreTextp2.text = ((int)score).ToString(); } }
private IEnumerator AiMovesCoroutine() { yield return(new WaitForSeconds(0.1f)); Move move = alphaBeta.RunAlphaBeta(game); game.MovePawn(move); // makes move in the model PawnData pawn = gameBoard.GetPawnAtCoord(move.startingX, move.startingZ); pawn.x = move.finalX; pawn.z = move.finalZ; pawn.GetComponent <MovePawnAnimation>().moveToDestination = true; // moves pawn in the view (graphically) }
/** Manages the drag of the pawns and their physical movement */ public void MovePawn(object sender, object args) { Draggable draggablePawn = (Draggable)sender; PawnData pawn = draggablePawn.gameObject.GetComponent <PawnData>(); if (!IsPawnTypeValid(pawn, humanPlayer)) { return; } GameObject obj = pawn.gameObject; Vector3 pos = (Vector3)args; pawn.gameObject.transform.localPosition = pos; // moves the pawn locally (client side) }
void OnTriggerEnter(Collider other) { //Get the pawn data of the person who collided with the powerup PawnData pawn = other.gameObject.GetComponent <PawnData>(); GameManager.instance.PowerUps.Remove(gameObject); GameManager.instance.availableforPUSpawn.Add(gameObject.transform); //destroy the powerup Destroy(gameObject); //boost the speed pawn.SpeedBoost(modifier, duration, isPermanent); }
/** Animates the pawn and sends it to the grave when the pawn is eaten */ void Update() { PawnData pawnData = gameObject.GetComponent <PawnData>(); Draggable draggable = gameObject.GetComponent <Draggable>(); Vector3 actualPosition = transform.position; if (pawnData.IsDead() && !hasStartedMovingHorizontally) { if (!hasStartedElevating) { verticalTargetPos = actualPosition + verticalElevation; hasStartedElevating = true; } if (Vector3.Distance(actualPosition, verticalTargetPos) > 0.01f) { transform.position = Vector3.SmoothDamp(transform.position, verticalTargetPos, ref velocity, travelTime); } else { isDoneElevating = true; } } if (isDoneElevating && !hasBeenDeactivated) { if (!hasStartedMovingHorizontally) { hasStartedMovingHorizontally = true; } if (Vector3.Distance(actualPosition, horizontalTargetPos) > 0.01f) { transform.position = Vector3.SmoothDamp(transform.position, horizontalTargetPos, ref velocity, travelTime); } else { isDoneMovingHorizontally = true; } } if (isDoneMovingHorizontally && !hasBeenDeactivated) { hasBeenDeactivated = true; Rigidbody rigidbody = gameObject.GetComponent <Rigidbody>(); rigidbody.isKinematic = false; rigidbody.useGravity = true; draggable.enabled = false; } }
/** Invoked whenever a pawn is eaten */ private void OnPawnEaten(object sender, object args) { Vector2 coord = (Vector2)args; int x = (int)coord.x; int z = (int)coord.y; PawnData pawnData = gameBoard.GetPawnAtCoord(x, z); GameObject pawn = pawnData.gameObject; SendToGrave sendToGrave = pawn.GetComponent <SendToGrave>(); pawnData.x = -1; pawnData.z = -1; sendToGrave.horizontalTargetPos = graveOfTheGeese.transform.position + sendToGrave.verticalElevation; }
/** Manages the drag of the pawns and their physical movement */ public void MovePawn(object sender, object args) { Draggable draggablePawn = (Draggable)sender; PawnData pawn = draggablePawn.gameObject.GetComponent <PawnData>(); PlayerController localPlayer = matchController.localPlayer; if (!IsPawnTypeValid(pawn, localPlayer.pawnType)) { //StartCoroutine(WriteHint("You can only move a pawn of your type!", 3)); return; } GameObject obj = pawn.gameObject; Vector3 pos = (Vector3)args; pawn.gameObject.transform.localPosition = pos; // moves the pawn locally (client side) matchController.localPlayer.PlayerMovesThePawn(draggablePawn.gameObject, pos); // moves the pawn over the network }
void OnCollisionEnter(Collision other) { if (other.gameObject.tag == "Player1" || other.gameObject.tag == "Player2" || other.gameObject.tag == "Enemy") { PawnData pawn = other.gameObject.GetComponent <PawnData>(); if ((pawn.gameObject.tag == "Player1" && playerData.gameObject.tag == "Enemy") || (pawn.gameObject.tag == "Player2" && playerData.gameObject.tag == "Enemy")) { pawn.health -= playerData.damage; if (pawn.health <= 0) { playerDeathAudio.Play(); pawn.lives--; livesKeeper.AddLives(pawn.lives, pawn); other.gameObject.SetActive(false); GameManager.instance.RespawnPlayer(other.gameObject); if (pawn.lives <= 0) { pawn.GameOver(pawn.gameObject); } } } if ((pawn.gameObject.tag == "Enemy" && playerData.gameObject.tag == "Player1") || (pawn.gameObject.tag == "Enemy" && playerData.gameObject.tag == "Player2")) { pawn.health -= playerData.damage; if (pawn.health <= 0) { enemyDeathAudio.Play(); GameManager.instance.Enemies.Remove(pawn.gameObject); Destroy(pawn.gameObject); playerData.score++; scoreKeeper.AddScore(playerData, playerData.score); } } } bulletAudio.Play(); Destroy(gameObject); }
void ReachedDestination() { PawnData pawnData = selectedTile.GetComponent <PawnData>(); if (pawnData.PawnType == PawnData.PawnTypes.Battle) { selectButtonGameObject.SetActive(true); } if (pawnData.PawnType == PawnData.PawnTypes.Chest) { selectButtonGameObject.SetActive(true); } //enable image //set image to tile selectedTileSprite.sprite = selectedTile.GetComponent <SpriteRenderer>().sprite; pawnTileDescription.text = pawnData.Description; pawnTileName.text = pawnData.PawnName; }
void Update() { if (!moveToDestination) { return; } GameBoard gameBoard = FindObjectOfType <GameBoard>(); PawnData pawnData = GetComponent <PawnData>(); Tile tile = gameBoard.GetCorrespondingTile(pawnData.x, pawnData.z); Vector3 actualPos = transform.position; Vector3 finalPos = tile.transform.position; if (Vector3.Distance(actualPos, finalPos) > 0.01f) { transform.position = Vector3.SmoothDamp(transform.position, finalPos, ref velocity, travelTime); } else { velocity = Vector3.zero; moveToDestination = false; } }
public Pawn Spawn(PawnData data, Cell cell, int duration) { if (data != null) { // Create new pawn Pawn instance = Instantiate(Prefab); instance.Data = data; instance.SetCell(cell, true); // This is the final countdown. if (duration > -1) { instance.Statuses.Add(new DeathTimerStatus() { Duration = duration }); } return(instance); } return(null); }
/** Manages when the user releases the mouse and tries to make a move */ public void ConfirmMovePawn(object sender, object args) { GameObject obj = ((Draggable)sender).gameObject; PawnData pawn = obj.GetComponent <PawnData>(); Tile initialTile = pawn.GetContainingTile(); // gets the pawn previous position (Tile) Vector3 finalPos = (Vector3)args; Tile finalTile = gameBoard.GetTileNearWorldPosition(finalPos); // finds the Tile where the user wants to move the pawn Vector3 oldPos = ((Draggable)sender).oldPos; Vector3 realFinalPos = oldPos; if (finalTile != null) { Move move = new Move(pawn.pawnType, initialTile.x, initialTile.z, finalTile.x, finalTile.z); if (game.IsMoveValid(move)) { realFinalPos = finalTile.transform.localPosition; pawn.x = finalTile.x; pawn.z = finalTile.z; game.MovePawn(move); } } realFinalPos.y = oldPos.y; obj.transform.localPosition = realFinalPos; // moves the pawn locally (graphically) }
void Start() { data = GetComponent <PawnData>(); cc = GetComponent <CharacterController>(); }
public void SetPlayer(PawnData data) { playerData = data; }
public override void LoadSavToPawn(PawnData pawn, XElement xElement, SavSlot savSlot) { if (isName) { LoadSavNameToPawn(pawn, xElement); return; } PawnParameter pawnParameter = pawn.GetOrAddParameter(Key); pawnParameter.Value = xElement.GetParsedValueAttribute(); }
// Start is called before the first frame update void Start() { // Get Components data = GetComponent <PawnData>(); movement = GetComponent <PawnMovement>(); }
public abstract void LoadPawnToSav(PawnData pawn, XElement xElement, SavSlot savSlot);
public override void LoadSavToPawn(PawnData pawn, XElement xElement, SavSlot savSlot) { int i = 0; foreach (XElement childElement in xElement.Elements()) { if (i >= Classes.Count) { throw new XmlException(string.Format( "Class array {0} in save config is missing a child class", Name)); } Classes[i].LoadSavToPawn(pawn, childElement, savSlot); ++i; } }
/// <summary> /// Data should initialize to whatever state is in the system at start. /// </summary> /// <param name="transform"></param> /// <param name="data"></param> public PawnMotion(Transform transform, PawnData data) { _pawn = transform.GetComponent<Pawn>(); _transform = transform; _pawnData = data; }
private bool IsPawnTypeValid(PawnData pawnData, PawnType pawnType) { return(pawnData.pawnType == pawnType); }
public void UpdatePawnCoordinates(PawnData pawn, int x, int z) { CmdUpdatePawnCoordinates(pawn.gameObject, x, z); }
private void LoadPawnNameToSav(PawnData pawn, XElement xElement) { string name = pawn.GetParameter(Key).Value as string; int letterIndex = 0; foreach (XElement letterElement in xElement.Elements()) { XAttribute letterAttribute = letterElement.GetValueAttribute(); if (letterIndex < name.Length) { letterAttribute.Value = ((int)name[letterIndex]).ToString(); ++letterIndex; } else if (letterAttribute.Value == "0") { break; } else { letterAttribute.Value = "0"; } } }
public PersonnelController(PawnData data) : base() { }
private void LoadSavNameToPawn(PawnData pawn, XElement xElement) { StringBuilder sb = new StringBuilder(); try { foreach (XElement letterElement in xElement.Elements()) { long value = letterElement.GetParsedValueAttribute(); if (value == 0) { break; } sb.Append((char)value); } pawn.GetOrAddParameter(Key).Value = sb.ToString(); } catch (Exception ex) { throw new XmlException(".sav file contained an invalid Pawn name.", ex); } }
public override void LoadPawnToSav(PawnData pawn, XElement xElement, SavSlot savSlot) { int i = 0; foreach (XElement childElement in xElement.Elements()) { if (i >= Keys.Count) { throw new XmlException(string.Format( "An array in the save config is missing a key " + "for the following element: {0}\n" + "Array's first key is: {1}", childElement.ToString(), Keys.Count > 0 ? Keys[0] : "")); } if (Keys[i].Length > 0) { PawnParameter pawnParameter = pawn.GetParameter(Keys[i]); if (pawnParameter != null) { LoadParameterToSav(pawnParameter, childElement); } } ++i; } }
public override void LoadSavToPawn(PawnData pawn, XElement xElement, SavSlot savSlot) { int i = 0; foreach (XElement childElement in xElement.Elements()) { if (i >= Keys.Count) { throw new XmlException(string.Format( "Array {0} in save config is missing a child class", Name)); } if (Keys[i].Length > 0) { PawnParameter pawnParameter = pawn.GetOrAddParameter(Keys[i]); if (pawnParameter != null) { pawnParameter.Value = childElement.GetParsedValueAttribute(); } } ++i; } }
public abstract void LoadSavToPawn(PawnData pawn, XElement xElement, SavSlot savSlot);
public PawnDataContainer() { pawnData = new PawnData(); dicComponentData = new Dictionary <Type, ComponentData>(); }
public override void LoadPawnToSav(PawnData pawn, XElement xElement, SavSlot savSlot) { if (isName) { LoadPawnNameToSav(pawn, xElement); return; } PawnParameter pawnParameter = pawn.GetParameter(Key); if (pawnParameter != null) { LoadParameterToSav(pawnParameter, xElement); } }
void Start() { data = GetComponent<PawnData>(); }