void Atk() { state = AtkState.atkend; parent.SetAnimatorState(InGameBaseCharacter.AnimatorState.Idle, 1); BaseSkill.CreateSkill(parent.GetBaseSkillID(), parent, (InGameBaseCharacter)target); //((InGameBaseCharacter)target).ChangeLife(-parent.GetAtkForce()); }
public override void StopAction() { parent.SetAnimatorState(InGameBaseCharacter.AnimatorState.Idle, 1); isaction = false; atkTime = 0; state = AtkState.move; }
void StartAtk() { state = AtkState.atkbegin; if (Vector3.Distance(parent.transform.position, target.transform.position) > parent.GetAtkDis(target)) { state = AtkState.non; return; } if (GameConst.CAMP_ATK[(int)target.camp, (int)parent.camp] == 0) { if (target.GetObjType() == InGameBaseObj.enObjType.equip) { InGameBaseEquip equip = (InGameBaseEquip)target; parent.StopAction(); EquipData e = EquipSystem.GetInstance().RandEquipProperty(equip); InGameManager.GetInstance().inGamePlayerManager.AddEquip(e); MonoBehaviour.Destroy(equip.gameObject); } return; } parent.SetAnimatorState(parent.GetAtkAnimator(), parent.GetAtkSpeed()); atkTime = 0; Vector3 v = (target.transform.position - parent.transform.position).normalized; parent.transform.forward = v; }
/// <summary> /// 切换攻击状态 /// </summary> protected override void SwitchAtkState(AtkState state) { if (playerState == PlayerState.Death) { return; } if (atkState == state) { return; } switch (state) { case AtkState.None: atkState = state; break; case AtkState.Shoot: if (currentGun.GetIsShoot()) { //判断武器是否自动 if (currentGun.data.IsAuto) { selfAnim.SetTrigger("MultiShoot"); } else { selfAnim.SetTrigger("SingleShoot"); } atkState = state; } break; case AtkState.BulletUp: currentGun.InitSight(); currentGun.isOpenMicro = false; selfAnim.SetTrigger("BulletUp"); atkState = state; break; case AtkState.SwitchGun: int index = currentIndex == 0 ? 1 : 0; //只有两把枪 SwitchGun(index); selfAnim.SetTrigger("SwitchGun"); EventCenterManager._Instance.SendMessage(EventType.SwitchGun, currentGun.data.ID); atkState = state; break; } //网络同步状态 client.SendPlayerStateToServer(playerState, atkState); }
/// <summary> /// 切换攻击状态 /// </summary> protected override void SwitchAtkState(AtkState state) { if (playerState == PlayerState.Death) { return; } if (atkState == state) { return; } switch (state) { case AtkState.None: atkState = state; break; case AtkState.Shoot: if (currentGun.GetIsShoot()) { //判断武器是否自动 if (currentGun.data.IsAuto) { selfAnim.SetTrigger("MultiShoot"); } else { selfAnim.SetTrigger("SingleShoot"); } atkState = state; } break; case AtkState.BulletUp: selfAnim.SetTrigger("BulletUp"); atkState = state; break; case AtkState.SwitchGun: int index = currentIndex == 0 ? 1 : 0; //只有两把枪 SwitchGun(index); selfAnim.SetTrigger("SwitchGun"); atkState = state; break; } //网络同步状态 client.SendPlayerStateToServer(playerState, atkState); }
public override void StartAction(InGameBaseObj target, Vector3 targetPos, int dis) { if (state == AtkState.atkbegin || state == AtkState.atkend) { return; } base.StartAction(target, targetPos, dis); atkTime = 0; //Vector3 v = (target.transform.position - parent.transform.position).normalized; //parent.transform.forward = v; state = AtkState.move; }
/// <summary> /// 同步状态的方法 /// </summary> /// <param name="state"></param> public void SendPlayerStateToServer(PlayerState playerState, AtkState atkState) { try { NetworkMessage message = new NetworkMessage(5, NetworkTools.GetLocalIP(), PlayerStateMessage.GetBytes(new PlayerStateMessage(playerState, atkState))); byte[] bytes = NetworkMessage.GetBytes(message); //Debug.Log("发送位置数据"); //测试 SendMsg(RoomSingle.roomIP, NetworkConstent.UDPServerPort, bytes); } catch (Exception e) { Debug.LogError(e.ToString()); } }
public Monster(string name, int MonAtk, int MonHp, int crit, int critAttack, Image imageMon, Image imageskill, Text textHP, Text textDam) { Name = name; Atk = MonAtk; MaxHP = MonHp; HPnow = MaxHP; Crit = crit; CritAtk = critAttack; AtkTimer = 0f; State = AtkState.Init; ImageMon = imageMon; Skill = imageskill; Skill.color = new Color(1, 1, 1, 0); textHP.text = HPnow + "/" + MonHp; HPtext = textHP; textDam.color = new Color(1, 1, 1, 0); DamageText = textDam; }
/// <summary> /// 切换攻击状态 /// </summary> protected override void SwitchAtkState(AtkState state) { if (playerState == PlayerState.Death) { return; } if (atkState == state) { return; } switch (state) { case AtkState.None: break; case AtkState.Shoot: //判断武器是否自动 if (currentGun.data.IsAuto) { selfAnim.SetTrigger("MultiShoot"); } else { selfAnim.SetTrigger("SingleShoot"); } atkState = state; //currentGun.PlayEffect(); break; case AtkState.BulletUp: selfAnim.SetTrigger("BulletUp"); break; case AtkState.SwitchGun: int index = currentIndex == 0 ? 1 : 0;//只有两把枪 SwitchGun(index); selfAnim.SetTrigger("SwitchGun"); break; } atkState = state; }
public override void Init(InGameBaseCharacter parent, Vector3 targetPos) { base.Init(parent, targetPos); state = AtkState.non; }
public void SetState(PlayerState s1, AtkState s2) { SwitchPlayerState(s1); SwitchAtkState(s2); }
public PlayerStateMessage(PlayerState state, AtkState atkstate) { this.state = state; this.atkState = atkstate; }
protected virtual void SwitchAtkState(AtkState state) { }
public override void UpdateAttackResults(Coordinate lastAttack, AttackResult result, bool sunkShip) { switch (atkState) { case AtkState.StabInTheDark: if (result == AttackResult.Hit) { atkState = AtkState.FindFollowUp; firstHit = new AttackInfo(lastAttack, result, sunkShip); targets = CalcAdjCoords(lastAttack).FindAll(t => Attacks[t.X, t.Y].Result == AttackResult.Unknown); } break; case AtkState.FindFollowUp: if (sunkShip) { atkState = AtkState.StabInTheDark; break; } if (result == AttackResult.Hit) { atkState = AtkState.FinishEmOff; secondHit = new AttackInfo(lastAttack, result, sunkShip); targets.Clear(); } break; case AtkState.FinishEmOff: if (result == AttackResult.Hit && sunkShip) { atkState = AtkState.StabInTheDark; firstHit = null; secondHit = null; } break; default: atkState = AtkState.StabInTheDark; break; } base.UpdateAttackResults(lastAttack, result, sunkShip); }
public override Coordinate Attack() { switch (atkState) { case AtkState.StabInTheDark: return CalcRandomAttack(); case AtkState.FindFollowUp: if (targets.Count == 0) { atkState = AtkState.StabInTheDark; return CalcRandomAttack(); } Random r = new Random(); int i = r.Next(targets.Count); Coordinate target = targets[i]; targets.RemoveAt(i); return target; case AtkState.FinishEmOff: Coordinate c = FinishEmOff(); if (c == null) { atkState = AtkState.StabInTheDark; return CalcRandomAttack(); } return c; default: atkState = AtkState.StabInTheDark; return CalcRandomAttack(); } }