// private void UpdateInput() // { // if (player.isActionTurn == false) // return; // // if (Input.GetMouseButtonDown(0)) // { // Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); // Vector2 mousePos2D = new Vector2(mousePos.x, mousePos.y); // // RaycastHit2D hit = Physics2D.Raycast(mousePos2D, Vector2.zero); // if (hit.collider != null) // { // GameObject obj = hit.collider.gameObject; // Debug.Log("click object: " + obj.name); // // IAbilityTarget target = obj.GetComponent<IAbilityTarget>(); // if (target != null) // { // target.Selected(this, player.activeAbility); // } // } // } // } private void UpdateAction() { if (curTurnStatus != turnStatus) { curTurnStatus = turnStatus; if (curTurnStatus == TurnStatus.PREPARE) { turnStatus = TurnStatus.SWITCHING; } else if (curTurnStatus == TurnStatus.SWITCHING) { // TODO // 2 = actor nums actionTurn = (actionTurn + 1) % 2; if (actionTurn == TURN_PLAYER) { Debug.Log("player action turn"); player.StartTurn(); } else { Debug.Log("enemy action turn"); enemy.StartTurn(); } } } }
private IEnumerator setStatus(TurnStatus value) { yield return(new WaitForFixedUpdate()); _status = value; yield return(new WaitForFixedUpdate()); }
public void SetBodyDir(TurnStatus status, Vector3 moveDir, GameObject character) { if (moveDir == Vector3.zero) { moveDir = character.transform.forward; } moveDir.y = 0; switch (status) { case TurnStatus.Forward: character.transform.forward = moveDir; break; case TurnStatus.Back: character.transform.forward = -moveDir; break; case TurnStatus.Right: character.transform.forward = moveDir.Vector3RotateInXZ(90); break; case TurnStatus.Left: character.transform.forward = moveDir.Vector3RotateInXZ2(90); break; } }
public void Charge(GameObject weaponGlow, GameObject glow) { if (this.useSpecial && !weaponGlow.activeInHierarchy) { weaponGlow.SetActive(true); this.GetComponent <Animation>().CrossFade("Charge"); this._currentWaitTime = waitTime; this.hasAttacked = false; } else if (!this.useSpecial) { if (glow != null) { weaponGlow.SetActive(false); } this.GetComponent <Animation>().CrossFade("Idle"); this._currentWaitTime = waitTime; this.hasAttacked = false; this._turnStatus = TurnStatus.Idle; } if (!this.GetComponent <Animation>().IsPlaying("Charge")) { this._turnStatus = TurnStatus.Idle; } }
public void Idle() { questionBreakIndex = 1; hasPlayedTeleport = false; if ((_currentWaitTime == waitTime) && _target != null) { float xx = (float)rand.Next(1, 3); if (_startPos != this.transform.position) { _startPos = this.transform.position - this.transform.forward * xx; } } if (_currentWaitTime - Time.fixedDeltaTime > 0) { _currentWaitTime -= Time.fixedDeltaTime; if (Move(this.transform.position, _startPos, moveSpeed, true, true, 0.5f) && !this.GetComponent <Animation>().IsPlaying("Attack")) { } else { this.GetComponent <Animation>().CrossFade("Idle"); this.transform.LookAt(GameObject.FindGameObjectWithTag("Player").transform); if (_target != null) { this.transform.LookAt(_target.transform); } } } else { _turnStatus = TurnStatus.Answering; } }
void SetToIdle() { this.transform.LookAt(_startPos); _currentWaitTime = waitTime; hasAttacked = false; this._turnStatus = TurnStatus.MoveBack; }
public void OnChangeStatus(string roomId, TurnStatus status) { if (_room != roomId) { return; } TurnStatus = status; _guiDispatcher.Invoke(() => { if (CurrentTurn) { if (TurnStatus == TurnStatus.RollDice) { CurrentStatus = "Please roll dice"; } else if (TurnStatus == TurnStatus.Move) { CurrentStatus = "Please play your moves"; } else if (TurnStatus == TurnStatus.EndTurn) { CurrentStatus = "Your turn is ended"; } } if (TurnStatus == TurnStatus.GameOver) { CurrentStatus = "Game Over"; } }); }
public void BreakAttack() { this.GetComponent <Animation>()["Combo" + questionBreakIndex].speed = 1f; if (!this.GetComponent <Animation>().isPlaying) { this._turnStatus = TurnStatus.QuestionBreakEnd; print("sssss"); } }
// Start is called before the first frame update void Start() { this.RotatorMenu = MenuRouter.EnabledMenus["Player Rotator Menu"] as RotatorMenu; if (TurnStatusStartingValue) { BattleEncounterType = (TurnStatus)TurnStatusStartingValue.Value; } Invoke("StartBattleEncounter", .2f); }
void CheckEnemies() { selectedIndex = 0; //change the target enemyList = enemyList.FindAll(p => p.GetComponent <PlayerObject>().state != PlayerState.Dead); //get all enemies that are not dead. print(enemyList.Count); if (enemyList.Count == 0) //check if there are still enemies that are alive { this._turnStatus = TurnStatus.Victory; //if no enemies are alive, do Victory } }
private void Start() { Debug.Assert(player != null, "CHECK"); Debug.Assert(enemy != null, "CHECK"); player.onTurnStart += OnActorTurnStart; player.onTurnFinish += OnActorTurnFinish; enemy.onTurnStart += OnActorTurnStart; enemy.onTurnFinish += OnActorTurnFinish; turnStatus = TurnStatus.PREPARE; }
public void RootedMovement() { if (_target != null) { if (_target.GetComponent <PlayerObject>().state == PlayerState.Dead) { return; } } switch (_turnStatus) { case TurnStatus.Idle: this.GetComponent <Animator>().Play("Idle"); if (_currentWaitTime > 0) { _currentWaitTime -= Time.fixedDeltaTime; } else { _turnStatus = TurnStatus.Answered; } break; case TurnStatus.Answered: if (_target == null) { _target = enemyList[new System.Random().Next(0, enemyList.Count - 1)]; } else { this.transform.LookAt(_target.transform); if (!hasAttacked) { this.hasAttacked = true; this.GetComponent <Rooted>().Attack(); this.GetComponent <Animator>().Play("Attack"); } else { SetToIdle(); } } break; case TurnStatus.MoveBack: this.transform.LookAt(GameObject.FindGameObjectWithTag("Player").transform); this._turnStatus = TurnStatus.Idle; break; } }
public void AnimLogic(EntityBase entity) { LifeComponent lc = entity.GetComp <LifeComponent>(); AnimComponent ac = entity.GetComp <AnimComponent>(); MoveComponent mc = entity.GetComp <MoveComponent>(); PlayerComponent pc = entity.GetComp <PlayerComponent>(); PerfabComponent pbc = entity.GetComp <PerfabComponent>(); if (lc.Life <= 0) { ac.anim.Play("empty", 1); ac.anim.Play("die"); return; } //移动逻辑 if (Vector3.Distance(mc.pos.ToVector(), pbc.perfab.transform.position) > .05f) { Vector3 Dir = mc.dir.ToVector(); if (Dir == Vector3.zero) { Dir = mc.pos.ToVector() - pbc.perfab.transform.position; } TurnStatus status = GetTurnStatus(Dir, pc.faceDir.ToVector()); //身体移动方向 SetBodyDir(status, Dir, ac.perfab); //播放不同动画 SetMoveAnim(status, ac.anim); } else { Vector3 Dir = pc.faceDir.ToVector(); if (entity.GetExistComp <SelfComponent>()) { Dir = InputSystem.skillDirCache; } ac.anim.Play("wait"); if (pc.faceDir.ToVector() != Vector3.zero) { ac.perfab.transform.forward = Dir; } } //上层动画 UpperAnim(entity, ac); }
string GetMoveAnimName(TurnStatus status) { switch (status) { case TurnStatus.Forward: return("move"); //m_character.m_Property.m_walkAnimName; case TurnStatus.Back: return("move_back"); // m_character.m_Property.m_BackWalkAnimName; case TurnStatus.Left: return("move_left"); // m_character.m_Property.m_LeftWalkAnimName; case TurnStatus.Right: return("move_right"); // m_character.m_Property.m_RightWalkAnimName; } return("move");// m_character.m_Property.m_walkAnimName; }
public TurnModel( Team team, int turnNumber, TurnStatus status, string?hintWord, int?wordCount, List <PlayerVote> endTurnVotes, int?guessesRemaining) { Team = team; TurnNumber = turnNumber; Status = status; HintWord = hintWord; WordCount = wordCount; EndTurnVotes = endTurnVotes ?? throw new ArgumentNullException(nameof(endTurnVotes)); GuessesRemaining = guessesRemaining; }
public async static Task run(HttpClient client) { IApiClient apiClient = new ApiClient(client); IGameAccess newAccess = await GameAccess.Create(apiClient, "Pinky and the Brain"); WarRoom board = new WarRoom(newAccess); Console.WriteLine($"Game: {newAccess.GameId}"); int waitCount = 0; while (waitCount < 10) { TurnStatus state = await board.TakeTurn(); switch (state) { case TurnStatus.TookTurn: Console.WriteLine("And so my watch has ended (for now)"); waitCount = 0; break; case TurnStatus.Waiting: Console.WriteLine("Waits patiently..."); waitCount++; break; case TurnStatus.LostGame: Console.WriteLine($"Valar Morghulis"); return; case TurnStatus.WonGame: Console.WriteLine($"Hail to the King!"); return; default: Console.WriteLine("Status Unavailable"); break; } Thread.Sleep(1000); //optimize } }
public void EndTurn() { if (turn < TurnStatus.ENEMY_PLAYER_TRANSITION) { turn++; } else { turn = TurnStatus.PLAYER_TURN; } if (turn.Equals(TurnStatus.PLAYER_ENEMY_TRANSITION)) { StartCoroutine(DelayTwoSecondsThenSuspendPhysics(1)); } else if (turn.Equals(TurnStatus.ENEMY_PLAYER_TRANSITION)) { StartCoroutine(DelayTwoSecondsThenSuspendPhysics(2)); } }
IEnumerator GameFlow() { //StartGame()を待つ while (!gameStart) { yield return(null); } Debug.Log("Game Start!"); yield return(StartCoroutine(cardObjManager.InitHand())); TurnStatus now = (Random.Range(0, 1) == 0)? TurnStatus.PlayerTurn : TurnStatus.AITurn; while (true) { if (now == TurnStatus.PlayerTurn) { yield return(StartCoroutine(human.Turn())); } else { yield return(StartCoroutine(ai.Turn())); } if (gameStatus != GameStatus.Continue) { Debug.Log("Game Finish!"); break; } now = (now == TurnStatus.PlayerTurn)? TurnStatus.AITurn : TurnStatus.PlayerTurn; } winnerShower.SetActive(true); var txt = winnerShower.GetComponentInChildren <Text>(); if (gameStatus == GameStatus.AIWin) { txt.text = "You Lose..."; } else { txt.text = "You Win!"; } }
public void Save(BinaryWriter writer) { // NOTE: It's stupid, but ToEE completely ignores the action structs that are embedded into the // action sequence struct, and will actually duplicate the actions after the action sequence array. Span <byte> padding = stackalloc byte[32 * 0x58]; writer.Write(padding); writer.WriteInt32(Actions.Length); writer.WriteInt32(CurrentActionIndex); writer.WriteInt32(0); // Previous Sequence (pointer, transient data) writer.WriteInt32(0); // Interrupt Sequence (pointer, transient data) var flags = 0; if (IsPerforming) { flags |= 1; } if (IsInterrupted) { flags |= 2; } writer.WriteInt32(flags); TurnStatus.Save(writer); writer.WriteInt64(0); // Skip transient performer object handle writer.WriteLocationAndOffsets(PerformerLocation); writer.WriteInt64(0); // Skip transient target object handle // Skip the spell packet body, because ToEE was lazy and just saved the structure directly, // the packet only contains invalid object handles (since they are transient) and not the object ids // that are required to restore the handles. Instead of fixing this by saving information after the // sequences, ToEE saves the spell packets in action_sequencespellpackets.bin instead. Span <byte> padding2 = stackalloc byte[0xae8]; writer.Write(padding2); writer.WriteInt32(0); // Transient action pointer writer.WriteInt32(IgnoreLineOfSight ? 1 : 0); }
public async Task TakeTurnReturnsStatus(bool currentTurn, int?winner, TurnStatus status) { GameResult mockedResult = new GameResult() { player = 1 }; PlayerState mockedState = new PlayerState() { winner = winner, current_turn = currentTurn, territories = new Territory[] { new Territory() { territory = 1, territory_name = "" } } }; mockAccess.Setup(a => a.CurrentPlayer).Returns(1); mockAccess.Setup(a => a.GetPlayerState()).ReturnsAsync(mockedState); mockAccess.Setup(a => a.PlaceArmies(It.IsAny <int>(), It.IsAny <int>())).ReturnsAsync(true); TurnStatus actual = await board.TakeTurn(); Assert.Equal(status, actual); }
void CancelBreak() { questionBreakIndex = 0; _turnStatus = TurnStatus.Idle; }
public void AiMovement() { print("Ai movement"); if (_target != null) { if (_target.GetComponent <PlayerObject>().state == PlayerState.Dead) { return; } } switch (_turnStatus) { case TurnStatus.Idle: if (_currentWaitTime > 0) { _currentWaitTime -= Time.fixedDeltaTime; } else { _turnStatus = TurnStatus.Answered; } break; case TurnStatus.Answered: if (_target == null) { _target = enemyList[new System.Random().Next(0, enemyList.Count - 1)]; } else { this.transform.LookAt(_target.transform); print(_target.name); if (Vector3.Distance(this.transform.position, _target.transform.position) > 1 && !hasAttacked) { this.gameObject.transform.position = Vector3.MoveTowards(this.gameObject.transform.position, _target.transform.position, moveSpeed); this.GetComponent <Animation>().CrossFade("Run"); } else { if (!hasAttacked) { this.GetComponent <Animation>().CrossFade("Attack"); this.hasAttacked = true; _target.GetComponent <PlayerObject>().ApplyDamage(this.Damage); damageResult = Instantiate(_damageResult, Vector3.up + _target.transform.position, this.transform.rotation) as GameObject; damageResult.transform.Find("Text").GetComponent <Text>().text = "-" + this.Damage; } else { if (!this.GetComponent <Animation>().IsPlaying("Attack")) { this.GetComponent <Animation>().CrossFade("Idle"); SetToIdle(); } } } } break; case TurnStatus.MoveBack: float dis = Vector3.Distance(this.transform.position, _startPos); if (dis > 1) { this.transform.position = Vector3.MoveTowards(this.transform.position, _startPos, moveSpeed); this.GetComponent <Animation>().CrossFade("Run"); this.transform.LookAt(_startPos); } else { this.GetComponent <Animation>().CrossFade("Idle"); this.transform.LookAt(GameObject.FindGameObjectWithTag("Player").transform); this._turnStatus = TurnStatus.Idle; } break; } }
public void PlayerMovement(Player _p) { CheckEnemies(); cursorMove(); switch (_turnStatus) { case TurnStatus.QuestionBreakSetup: BreakCharge(_p.glow); break; case TurnStatus.QuestionBreakInteract: BreakInteract(); break; case TurnStatus.QuestionBreakAttack: BreakAttack(); break; case TurnStatus.QuestionBreakEnd: questionBreakIndex += 1; if (questionBreakIndex <= 3) { this._turnStatus = TurnStatus.QuestionBreakInteract; } else { RenderSettings.fogColor = Color.cyan; RenderSettings.fogDensity = 0.09f; RenderSettings.fog = true; this._turnStatus = TurnStatus.Setup; _p.glow.SetActive(false); } break; case TurnStatus.Setup: Charge(_p.weaponGlow, _p.glow); break; case TurnStatus.Idle: Idle(); break; case TurnStatus.Answering: _target = enemyList[selectedIndex]; if (!this.GetComponent <Animation>().IsPlaying("Hit")) { this.GetComponent <Animation>().CrossFade("Idle"); } float x = (float)rand.Next(-5, 5); float y = (float)rand.Next(-3, 3); if (_startPos != this.transform.position) { _startPos = _target.transform.position + new Vector3(x, 0, y); } break; case TurnStatus.Answered: if (_target == null) { _target = enemyList[selectedIndex]; } else { if (!hasAttacked) { if (!Move(this.transform.position, _target.transform.position, moveSpeed, true, true, 1f)) { if (!useSpecial) { Attack(this._anim, this._target, this.Damage); } else { SpecialAttack(this._anim, this._target, this.Damage); } } } else { if (!this.GetComponent <Animation>().IsPlaying("Attack") && !this.GetComponent <Animation>().IsPlaying("Special")) { this._turnStatus = TurnStatus.MoveBack; } } } break; case TurnStatus.MoveBack: float dis = Vector3.Distance(this.transform.position, _startPos); if (Move(this.transform.position, _startPos, moveSpeed, true, true, 0.5f) && !this.GetComponent <Animation>().IsPlaying("Attack") && !this.GetComponent <Animation>().IsPlaying("Special")) { } else { this.GetComponent <Animation>().CrossFade("Idle"); this.transform.LookAt(GameObject.FindGameObjectWithTag("Player").transform); this.transform.LookAt(_target.transform); this._turnStatus = TurnStatus.AfterAttack; } break; case TurnStatus.AfterAttack: this._turnStatus = TurnStatus.Setup; break; } }
/// <summary> /// 创建状态 /// </summary> /// <param name="Core">雷达拥有者的核心信息</param> /// <param name="f">雷达拥有视野</param> public static StatusM Create(int SceneID, int ResalseSceneID, int SkillID, SkillStatusInfo Info) { if (Info == null) { return(null); } StatusType s = (StatusType)Info.m_type; StatusM status = null; switch (s) { case StatusType.AddAttr: status = new AddAttrStatus(); break; case StatusType.Vertigo: status = new VertigoStatus(); break; case StatusType.Silence: status = new SilenceStatus(); break; case StatusType.Vampire: status = new VampireStatus(); break; case StatusType.Rebound: status = new ReboundStatus(); break; case StatusType.Invisible: status = new InvisibleStatus(); break; case StatusType.Invincible: status = new InvincibleStatus(); break; case StatusType.Transfiguration: status = new TransfigurationStatus(); break; case StatusType.Summon: status = new SummonStatus(); break; case StatusType.ClickFly: status = new ClickFlyStatus(); break; case StatusType.AbsorbDamage: status = new AbsorbDamageStatus(); break; case StatusType.Virtual: status = new VirtualStatus(); break; case StatusType.Shield: status = new ShieldStatus(); break; case StatusType.Sputtering: status = new SputteringStatus(); break; case StatusType.Damnation: status = new DamnationStatus(); break; case StatusType.ImmunePhysical: status = new ImmunePhysicalStatus(); break; case StatusType.ImmunityMagic: status = new ImmunityMagicStatus(); break; case StatusType.IceBuild: status = new IceBuildStatus(); break; case StatusType.Ring: status = new RingStatus(); break; case StatusType.Taunt: status = new TauntStatus(); break; case StatusType.StaticElec: status = new StaticElecStatus(); break; case StatusType.Still: status = new StillStatus(); break; case StatusType.Squash: status = new SquashStatus(); break; case StatusType.Sauna: status = new SaunaStatus(); break; case StatusType.KTV: status = new KTVStatus(); break; case StatusType.ImmuneState: status = new ImmuneState(); break; case StatusType.NoSquash: status = new NoSquashStatus(); break; case StatusType.paralysis: status = new ParalysisStatus(); break; case StatusType.PhyAnitInterrupt: status = new PhyAnitInterruptStatus(); break; case StatusType.MagAnitInterrupt: status = new MagAnitInterruptStatus(); break; case StatusType.Cleanse: status = new CleanseStatus(); break; case StatusType.Charm: status = new CharmStatus(); break; case StatusType.BuildDestory: status = new BuildDestoryStatus(); break; case StatusType.Mark: status = new MarkStatus(); break; case StatusType.RunAway: status = new RunAwayStaus(); break; case StatusType.FakeTaunt: status = new FakeTauntStatus(); break; case StatusType.Die: status = new DieStatus(); break; case StatusType.Turn: status = new TurnStatus(); break; case StatusType.WetBody: status = new WetBodyStatus(); break; case StatusType.Berserker: status = new BerserkerStatus(); break; case StatusType.Paralyze: status = new ParalyzeStatus(); break; case StatusType.DieMark: status = new DieMarkStatus(); break; case StatusType.Sleep: status = new SleepStatus(); break; case StatusType.TearOfMermaid: status = new TearOfMermaidStatus(); break; case StatusType.Trapped: status = new TrapedStatus(); break; case StatusType.KickedBack: status = new KickedBackStatus(); break; case StatusType.WhipCorpse: status = new WhipCorpseStatus(); break; case StatusType.FireShield: status = new FireShieldStatus(); break; default: break; } return(status); }
public void Charge(GameObject weaponGlow ,GameObject glow) { if (this.useSpecial && !weaponGlow.activeInHierarchy) { weaponGlow.SetActive(true); this.GetComponent<Animation>().CrossFade("Charge"); this._currentWaitTime = waitTime; this.hasAttacked = false; } else if (!this.useSpecial) { if (glow != null) weaponGlow.SetActive(false); this.GetComponent<Animation>().CrossFade("Idle"); this._currentWaitTime = waitTime; this.hasAttacked = false; this._turnStatus = TurnStatus.Idle; } if (!this.GetComponent<Animation>().IsPlaying("Charge")) { this._turnStatus = TurnStatus.Idle; } }
//COMBAT STUFF START void StartPlayerTurn() { turnStatus = TurnStatus.Player; uiToggler.EnableTurnoverButton(); playerHandManager.NewPlayerTurnStart(); }
public void AiMovement() { print("Ai movement"); if (_target != null) if (_target.GetComponent<PlayerObject>().state == PlayerState.Dead) return; switch (_turnStatus) { case TurnStatus.Idle: if (_currentWaitTime > 0) _currentWaitTime -= Time.fixedDeltaTime; else _turnStatus = TurnStatus.Answered; break; case TurnStatus.Answered: if (_target == null) _target = enemyList[new System.Random().Next(0, enemyList.Count - 1)]; else{ this.transform.LookAt(_target.transform); print(_target.name); if (Vector3.Distance(this.transform.position, _target.transform.position) > 1 && !hasAttacked) { this.gameObject.transform.position = Vector3.MoveTowards(this.gameObject.transform.position, _target.transform.position, moveSpeed); this.GetComponent<Animation>().CrossFade("Run"); } else { if (!hasAttacked){ this.GetComponent<Animation>().CrossFade("Attack"); this.hasAttacked = true; _target.GetComponent<PlayerObject>().ApplyDamage(this.Damage); damageResult = Instantiate(_damageResult, Vector3.up + _target.transform.position, this.transform.rotation) as GameObject; damageResult.transform.Find("Text").GetComponent<Text>().text = "-" +this.Damage; } else{ if (!this.GetComponent<Animation>().IsPlaying("Attack")) { this.GetComponent<Animation>().CrossFade("Idle"); SetToIdle(); } } } } break; case TurnStatus.MoveBack: float dis = Vector3.Distance(this.transform.position, _startPos); if (dis > 1){ this.transform.position = Vector3.MoveTowards(this.transform.position, _startPos, moveSpeed); this.GetComponent<Animation>().CrossFade("Run"); this.transform.LookAt(_startPos); } else{ this.GetComponent<Animation>().CrossFade("Idle"); this.transform.LookAt(GameObject.FindGameObjectWithTag("Player").transform); this._turnStatus = TurnStatus.Idle; } break; } }
public void RpcUpdateClientStatus(TurnStatus status) { this.status = status; }
public void SetMoveAnim(TurnStatus status, Animator anim) { string animName = GetMoveAnimName(status); anim.Play(animName); }
public void BreakCharge(GameObject glow) { if (this.GetComponent<TrailRenderer>() == null) this.gameObject.AddComponent<TrailRenderer>(); this.GetComponent<TrailRenderer>().startWidth = 3f; this.GetComponent<TrailRenderer>().endWidth = 0.5f; this.GetComponent<TrailRenderer>().material.color = Color.green; if (_target != null) { _target.transform.LookAt(this.transform); _target.gameObject.GetComponent<Animation>().Play("Hit"); } if (Vector3.Distance(this.transform.position, this._target.transform.position) <= 5) { if (!hasPlayedTeleport) { if (audioTeleport != null) _audioSource.PlayOneShot(audioTeleport); hasPlayedTeleport = true; } _anim.Play("Run"); this.transform.LookAt(_target.transform.forward * 6 + _target.transform.position ); foreach (Collider _c in this.gameObject.GetComponentsInChildren<Collider>()) _c.enabled = false; this.GetComponent<Rigidbody>().useGravity = false; this.gameObject.transform.position = Vector3.MoveTowards(this.transform.position, _target.transform.forward * 6 + _target.transform.position + Vector3.right, 0.2f); return; }else{ this.gameObject.GetComponent<TrailRenderer>().enabled = false; foreach (Collider _c in this.gameObject.GetComponentsInChildren<Collider>()) _c.enabled = true; this.transform.LookAt(_target.transform); this.GetComponent<Rigidbody>().useGravity = true; } if (glow.activeInHierarchy) { if (!this.GetComponent<Animation>().IsPlaying("Charge")) { this._turnStatus = TurnStatus.QuestionBreakInteract; } } else { this.GetComponent<Animation>().CrossFade("Charge"); if (this.GetComponent<Animation>().IsPlaying("Charge")) glow.SetActive(true); this._currentWaitTime = waitTime; this.hasAttacked = false; if (_target != null) this.transform.LookAt(_target.transform); RenderSettings.fogColor = Color.yellow; RenderSettings.fogDensity = 0.09f; RenderSettings.fog = true; } }
/// <summary> /// While the game is playing out, continuously check for data being sent from the server to update the variables /// Valid, Turn and Status. /// </summary> private static void UpdateTurnAndGameStatus() { while (Status == GameStatus.Playing) { NetworkStream lNetworkStream = GameClient.GetStream(); string JSON_string = String.Empty; while (JSON_string == String.Empty) { int byteCount = lNetworkStream.Read(_BufferSize, 0, _BufferSize.Length); JSON_string = _EncodingInstance.GetString(_BufferSize, 0, byteCount); Thread.Sleep(5); } if (JSON_string.StartsWith(PREFIX_YOURT)) { Turn = TurnStatus.YourTurn; } else { GameState = DataProcessor.DeserializeGameStateData(JSON_string.Substring(5)); switch (GameState.GameState) { case GS_VALIDMOVE: Valid = ValidStatus.Valid; Turn = TurnStatus.EnemyTurn; break; case GS_INVALIDMOVE: Valid = ValidStatus.Invalid; Turn = TurnStatus.YourTurn; break; case GS_YOUWON: Valid = ValidStatus.Valid; Turn = TurnStatus.NoTurn; Status = GameStatus.YouWon; break; case GS_YOULOST: Valid = ValidStatus.Valid; Turn = TurnStatus.NoTurn; Status = GameStatus.YouLost; break; case GS_DRAW: Valid = ValidStatus.Valid; Turn = TurnStatus.NoTurn; Status = GameStatus.Draw; break; case GS_VALIDENEMYMOVE: //Der Gegner hat einen gültigen Zug gemacht. Die INfo, dass ich dran bin, kommt in separater Nachricht. default: break; } } } }
public void RootedMovement() { if (_target != null) if (_target.GetComponent<PlayerObject>().state == PlayerState.Dead) return; switch (_turnStatus) { case TurnStatus.Idle: this.GetComponent<Animator>().Play("Idle"); if (_currentWaitTime > 0) _currentWaitTime -= Time.fixedDeltaTime; else _turnStatus = TurnStatus.Answered; break; case TurnStatus.Answered: if (_target == null) _target = enemyList[new System.Random().Next(0, enemyList.Count - 1)]; else { this.transform.LookAt(_target.transform); if (!hasAttacked) { this.hasAttacked = true; this.GetComponent<Rooted>().Attack(); this.GetComponent<Animator>().Play("Attack"); } else { SetToIdle(); } } break; case TurnStatus.MoveBack: this.transform.LookAt(GameObject.FindGameObjectWithTag("Player").transform); this._turnStatus = TurnStatus.Idle; break; } }
public void PlayerMovement(Player _p) { CheckEnemies(); cursorMove(); switch (_turnStatus) { case TurnStatus.QuestionBreakSetup: BreakCharge(_p.glow); break; case TurnStatus.QuestionBreakInteract: BreakInteract(); break; case TurnStatus.QuestionBreakAttack: BreakAttack(); break; case TurnStatus.QuestionBreakEnd: questionBreakIndex += 1; if (questionBreakIndex <= 3)this._turnStatus = TurnStatus.QuestionBreakInteract; else { RenderSettings.fogColor = Color.cyan; RenderSettings.fogDensity = 0.09f; RenderSettings.fog = true; this._turnStatus = TurnStatus.Setup; _p.glow.SetActive(false); } break; case TurnStatus.Setup: Charge(_p.weaponGlow , _p.glow); break; case TurnStatus.Idle: Idle(); break; case TurnStatus.Answering: _target = enemyList[selectedIndex]; if (!this.GetComponent<Animation>().IsPlaying("Hit")) this.GetComponent<Animation>().CrossFade("Idle"); float x = (float)rand.Next(-5,5); float y = (float)rand.Next(-3,3); if (_startPos != this.transform.position) _startPos = _target.transform.position + new Vector3(x, 0, y); break; case TurnStatus.Answered: if (_target == null) _target = enemyList[selectedIndex]; else { if (!hasAttacked) { if (!Move(this.transform.position, _target.transform.position, moveSpeed, true, true, 1f)) { if (!useSpecial) Attack(this._anim, this._target , this.Damage); else SpecialAttack(this._anim,this._target, this.Damage); } } else { if (!this.GetComponent<Animation>().IsPlaying("Attack") && !this.GetComponent<Animation>().IsPlaying("Special")) this._turnStatus = TurnStatus.MoveBack; } } break; case TurnStatus.MoveBack: float dis = Vector3.Distance(this.transform.position, _startPos); if (Move(this.transform.position, _startPos, moveSpeed, true, true, 0.5f) && !this.GetComponent<Animation>().IsPlaying("Attack") && !this.GetComponent<Animation>().IsPlaying("Special")) { } else{ this.GetComponent<Animation>().CrossFade("Idle"); this.transform.LookAt(GameObject.FindGameObjectWithTag("Player").transform); this.transform.LookAt(_target.transform); this._turnStatus = TurnStatus.AfterAttack; } break; case TurnStatus.AfterAttack: this._turnStatus = TurnStatus.Setup; break; } }
public void BreakCharge(GameObject glow) { if (this.GetComponent <TrailRenderer>() == null) { this.gameObject.AddComponent <TrailRenderer>(); } this.GetComponent <TrailRenderer>().startWidth = 3f; this.GetComponent <TrailRenderer>().endWidth = 0.5f; this.GetComponent <TrailRenderer>().material.color = Color.green; if (_target != null) { _target.transform.LookAt(this.transform); _target.gameObject.GetComponent <Animation>().Play("Hit"); } if (Vector3.Distance(this.transform.position, this._target.transform.position) <= 5) { if (!hasPlayedTeleport) { if (audioTeleport != null) { _audioSource.PlayOneShot(audioTeleport); } hasPlayedTeleport = true; } _anim.Play("Run"); this.transform.LookAt(_target.transform.forward * 6 + _target.transform.position); foreach (Collider _c in this.gameObject.GetComponentsInChildren <Collider>()) { _c.enabled = false; } this.GetComponent <Rigidbody>().useGravity = false; this.gameObject.transform.position = Vector3.MoveTowards(this.transform.position, _target.transform.forward * 6 + _target.transform.position + Vector3.right, 0.2f); return; } else { this.gameObject.GetComponent <TrailRenderer>().enabled = false; foreach (Collider _c in this.gameObject.GetComponentsInChildren <Collider>()) { _c.enabled = true; } this.transform.LookAt(_target.transform); this.GetComponent <Rigidbody>().useGravity = true; } if (glow.activeInHierarchy) { if (!this.GetComponent <Animation>().IsPlaying("Charge")) { this._turnStatus = TurnStatus.QuestionBreakInteract; } } else { this.GetComponent <Animation>().CrossFade("Charge"); if (this.GetComponent <Animation>().IsPlaying("Charge")) { glow.SetActive(true); } this._currentWaitTime = waitTime; this.hasAttacked = false; if (_target != null) { this.transform.LookAt(_target.transform); } RenderSettings.fogColor = Color.yellow; RenderSettings.fogDensity = 0.09f; RenderSettings.fog = true; } }
void StartEnemyTurn() { turnStatus = TurnStatus.Enemy; SelectEnemyCharacter(characterManager.GetFirstEnemy()); StartCoroutine(EnemyTurnProcess()); }
public void Idle() { questionBreakIndex = 1; hasPlayedTeleport = false; if ((_currentWaitTime == waitTime) && _target != null) { float xx = (float)rand.Next(1, 3); if (_startPos != this.transform.position) _startPos = this.transform.position - this.transform.forward * xx; } if (_currentWaitTime - Time.fixedDeltaTime > 0) { _currentWaitTime -= Time.fixedDeltaTime; if (Move(this.transform.position, _startPos, moveSpeed, true, true, 0.5f) && !this.GetComponent<Animation>().IsPlaying("Attack")) { } else { this.GetComponent<Animation>().CrossFade("Idle"); this.transform.LookAt(GameObject.FindGameObjectWithTag("Player").transform); if (_target != null) this.transform.LookAt(_target.transform); } } else { _turnStatus = TurnStatus.Answering; } }
void CheckEnemies() { selectedIndex = 0; //change the target enemyList = enemyList.FindAll(p => p.GetComponent<PlayerObject>().state != PlayerState.Dead);//get all enemies that are not dead. print(enemyList.Count); if (enemyList.Count == 0) //check if there are still enemies that are alive { this._turnStatus = TurnStatus.Victory; //if no enemies are alive, do Victory } }
public void BreakAttack() { this.GetComponent<Animation>()["Combo" + questionBreakIndex].speed = 1f; if (!this.GetComponent<Animation>().isPlaying) { this._turnStatus = TurnStatus.QuestionBreakEnd; print("sssss"); } }
private void OnActorTurnFinish(Actor actor) { curTurnStatus = TurnStatus.SWITCHING; }