public void OnClickSkill(SkillBase skill) { currentSkill = skill; if(currentSkill.selectable) { phase.Value = GamePhase.SpecSkill; } else { currentSkill.Cast(Vector2Int.zero); phase.Value = GamePhase.SelectChara; } }
// Update is called once per frame void FixedUpdate() { if (Input.GetButtonDown("ActionP" + playerNum)) { if (skillId >= 0) { skill.Cast(); } } if (fireSpeedTimer > 0) { fireSpeedTimer -= Time.fixedDeltaTime; } if (fireSpeedTimer <= 0) { if (Input.GetButton("FireP" + playerNum)) { weapon.GetComponent <Weapon>().Fire(); fireSpeedTimer = fireSpeed; } } if (arenaManager.gameEnded == false) { if (health <= 0) { if (arenaManager.gameEnded == false) { arenaManager.EndGame(playerNum); arenaManager.gameEnded = true; gameObject.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Arena/Sprites/death"); gameObject.GetComponent <SpriteRenderer>().sortingOrder = 25; canMove = false; Destroy(GetComponent <CircleCollider2D>()); } } } if (canMove) { Move(); } }
/// <summary> /// 释放技能 /// </summary> /// <param name="skillId"></param> /// <param name="param"></param> public void OnCastSkill(int skillId, CastSkillParam param) { try { SkillGameData skillData = this.GetSkillById(skillId); if (skillData != null && !skillData.IsError) { foreach (var current in this.m_listSkillData) { SkillBase skillBegin = SkillGameManager.GetSkillBase(current.Id); if (skillBegin != null) { skillBegin.OnCastSkillBegin(this.m_unMasterBeastId, skillId); } } SkillBase skill = SkillGameManager.GetSkillBase(skillData.Id); if (skill != null) { param.unTargetSkillID = skillId; skill.Cast(param); } foreach (var current in this.m_listSkillData) { SkillBase skillEnd = SkillGameManager.GetSkillBase(current.Id); if (skillEnd != null) { skillEnd.OnCastSkillBegin(this.m_unMasterBeastId, skillId); } } } } catch (Exception e) { this.m_log.Fatal(e); } }
public void OnClickGrid(Vector2Int pos, Team team) { switch (phase.Value) { case GamePhase.Prepare: break; case GamePhase.SelectChara: { var chara = grids.GetCharacter(team, pos); if (chara != null) { characterPanel.SetChara(chara); currentChara = chara; } } break; case GamePhase.Attack: { if (team == currentChara.team) return; var target = grids.GetAttackTarget(team, pos.x); currentChara.Attack(target); phase.Value = GamePhase.SelectChara; } break; case GamePhase.SpecSkill: { currentSkill.Cast(pos); phase.Value = GamePhase.SelectChara; } break; case GamePhase.EndTurn: break; default: break; } }