Inheritance: DeadlyBehavior
示例#1
0
 void Start()
 {
     rb          = GetComponent <Rigidbody2D>();
     cb          = GetComponent <CharacterBehavior>();
     inputBuffer = new Queue <Action>();
     dashEffect  = transform.Find("dash effect").gameObject;
 }
    void OnCollisionEnter(Collision other)
    {
        if (other.gameObject.tag == "Player2")
        {
            if (state == CharacterBehavior.states.JUMP)
            {
                CharacterBehavior cb = other.gameObject.GetComponent <CharacterBehavior>();
                if (cb != null)
                {
                    // if (cb.transform.localPosition.y > characterBehavior.transform.localPosition.y) return;
                    if (cb.state != CharacterBehavior.states.RUN)
                    {
                        return;
                    }
                    if (cb.isOver != null)
                    {
                        return;
                    }
                    if (isOver != null)
                    {
                        return;
                    }

                    //print("Player " + player.id + " con " + cb.player.id);
                    cb.OnAvatarStartCarringSomeone(this);
                    OnAvatarOverOther(cb);
                }
            }
        }
    }
示例#3
0
    void OnTriggerEnter(Collider other)
    {
        if (!isActive)
        {
            return;
        }
        if (attacked)
        {
            return;
        }
        switch (other.tag)
        {
        case "Player":
            characterBehavior = other.transform.GetComponent <CharacterBehavior> ();
            if (characterBehavior != null)
            {
                if (throwItem == null)
                {
                    return;
                }

                throwItem.SetActive(false);

                anim.Play("catapulta");
                attacked = true;
                characterBehavior.SuperJumpByBumped((int)2 * 100, 0.5f, false);
                Vector3 pos = transform.position;
                pos.y += 6;
                pos.z += 2;
                Shoot(pos, transform.localEulerAngles.y);
            }
            break;
        }
    }
示例#4
0
        private void HandleHitCollisions()
        {
            foreach (Entity damager in
                     Utilities.Chain(
                         this.Scene.EntityManager.FindAllByTag(Constants.Tags.Bullet),
                         this.Scene.EntityManager.FindAllByTag(Constants.Tags.Sword)))
            {
                RectangleCollider damagerCollider = damager.FindComponent <RectangleCollider>();
                foreach (Entity other in
                         Utilities.Chain(
                             this.Scene.EntityManager.FindAllByTag(Constants.Tags.Wall),
                             this.Scene.EntityManager.FindAllByTag(Constants.Tags.Member)))
                {
                    RectangleCollider otherCollider = other.FindComponent <RectangleCollider>();

                    if (damagerCollider.Intersects(otherCollider))
                    {
                        bool isGhost = false;
                        if (other.Tag == Constants.Tags.Member)
                        {
                            CharacterBehavior behavior = other.FindComponent <CharacterBehavior>(isExactType: false);
                            if (!behavior.DealDamageToMemberOrFail(this.GetDamageSender(behavior), damager.Tag))
                            {
                                isGhost = true;
                            }
                        }

                        if (!isGhost && damager.Tag == Constants.Tags.Bullet)
                        {
                            damager.FindComponent <BulletBehavior>().MarkAsDead();
                        }
                    }
                }
            }
        }
    void OnAutomataCharacterDie(CharacterBehavior automataCharacter)
    {
        CharacterBehavior parentCharacter = null;
        CharacterBehavior childCharacter  = null;

        foreach (CharacterBehavior cb1 in characters)
        {
            foreach (CharacterBehavior cb2 in cb1.controls.childs)
            {
                if (cb2 == automataCharacter)
                {
                    parentCharacter = cb1;
                    childCharacter  = cb2;
                    parentCharacter.controls.StopAllCoroutines();
                    childCharacter.GetComponent <CharacterAutomata> ().Reset();
                }
            }
        }
        if (childCharacter != null)
        {
            parentCharacter.controls.RemoveChild(childCharacter);
        }

        deadCharacters.Remove(automataCharacter);
    }
示例#6
0
    public void killCharacter(CharacterBehavior characterBehavior)
    {
        if (Game.Instance.state == Game.states.GAME_OVER)
        {
            return;
        }

        characters.Remove(characterBehavior);
        totalCharacters = characters.Count;
        deadCharacters.Add(characterBehavior);
        Data.Instance.events.OnAvatarDie(characterBehavior);

        if (characters.Count == 0)
        {
            StartCoroutine(restart(characterBehavior));
        }
        else
        {
            bool stillPlayingRealCharacters = false;
            foreach (CharacterBehavior cb in characters)
            {
                if (!cb.controls.isAutomata)
                {
                    stillPlayingRealCharacters = true;
                }
            }
            if (!stillPlayingRealCharacters)
            {
                StartCoroutine(restart(characterBehavior));
            }
        }
    }
示例#7
0
        private void ExecuteActionDoor(ActionDoor action)
        {
            if (gManager.onlineGameInterface.WaitingForExpectedState())
            {
                gManager.onlineGameInterface.ForceEndReplayAction(); return;
            }

            CaseBehavior actionCharacterCell = gManager.getCase(action.y1, action.x1).GetComponent <CaseBehavior>();

            CharacterBehavior c = actionCharacterCell.getNonWoundedCharacter();

            Debug.Assert(c != null);
            CharacterBehaviorIHM character = c.GetComponent <CharacterBehaviorIHM>();

            character.characterSelection();
            if (action.action == ActionType.DESTROYDOOR)
            {
                Debug.Assert(character is CB_GuerrierIHM);
                character.GetComponent <CB_GuerrierIHM>().briserHerse();
            }
            else
            {
                Debug.Assert(character is CB_VoleuseIHM);
                character.GetComponent <CB_VoleuseIHM>().changerEtatHerse();
            }
            gManager.onlineGameInterface.ForceEndReplayAction();
        }
示例#8
0
    //InputSaverData lastSavedDataUsed;
    //void Update () {

    //	if (Data.Instance.playMode == Data.PlayModes.PARTYMODE)
    //		return;
    //	if (allPlayersSavedData.Count == 0 || !isPlaying || characters.Count==0)
    //		return;

    //	foreach(CharacterBehavior cb in characters)
    //	{
    //		if (cb.state == CharacterBehavior.states.DEAD ||
    //		    cb.state == CharacterBehavior.states.FALL ||
    //		    cb.state == CharacterBehavior.states.CRASH)
    //		{
    //			//is dead;
    //		} else if(cb.player != null){
    //			UpdatePlayer (cb);
    //		}
    //	}
    //}
    void UpdatePlayer(CharacterBehavior cb)
    {
        int       playerID  = cb.player.id;
        SavedData savedData = allPlayersSavedData [playerID - 1];

        if (savedData.lastIdDataUsed >= savedData.data.Count)
        {
            return;
        }

        InputSaverData isdata = savedData.data [savedData.lastIdDataUsed];

        InputSaverData nextdata = null;

        if (savedData.data.Count > savedData.lastIdDataUsed + 1)
        {
            nextdata = savedData.data [savedData.lastIdDataUsed + 1];
        }

        if (charactersManager.distance >= isdata.distance)
        {
            savedData.lastIdDataUsed++;
            if (isdata.shoot)
            {
                //shoot
                cb.shooter.CheckFire();
            }
            else if (isdata.jump)
            {
                //jump
                cb.Jump();
            }
            else
            {
                //move
                //savedData.lastDirection = isdata.direction;
//				Vector3 pos = cb.transform.position;
//				pos.x = isdata.posX;
//				cb.transform.position = pos;
            }
            //savedData.data.RemoveAt (0);
        }
        if (nextdata != null)
        {
            float moveX = 0.5f;
            if (isdata.posX > nextdata.posX)
            {
                moveX *= -1;
            }
            if (isdata.posX < nextdata.posX)
            {
                moveX *= 1;
            }
            else
            {
                return;
            }
            cb.controls.MoveInX(moveX);
        }
    }
示例#9
0
    void Update()
    {
        if (!isActive)
        {
            return;
        }
        CharacterBehavior cb = charactersManager.getMainCharacter();

        if (cb == null)
        {
            return;
        }

        realPositionZ += (speed * Time.deltaTime);

        Vector3 pos = transform.position;

        pos.z = cb.transform.position.z - activaTionDistance + realPositionZ;
        transform.position = pos;

        if (transform.position.z > cb.transform.position.z + 40)
        {
            Pool();
        }
    }
示例#10
0
 void Start()
 {
     if (GetComponent <CharacterBehavior>())
     {
         cb = GetComponent <CharacterBehavior>();
     }
 }
示例#11
0
    public List <Token> getPickableTokens()
    {
        CaseBehavior currentCell = caseActuelle.GetComponent <CaseBehavior>();

        if (currentCell.isNonWoundedEnemyPresent(gameObject))
        {
            return(new List <Token>());                                                 // cannot pick an object when a non wounded enemy is present
        }
        List <Token> result = new List <Token>();

        foreach (Token token in currentCell.tokens_)
        {
            if (token.GetComponent <CharacterBehavior>() != null)
            {
                CharacterBehavior otherCharacter = token.GetComponent <CharacterBehavior>();
                if (otherCharacter != this && otherCharacter.affiliationJoueur == affiliationJoueur && otherCharacter.wounded && otherCharacter.tokenHolder != this)
                {
                    result.Add(token);                                                                                                                                                  // can autopick wounded ally that the character doesn't already carry
                }
            }
            else // item
            {
                // TODO: Fix the case where an ally thief is standing on the pit
                if (token.GetComponent <Item_Corde>() != null && currentCell.type == CaseBehavior.typeCase.caseFosse && currentCell.isOtherAllyPresent(this))
                {
                    continue; // cannot pick a rope on a pit where an ally is standing
                }
                if (token.tokenHolder != this)
                {
                    result.Add(token); // can pick an item that the character doesn't already carry
                }
            }
        }
        return(result);
    }
示例#12
0
        IEnumerator playScriptedMoves(CharacterBehavior chara, List <GameObject> opponentObjectives)
        {
            yield return(new WaitForSeconds(1.5f));

            int steps = opponentObjectives.Count;

            for (int i = 0; i < steps; i++)
            {
                chara.GetComponent <CharacterBehaviorIHM>().characterSelection();
                yield return(new WaitForSeconds(0.75f));

                // Déplacement
                if (opponentObjectives[i].GetComponent <CaseBehavior>() != null)
                {
                    opponentObjectives[i].GetComponent <CaseBehavior>().cibleAssociated.GetComponent <CibleDeplacementIHM>().moveSelectedTokenToTarget();
                    yield return(new WaitForSeconds(0.75f));
                }
                // Combat
                if (opponentObjectives[i].GetComponent <CharacterBehavior>() != null)
                {
                    yield return(new WaitForSeconds(1.5f));

                    gManager.combatManager.combat(opponentObjectives[i]);
                }
                yield return(new WaitForSeconds(1.5f));
            }
            yield return(new WaitForSeconds(3));
        }
示例#13
0
    private void displayFighter(CharacterBehavior fighter)
    {
        string    prefix;
        Transform fighterDisplay = GetFighterSpriteTransform(fighter, out prefix);

        fighterDisplay.Find(prefix + "FighterSprite").GetComponent <Image>().sprite       = fighter.GetComponent <CharacterBehaviorIHM>().fullCharacterSprite;
        fighterDisplay.Find(prefix + "FighterSprite").GetComponent <FadeSprite>().fighter = fighter;
        //fighterDisplay.Find(prefix+"FighterName").GetComponent<Image>().sprite = fighter.getTokenNameSprite();
        fighterDisplay.Find(prefix + "CombatValue/Text").GetComponent <Text>().text = GetCombatValue(fighter).ToString();

        int bonus = GetItemBonus(fighter);

        if (bonus > 0)
        {
            Debug.Assert(!fighter.wounded);
            fighterDisplay.Find(prefix + "CombatItemsBackground").gameObject.SetActive(true);
            fighterDisplay.Find(prefix + "CombatItem1Sprite").gameObject.SetActive(true);
            fighterDisplay.Find(prefix + "CombatItem1Sprite").GetComponent <Image>().sprite = fighter.tokenTranporte.GetComponent <ItemIHM>().getTokenIcon().GetComponent <SpriteRenderer>().sprite;
            //fighterDisplay.Find(prefix+"CombatItem1Name").gameObject.SetActive(true);
            //fighterDisplay.Find(prefix+"CombatItem1Name").GetComponent<Image>().sprite = fighter.tokenTranporte.GetComponent<ItemIHM>().getTokenNameSprite();
            fighterDisplay.Find(prefix + "CombatBonus").gameObject.SetActive(true);
            fighterDisplay.Find(prefix + "CombatBonus/Text").GetComponent <Text>().text = "+" + bonus.ToString();
        }
        else
        {
            fighterDisplay.Find(prefix + "CombatItemsBackground").gameObject.SetActive(false);
            fighterDisplay.Find(prefix + "CombatItem1Sprite").gameObject.SetActive(false);
            //fighterDisplay.Find(prefix+"CombatItem1Name").gameObject.SetActive(false);
            fighterDisplay.Find(prefix + "CombatBonus").gameObject.SetActive(false);
        }
    }
示例#14
0
 private void StoreDelayedAction(ActionType delayedActionType, CharacterBehavior delayedActionCharacter, CaseBehavior delayedActionTarget)
 {
     Logger.Instance.Log("WARNING", "Delayed Record of Jump");
     this.delayedActionType      = delayedActionType;
     this.delayedActionCharacter = delayedActionCharacter;
     this.delayedActionTarget    = delayedActionTarget;
 }
示例#15
0
 void Start()
 {
     characterBehavior = GetComponent <CharacterBehavior>();
     player            = GetComponent <Player>();
     Invoke("EnabledMovements", 0.5f);
     charactersManager = Game.Instance.GetComponent <CharactersManager>();
 }
 private void OnAvatarCrash(CharacterBehavior cb)
 {
     if (Game.Instance.level.charactersManager.getTotalCharacters() <= 1)
     {
         Dead();
     }
 }
    void OnAvatarDie(CharacterBehavior cb)
    {
        if (gameOver)
        {
            return;
        }
        if (cb.team_for_versus == 1)
        {
            charactersTeam1.Remove(cb);
        }
        else if (cb.team_for_versus == 2)
        {
            charactersTeam2.Remove(cb);
        }

        if (charactersTeam1.Count == 0)
        {
            Data.Instance.events.OnVersusTeamWon(2);
            gameOver = true;
        }
        else if (charactersTeam2.Count == 0)
        {
            Data.Instance.events.OnVersusTeamWon(1);
            gameOver = true;
        }
    }
示例#18
0
    void Start()
    {
        _camera         = GetComponent <Camera>();
        FollowsPlayer   = true;
        _currentZoom    = MinimumZoom;
        _target         = gameObject.GetComponentInParent <playerScript>().transform;
        _targetCollider = _target.GetComponent <Collider2D>();
        if (_target.GetComponent <CharacterBehaviorController>() == null)
        {
            return;
        }
        _targetController = _target.GetComponent <CharacterBehaviorController>();
        _levelBounds      = GameObject.FindGameObjectWithTag("LevelBounds").GetComponent <LevelLimits>();

        lastTargetPosition = _target.position;
        lastmousePosition  = gameObject.GetComponent <Camera>().ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0));
        offsetZ            = _target.position.z;

        _lookDirectionModifier = new Vector3(0, 0, 0);

        Zoom();
        CancelTime = 0f;

        _SpeedUp           = GetComponent <SpeedUp>();
        _CharacterBehavior = _target.GetComponent <CharacterBehavior>();
    }
示例#19
0
 // Use this for initialization
 void Start()
 {
     cbref             = this.GetComponent <CharacterBehavior> ();
     rb                = this.GetComponent <Rigidbody> ();
     rb.freezeRotation = true;
     InitColor();
 }
示例#20
0
    public void Init(int _id)
    {
        this.id = _id;
        SetSettings();

        if (id > 3)
        {
            color = Data.Instance.GetComponent <MultiplayerData>().colors[4];
        }
        else
        {
            color = Data.Instance.GetComponent <MultiplayerData>().colors[id];
        }

        //foreach (TrailRenderer tr in GetComponentsInChildren<TrailRenderer>()) {
        //if (id == 0)
        //	tr.enabled = false;
        //else
        //	tr.material.color = color;
        //}


        characterBehavior = GetComponent <CharacterBehavior>();
        characterBehavior.shooter.ResetWeapons();

        this.id = id;

        particles.SetActive(false);
        OnAvatarProgressBarEmpty();
    }
示例#21
0
        // Au tour du joueur
        public override void myTurnToPlay()
        {
            base.myTurnToPlay();
            PremadeBoardSetupParameters board = GameObject.Find("Board").GetComponent <PremadeBoardSetupParameters>();
            CharacterBehavior           chara = board.mainOpposingCharacter;

            gManager.selectionEnCours = false;
            gManager.actionPoints     = board.opponentObjectives.Count;
            gManager.actionCardsButton.SetActive(false);
            gManager.turnStarted = true;
            if (board.opponentObjectives.Count > 0)
            {
                if (board.opponentObjectives[0].GetComponent <CharacterBehavior>() != null)
                {
                    StartCoroutine(pursueCharacter(chara, board.opponentObjectives, 2));
                }
                else
                {
                    StartCoroutine(playScriptedMoves(chara, board.opponentObjectives));
                }
            }
            else
            {
                Debug.LogError("ScriptedPlayerBehavior, myTurnToPlay: Aucun comportement prévu pour " + chara.name + " pour cette mission");
                gManager.startTurn        = false; // Prevents from displaying Draw action cards button
                gManager.selectionEnCours = true;  // Prevents automatic player change
                StartCoroutine(changePlayer());
            }
        }
    public void OnAvatarCrash(CharacterBehavior characterBehavior)
    {
#if UNITY_ANDROID
        Handheld.Vibrate();
#endif
        killCharacter(characterBehavior);
    }
示例#23
0
        IEnumerator pursueCharacter(CharacterBehavior chara, List <GameObject> opponentObjectives, int movementsThisTurn)
        {
            yield return(new WaitForSeconds(1.5f));

            for (int i = 0; i < movementsThisTurn; i++)
            {
                chara.GetComponent <CharacterBehaviorIHM>().characterSelection();
                yield return(new WaitForSeconds(0.75f));

                if (gManager.adversaireAdjacent)
                {
                    yield return(new WaitForSeconds(1.5f));

                    gManager.combatManager.combat(opponentObjectives[i]);
                    yield return(new WaitForSeconds(1.5f));

                    break;
                }
                else if (opponentObjectives.Count == 1)
                {
                    Debug.Assert(false, "ScriptedPlayerBehavior, pursueCharacter: Créer le chemin vers la cible");
                    gManager.actionPoints = movementsThisTurn + 1;
                    //opponentObjectives.Insert(0, null);
                    StartCoroutine(pursueCharacter(chara, opponentObjectives, movementsThisTurn + 1));
                    break;
                }
                // Déplacement
                if (opponentObjectives[i].GetComponent <CaseBehavior>() != null)
                {
                    opponentObjectives[i].GetComponent <CaseBehavior>().cibleAssociated.GetComponent <CibleDeplacementIHM>().moveSelectedTokenToTarget();
                    yield return(new WaitForSeconds(1.5f));
                }
            }
            yield return(new WaitForSeconds(3));
        }
    public CharacterBehavior addCharacter(Vector3 pos, int id)
    {
        Data.Instance.events.OnAddNewPlayer(id);
        CharacterBehavior newCharacter = null;

        foreach (CharacterBehavior cb in deadCharacters)
        {
            if (cb.player.id == id)
            {
                newCharacter = cb;
            }
        }
        if (newCharacter == null)
        {
            newCharacter = Instantiate(character, Vector3.zero, Quaternion.identity) as CharacterBehavior;
        }
        else
        {
            deadCharacters.Remove(newCharacter);
        }

        Player player = newCharacter.GetComponent <Player> ();

        player.Init(id);
        player.SetInvensible(3);
        player.id = id;
        newCharacter.Revive();
        characters.Add(newCharacter);
        totalCharacters = characters.Count;

        newCharacter.transform.position = pos;
        Data.Instance.events.OnCharacterInit(id);

        return(newCharacter);
    }
示例#25
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Character"/> class.
 /// </summary>
 /// <param name="world">World character currently resides in.</param>
 /// <param name="x">The tile x position.</param>
 /// <param name="y">The tile y position.</param>
 /// <param name="behavior">The type of behavior controlling this character</param>
 public Character(World world, int x, int y, BehaviorType behavior = BehaviorType.None)
 {
     this.world = world;
     this.x = this.newX = x;
     this.y = this.newY = y;
     _baseType = -1;
     _hairType = -1;
     _legsType = -1;
     _torsoType = -1;
     _headType = -1;
     _shieldType = -1;
     _weaponType = -1;
     this.behavior = new CharacterBehavior(this, behavior);
     // Set default stats based on behavior
     switch (behavior)
     {
         case BehaviorType.Villager:
             this.maxHealth = this.health = 100;
             this.attack = 5;
             this.defense = 0;
             this.friendly = true;
             break;
         case BehaviorType.None:
         default:
             this.maxHealth = this.health = 1;
             this.attack = this.defense = 0;
             this.friendly = true;
             break;
     }
 }
示例#26
0
 // TODO: allow to reinitialise gameManager in order to reload during an ongoing game (only needed for debug)
 #region reset
 private void clearTokenData()
 {
     GameObject[] tokens = GameObject.FindGameObjectsWithTag("Token");
     foreach (GameObject token in tokens)
     {
         Token t = token.GetComponent <Token>();
         t.caseActuelle = null;
         t.tokenPlace   = false;
         t.horsJeu      = false;
         if (t.cibleToken != null)
         {
             t.cibleToken.tokenAssociated = null;
             t.cibleToken.locked          = false;
         }
         t.cibleToken = null;
         t.ciblesTokens.Clear();
         t.selected           = false;
         t.deplacementRestant = 0;
         if (token.GetComponent <CharacterBehavior>() != null)
         {
             CharacterBehavior chara = token.GetComponent <CharacterBehavior>();
             chara.deplacementRestant = chara.MOVE_VALUE;
             chara.tokenTranporte     = null;
             chara.actionPoints       = 0;
             chara.wounded            = false;
             chara.freshlyHealed      = false;
             chara.freshlyWounded     = false;
             chara.killed             = false;
             chara.GetComponent <TokenIHM>().getTokenIcon().GetComponent <SpriteRenderer>().color = Color.white;
         }
         token.GetComponent <TokenIHM>().displayToken();
         token.GetComponent <Collider>().enabled = true;
     }
 }
示例#27
0
    void manualTokenExchange()
    {
        CaseBehavior currentCell = associatedCharacter.caseActuelle.GetComponent <CaseBehavior>();

        gManager.exchangeUI.GetComponent <InfoCharacterPanel>().panelToOpenPosition();

        // On ground there can be :
        // 1) nothing. 1 slot on ground needed.
        // 2) 1 item. 1 slot needed if I carry an item, 2 slots if I carry a wounded ally
        // 3) 1 wounded ally. 1 slot needed if I carry a wounded ally, 2 slots if I carry an item.
        // 4) a non wounded ally or an enemy. 2 slots needed (the right one containing the non pickable character)
        // 5) 2 tokens. 2 slots needed.
        int nbSpotOnGround = 0;

        Token[] tokenOnGround = new Token[2];
        foreach (Token token in currentCell.tokens_)
        {
            if (token.gameObject != gameObject && token.tokenHolder != associatedCharacter) // not the moving character or its carried token
            {
                Debug.Assert(nbSpotOnGround < 2, "Too many tokens on ground");
                tokenOnGround[nbSpotOnGround++] = token;
            }
        }

        // if only one token check if another spot is needed
        if (nbSpotOnGround == 1)
        {
            CharacterBehavior chara = tokenOnGround[0].GetComponent <CharacterBehavior>();
            if (chara != null && (chara.affiliationJoueur != associatedToken.affiliationJoueur || !chara.wounded)) // case 4: non pickable character on ground
            {
                ++nbSpotOnGround;                                                                                  // another spot needed
            }
            else if (associatedCharacter.carriedToken != null)
            {
                bool carriedTokenIsCharacter = associatedCharacter.carriedToken.GetComponent <CharacterBehavior>() != null;
                bool groundTokenIsCharacter  = chara != null;
                if (carriedTokenIsCharacter != groundTokenIsCharacter) // case 2 and 3: an item and a wounded character can be on the ground at the same time
                {
                    ++nbSpotOnGround;                                  // another spot needed
                }
            }
        }

        displayGroundSpot(nbSpotOnGround);

        instantiateSpotToken(currentCell, getCarriedSpot(), associatedCharacter.carriedToken);

        if (nbSpotOnGround <= 1)
        {
            instantiateSpotToken(currentCell, getSingleGroundSpot(), tokenOnGround[0]);
        }
        else
        {
            for (int i = 0; i < nbSpotOnGround; ++i)
            {
                instantiateSpotToken(currentCell, getMultipleGroundSpot(i), tokenOnGround[i]);
            }
        }
    }
 void OnAvatarDie(CharacterBehavior player)
 {
     if (Game.Instance.GetComponent <CharactersManager>().getTotalCharacters() > 0)
     {
         return;
     }
     playSound(deathFX, false);
 }
 //void OnSoundFX(string name)
 //{
 //    switch (name)
 //    {
 //        case "enemyShout": audioSource.PlayOneShot(enemyShout); break;
 //        case "enemyDead": audioSource.PlayOneShot(enemyDead); break;
 //        case "consumeHearts": audioSource.PlayOneShot(consumeHearts); break;
 //    }
 //}
 void OnAvatarCrash(CharacterBehavior cb)
 {
     if (Game.Instance.GetComponent <CharactersManager>().getTotalCharacters() > 0)
     {
         return;
     }
     audioSource.Stop();
 }
示例#30
0
 void Start()
 {
     _character = gameObject.GetComponentInParent <CharacterBehavior>();
     if (gameObject.GetComponentInParent <Tank>() != null)
     {
         _tank = _character.GetComponent <Tank>();
     }
 }
示例#31
0
 public void OnAvatarDie(CharacterBehavior cb)
 {
     if (cb.controls.isAutomata)
     {
         return;
     }
     players [cb.player.id].SetState(JoystickPlayer.states.DEAD);
 }
示例#32
0
	// Use this for initialization
	void Start () {
		behavior = gameObject.FindBehavior () as CharacterBehavior;
		animator = behavior.unit.GetComponent <Animator> ();
	}
示例#33
0
 // TODO: Add functionality!
 public void SpawnPlayerCharacter(TileBehavior spawnPos)
 {
     GameObject pc;
     if (character != null)
     {
         pc = GameObject.Instantiate(character.gameObject);
         pc.transform.position = new Vector3(spawnPos.transform.position.x, 0.125f, spawnPos.transform.position.z);
         pc.GetComponent<CharacterBehavior>().Coords = spawnPos.Coords;
         pc.GetComponent<CharacterBehavior>().Owner = playerName;
         CurrentUnit = pc.GetComponent<CharacterBehavior>();
         character = CurrentUnit;
     }
 }
示例#34
0
    void initCardInfo()
    {
        if (debugReady) {

            //
            associatedCharacterBehavior = associatedCharacter.GetComponent<CharacterBehavior> ();
            associatedCharacterBehavior.initCharacter ();

            firstName.text = associatedCharacterBehavior.getFirstName ().ToUpper();
            lastName.text = associatedCharacterBehavior.getLastName ().ToUpper();

            // -- Intitialize the stat bars on the card --

                Color32 faded = new Color32 (167, 167, 167, 128);

                healthPips = healthBar.gameObject.GetComponentsInSiblings<Image>();
                healthPips.updatePips(associatedCharacterBehavior.getHP(), Color.white, faded);

                movePips = moveBar.gameObject.GetComponentsInSiblings<Image>();
                movePips.updatePips(associatedCharacterBehavior.getMoveStat(), Color.white, faded);

                gunPips = gunBar.gameObject.GetComponentsInSiblings<Image>();
                gunPips.updatePips(associatedCharacterBehavior.getGunStat(), Color.white, faded);

                CQCPips = CQCBar.gameObject.GetComponentsInSiblings<Image>();
                CQCPips.updatePips(associatedCharacterBehavior.getCQCStat(), Color.white, faded);
        }

            onColor = Color.white;
            offColor = Color.grey;
            currentColor = offColor;
    }
	/// <summary>
	/// When the player respawns, we reinstate the object
	/// </summary>
	/// <param name="checkpoint">Checkpoint.</param>
	/// <param name="player">Player.</param>
	public virtual void onPlayerRespawnInThisCheckpoint(CheckPoint checkpoint, CharacterBehavior player)
	{
		gameObject.SetActive(true);
	}
示例#36
0
 void reset()
 {
     unitBehavior = unit.GetComponent<CharacterBehavior>();
     //		movesLeft.text = (unitBehavior.getMoveStat ()).ToString();
     queuedPath.Clear ();
 }
示例#37
0
文件: Unit.cs 项目: ConjureETS/VZ
 // Use this for initialization
 void Awake()
 {
     IsCaptured = false;
     CurrentHP = MaxHealth;
        // Debug.Log("Current Human HP: " + CurrentHP);
     Attack = StartingAttack;
     // initialize default specie
     Tag = TagLayerManager.Human;
     Layer = TagLayerManager.HumanLayerIndex;
     IsDead = false;
     _character = GetComponent<CharacterBehavior>();
 }
	/// <summary>
	/// When the player respawns, we reinstate the object
	/// </summary>
	/// <param name="checkpoint">Checkpoint.</param>
	/// <param name="player">Player.</param>
	public virtual void onPlayerRespawnInThisCheckpoint(CheckPoint checkpoint, CharacterBehavior player)
	{
		_lastMaskInUse = 0;
		UpdateMasks (GroundMask, FlyingMask, null, false);
	}
 void Start()
 {
     parent = GetComponentInParent<CharacterBehavior>();
 }
	/// <summary>
	/// When the player respawns, we reinstate this agent.
	/// </summary>
	/// <param name="checkpoint">Checkpoint.</param>
	/// <param name="player">Player.</param>
	public virtual void onPlayerRespawnInThisCheckpoint (CheckPoint checkpoint, CharacterBehavior player)
	{
		_direction = _initialDirection;
		transform.localScale= _initialScale;
		transform.position=_startPosition;
		gameObject.SetActive(true);
	}