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); } } } }
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; } }
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); }
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)); } } }
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(); }
//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); } }
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(); } }
void Start() { if (GetComponent <CharacterBehavior>()) { cb = GetComponent <CharacterBehavior>(); } }
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); }
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)); }
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); } }
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; }
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; } }
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>(); }
// Use this for initialization void Start() { cbref = this.GetComponent <CharacterBehavior> (); rb = this.GetComponent <Rigidbody> (); rb.freezeRotation = true; InitColor(); }
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(); }
// 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); }
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); }
/// <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; } }
// 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; } }
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(); }
void Start() { _character = gameObject.GetComponentInParent <CharacterBehavior>(); if (gameObject.GetComponentInParent <Tank>() != null) { _tank = _character.GetComponent <Tank>(); } }
public void OnAvatarDie(CharacterBehavior cb) { if (cb.controls.isAutomata) { return; } players [cb.player.id].SetState(JoystickPlayer.states.DEAD); }
// Use this for initialization void Start () { behavior = gameObject.FindBehavior () as CharacterBehavior; animator = behavior.unit.GetComponent <Animator> (); }
// 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; } }
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); }
void reset() { unitBehavior = unit.GetComponent<CharacterBehavior>(); // movesLeft.text = (unitBehavior.getMoveStat ()).ToString(); queuedPath.Clear (); }
// 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); }