Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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");
        }
    }
Exemplo n.º 3
0
    /** 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;
    }
Exemplo n.º 5
0
    /** 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);
    }
Exemplo n.º 7
0
    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);
    }
Exemplo n.º 8
0
    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();
        }
    }
Exemplo n.º 9
0
    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();
        }
    }
Exemplo n.º 10
0
    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)
    }
Exemplo n.º 11
0
    /** 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)
    }
Exemplo n.º 12
0
    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);
    }
Exemplo n.º 13
0
    /** 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;
        }
    }
Exemplo n.º 14
0
    /** 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;
    }
Exemplo n.º 15
0
    /** 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
    }
Exemplo n.º 16
0
    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);
    }
Exemplo n.º 17
0
    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;
    }
Exemplo n.º 18
0
    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;
        }
    }
Exemplo n.º 19
0
    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);
    }
Exemplo n.º 20
0
    /** 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)
    }
Exemplo n.º 21
0
 void Start()
 {
     data = GetComponent <PawnData>();
     cc   = GetComponent <CharacterController>();
 }
Exemplo n.º 22
0
 public void SetPlayer(PawnData data)
 {
     playerData = data;
 }
Exemplo n.º 23
0
            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();
            }
Exemplo n.º 24
0
 // Start is called before the first frame update
 void Start()
 {
     // Get Components
     data     = GetComponent <PawnData>();
     movement = GetComponent <PawnMovement>();
 }
Exemplo n.º 25
0
 public abstract void LoadPawnToSav(PawnData pawn, XElement xElement, SavSlot savSlot);
Exemplo n.º 26
0
 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;
     }
 }
Exemplo n.º 27
0
 /// <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;
 }
Exemplo n.º 28
0
 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);
 }
Exemplo n.º 30
0
 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()
 {
 }
Exemplo n.º 32
0
 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);
     }
 }
Exemplo n.º 33
0
 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;
     }
 }
Exemplo n.º 34
0
 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;
     }
 }
Exemplo n.º 35
0
 public abstract void LoadSavToPawn(PawnData pawn, XElement xElement, SavSlot savSlot);
Exemplo n.º 36
0
 public PawnDataContainer()
 {
     pawnData         = new PawnData();
     dicComponentData = new Dictionary <Type, ComponentData>();
 }
Exemplo n.º 37
0
            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);
                }
            }
Exemplo n.º 38
0
 void Start()
 {
     data = GetComponent<PawnData>();
 }