/// <summary> /// 在zombie的attack动画中添加event片段,执行此函数,对player造成等同于zombie攻击力数值的伤害 /// </summary> public void Attack() { if (PlayerStatusManager.Instance().currentHp > 0) { PlayerStatusManager.Instance().ReduceHp(attackPower - (int)(PlayerStatusInfo.Instance().def * 0.2f)); } }
/// <summary> /// 使用此快捷栏中的技能 /// </summary> /// <returns>使用成功返回 true</returns> public bool UseSkill() { //没有技能的情况 if (this.id == 0) { Debug.Log("没有快捷技能"); return(false); } //cd没好的情况 else if (!SkillBoard.Instance().FindSkillById(id).GetSkillReadyState()) { Debug.Log("CD未冷却"); return(false); } //mp不够的情况 else if (!PlayerStatusManager.Instance().ReduceMp(this.info.mpSpend)) { Debug.Log("蓝不够"); return(false); } //没有以上情况则释放技能 else { //使技能进入冷却 SkillBoard.Instance().FindSkillById(id).SetSkillColdState(); //技能发射器发射技能 SkillShoot.Instance().ShootSkill(this.id, this.info); return(true); } }
void Update() { #if UnityEditor //背包加药品 if (Input.GetKeyDown(KeyCode.P)) { int x = 0; BagBoard.Instance().PickOneItemById(x = Random.Range(1001, 1004)); Debug.Log(x); } //背包加装备 if (Input.GetKeyDown(KeyCode.O)) { int x = 0; BagBoard.Instance().PickOneItemById(x = Random.Range(2001, 2023)); Debug.Log(x); } //商店加药品 if (Input.GetKeyDown(KeyCode.L)) { ShopBoard.Instance().AddOneShopItemById(c++); Debug.Log(c); } //商店加装备 if (Input.GetKeyDown(KeyCode.K)) { ShopBoard.Instance().AddOneShopItemById(z++); Debug.Log(z); } //扣血 if (Input.GetKeyDown(KeyCode.M)) { PlayerStatusManager.Instance().ReduceHp(50); } //加钱 if (Input.GetKeyDown(KeyCode.UpArrow)) { CoinManager.Instance().AddCoin(50); } //扣钱 if (Input.GetKeyDown(KeyCode.DownArrow)) { CoinManager.Instance().ReduceCoin(50); } //加点 if (Input.GetKeyDown(KeyCode.KeypadPlus)) { PlayerStatusManager.Instance().AddPoint(); } //加技能 if (Input.GetKeyDown(KeyCode.B)) { SkillBoard.Instance().AddOneSkillById(4001); SkillBoard.Instance().AddOneSkillById(4002); SkillBoard.Instance().AddOneSkillById(4003); } #endif }
/// <summary> /// 使用药品 /// </summary> public void UseDrug() { //死人是用不了药的 if (Global.playerState != Global.State.DieState) { PlayerStatusManager.Instance().AddHpAndMp(info); ReduceItemNum(1); } }
/// <summary> /// 从此装备栏中移除装备信息 /// </summary> public void UnloadThisGridEquip() { //移除装备赋予玩家的属性 PlayerStatusManager.Instance().ReduceProperties(info); //物品栏添加该物品 BagBoard.Instance().PickOneItemById(this.id); //此栏装备清空 this.id = 0; this.info = null; DestroyImmediate(this.GetComponentInChildren <Item>().transform.gameObject); }
/// <summary> /// 向此装备栏添加装备信息 /// </summary> /// <param name="id">装备id</param> /// <param name="info">装备info</param> public void SetThisGridEquipById(int id, ObjectInfo info) { this.id = id; this.info = info; Item equip = this.GetComponentInChildren <Item>(); equip.SetIconAndId(id, this.info.icon_name); equip.equiping = true; //赋予玩家装备的属性 PlayerStatusManager.Instance().AddProperties(info); }
IEnumerator BuffDoEnumerator(SkillInfo info) { Debug.Log("buff加持中"); GameObject fx = Instantiate(buffAtkFx); fx.transform.parent = player.transform; fx.transform.localPosition = new Vector3(0,0.05f,0); fx.GetComponent<ParticleSystem>().Play(true); PlayerStatusManager.Instance().AddProperties(info.skillEffectType, info.amount); yield return new WaitForSeconds(info.timeDuration); Debug.Log("buff加持结束"); Destroy(fx); PlayerStatusManager.Instance().ReduceProperties(info.skillEffectType, info.amount); }
/// <summary> /// Cure技能发射 /// </summary> /// <param name="info">技能info</param> private void CureDo(SkillInfo info) { GameObject fx = Instantiate(cureHpFx); fx.transform.parent = player.transform; fx.transform.localPosition = new Vector3(0,0.05f,0); fx.GetComponent<ParticleSystem>().Play(true); Destroy(fx,2.5f); switch(info.skillEffectType) { case SkillInfo.SkillEffectType.HP : PlayerStatusManager.Instance().AddHp(info.amount); break; case SkillInfo.SkillEffectType.MP : PlayerStatusManager.Instance().AddMp(info.amount); break; } }
/// <summary> /// ok按钮单击回调 /// </summary> public void OkButtonClick() { if (QuestManager.Instance().questState == QuestManager.QuestState.FINISH) { finishLabel.SetActive(true); CoinManager.Instance().AddCoin(rewards_coin_num); PlayerStatusManager.Instance().AddExp(rewards_exp_num); QuestManager.Instance().questState = QuestManager.QuestState.GETREWARD; } //BoardManager.Instance().SwitchShowBoard(BoardManager.BoardShow.NONE); Hide(); if (QuestManager.Instance().questState == QuestManager.QuestState.GETREWARD) { againButton.SetActive(true); } }
/// <summary> /// 死亡操作 /// </summary> void DoDie() { //死亡后加一次对应任务进度,掉落一个物品 if (onceDropAndAchievement) { if (QuestManager.Instance().questState != QuestManager.QuestState.GETREWARD) { QuestManager.Instance().QuestStateUpdateByType(thisZombieIndex); } anim.SetBool("Die", true); this.GetComponent <CapsuleCollider>().enabled = false; PlayerStatusManager.Instance().AddExp(provideExp); ItemDropManager.Instance().CreateRandomDropItem(transform.position); onceDropAndAchievement = false; Destroy(this.gameObject, 3); } }
/// <summary> /// 加点按钮回调 /// </summary> /// <param name="go">按钮对象</param> public void PointAddButtonClick(GameObject go) { PlayerStatusManager.Instance().AddProperties(go.name); PlayerStatusManager.Instance().ReducePoint(1); UpdateStatusShow(); }