void CheckSuit(int id) { if (GetSuitAmount(id) == 5) { suit_id = id; var commond = SuitConfig.Get(id).suit_function.Split(';'); foreach (var c in commond) { GameStaticMethod.ExecuteCommond(c); } } else { if (suit_id != -1) { var commond = SuitConfig.Get(suit_id).suit_function.Split(';'); foreach (var c in commond) { GameStaticMethod.ExecuteBackCommond(c); } suit_id = -1; } } }
public void Execute(string[] content) { while (content_index < content.Length) { var commond = content[content_index].Split(';'); switch (commond[0]) { case "npc_inactive": _text.text = commond[1]; break; case "inactive_button": var btn = m_inactiveBtns[inactiveBtn_index]; btn.gameObject.SetActive(true); btn.onClick.RemoveAllListeners(); btn.onClick.AddListener(() => { GameStaticMethod.ExecuteCommond(commond[2].Trim()); }); btn.GetComponentInChildren <Text>().text = commond[1]; inactiveBtn_index += 1; break; default: break; } content_index++; } }
public void Equip() { if (!CurretnSelect.icon.gameObject.activeSelf) { return; } switch (CurretnSelect.data.itemtype) { case ItemType.武器: var config = WeaponConfig.Get(CurretnSelect.data.config_id); if (config.需要等级 > ActorModel.Model.GetLevel()) { View.CurrentScene.OpenView <TipView>().SetContent("等级不够 需要等级: " + DreamerTool.Util.DreamerUtil.GetColorRichText(config.需要等级.ToString(), Color.red)); return; } Equip(config, WeaponConfig.Get(ActorModel.Model.GetPlayerEquipment(EquipmentType.武器)), EquipmentType.武器); break; case ItemType.肩膀: var arm_config = ArmConfig.Get(CurretnSelect.data.config_id); Equip(arm_config, ArmConfig.Get(ActorModel.Model.GetPlayerEquipment(EquipmentType.肩膀左)), EquipmentType.肩膀左); break; case ItemType.衣: var torso_config = TorsoConfig.Get(CurretnSelect.data.config_id); Equip(torso_config, TorsoConfig.Get(ActorModel.Model.GetPlayerEquipment(EquipmentType.衣)), EquipmentType.衣); break; case ItemType.手链: var sleeve_config = SleeveConfig.Get(CurretnSelect.data.config_id); Equip(sleeve_config, SleeveConfig.Get(ActorModel.Model.GetPlayerEquipment(EquipmentType.手链)), EquipmentType.手链); break; case ItemType.裤子: var pelvis_config = PelvisConfig.Get(CurretnSelect.data.config_id); Equip(pelvis_config, PelvisConfig.Get(ActorModel.Model.GetPlayerEquipment(EquipmentType.裤子)), EquipmentType.裤子); break; case ItemType.鞋子: var foot_config = FootConfig.Get(CurretnSelect.data.config_id); Equip(foot_config, FootConfig.Get(ActorModel.Model.GetPlayerEquipment(EquipmentType.鞋子)), EquipmentType.鞋子); break; case ItemType.消耗品: GameStaticMethod.ExecuteCommond(ConsumablesConfig.Get(CurretnSelect.data.config_id).function); ActorModel.Model.bag_items.Remove(CurretnSelect.data); CurretnSelect.icon.gameObject.SetActive(false); ItemUITip.gameObject.SetActive(false); break; case ItemType.盾牌: var shield_config = ShieldConfig.Get(CurretnSelect.data.config_id); Equip(shield_config, ShieldConfig.Get(ActorModel.Model.GetPlayerEquipment(EquipmentType.盾牌)), EquipmentType.盾牌); break; default: break; } }
public override void GetHurt(AttackData attackData) { if (!photonView.IsMine) { photonView.RPC("RPCGetHurt", RpcTarget.Others, JsonMapper.ToJson(attackData)); } if (shieldEffect.activeSelf && (attackData.attack_pos - transform.position).normalized.x * transform.right.x > 0) { _rigi.ResetVelocity(); _rigi.AddForce(-transform.right * 20, ForceMode2D.Impulse); GameObjectPoolManager.GetPool("metal_hit").Get(transform.position + transform.right * 2, Quaternion.identity, 1.5f); return; } _anim.SetTrigger("hit"); GameStaticMethod.ChangeChildrenSpriteRendererColor(gameObject, Color.red); transform.rotation = attackData.attack_pos.x > transform.position.x ? Quaternion.identity : Quaternion.Euler(0, 180, 0); GameObjectPoolManager.GetPool("hit_effect").Get(transform.position + new Vector3(0, 2, 0), Quaternion.identity, 0.5f); _model.SetHealth(-DreamerTool.Util.DreamerUtil.GetHurtValue(attackData.hurt_value, _model.GetPlayerAttribute(PlayerAttribute.物防))); switch (attackData.attack_type) { case HitType.普通: break; case HitType.击退: if (!actor_state.isGround) { _rigi.ResetVelocity(); _rigi.ClearGravity(); } else { _rigi.ResetVelocity(); _rigi.AddForce(-transform.right * 20, ForceMode2D.Impulse); } break; case HitType.击飞: _rigi.ResetVelocity(); _rigi.AddForce(new Vector2(-transform.right.x * 0.5f, 0.5f).normalized * 50, ForceMode2D.Impulse); break; case HitType.挑: _rigi.ResetVelocity(); _rigi.AddForce(transform.up * 95, ForceMode2D.Impulse); break; default: break; } }
public virtual void GetHurt(AttackData attackData) { if (actor_state.isSuperArmor) { return; } if (actor_state.isShield && (attackData.attack_pos - transform.position).normalized.x * transform.right.x > 0) { _rigi.ResetVelocity(); _rigi.AddForce(-transform.right * 20, ForceMode2D.Impulse); GameObjectPoolManager.GetPool("metal_hit").Get(transform.position + transform.right * 2, Quaternion.identity, 1.5f); return; } View.CurrentScene.GetView <GameInfoView>().SetScreenEffect(Color.red, 1, 0.1f, 0.5f); _anim.SetTrigger("hit"); transform.rotation = attackData.attack_pos.x > transform.position.x ? Quaternion.identity : Quaternion.Euler(0, 180, 0); GameObjectPoolManager.GetPool("hit_effect").Get(transform.position + new Vector3(0, 2, 0), Quaternion.identity, 0.5f); Timer.Register(0.25f, () => { View.CurrentScene.GetView <GameInfoView>().SetScreenEffect(Color.red, 0, 0.1f, 0.5f); }); actor_state.isSuperArmor = true; Timer.Register(super_armor_time, () => { actor_state.isSuperArmor = false; }); var hurt_value = -DreamerTool.Util.DreamerUtil.GetHurtValue(attackData.hurt_value, ActorModel.Model.GetPlayerAttribute(PlayerAttribute.物防)); ActorModel.Model.SetHealth(hurt_value); GameStaticMethod.ChangeChildrenSpriteRendererColor(gameObject, Color.red); switch (attackData.attack_type) { case HitType.普通: break; case HitType.击退: _rigi.ResetVelocity(); _rigi.AddForce(-transform.right * 10, ForceMode2D.Impulse); break; case HitType.击飞: _rigi.ResetVelocity(); _rigi.AddForce(new Vector2(-transform.right.x * 0.5f, 0.5f).normalized * 20, ForceMode2D.Impulse); break; case HitType.挑: break; default: break; } }
private new void Awake() { base.Awake(); #if UNITY_EDITOR if (ActorModel.Model == null) { ActorModel.CreateModel(); } GameStaticMethod.GameInit(); #endif enemySpawners = GetComponentsInChildren <EnemySpawn>(); SpawnEnemys(); GetView <GameInfoView>().SetTipText("第" + level + "层"); }
public override void Awake() { base.Awake(); GameStaticMethod.GameInit(); switch (backScene) { case BackScene.None: break; case BackScene.FightScene: OpenView <HobbyView>(); OpenView <RoomView>(); break; default: break; } backScene = BackScene.None; }
private void OnMouseExit() { InputHandler.Instance.UnSelectEnemyUnit(); GameStaticMethod.ChangeCursor(CursorType.Idle); }
private void OnMouseEnter() { InputHandler.Instance.SelectEnemyUnit(unit); GameStaticMethod.ChangeCursor(CursorType.Fight); }
public Commoand HandleInput() { if (Input.GetKeyDown(KeyCode.Mouse1)) { if (enemyUnit != null) { return(new AttackCommoand(controlUnit, enemyUnit)); } else { var hit = GameStaticMethod.GetMouseRayCastHit(LayerMask.GetMask("Ground")); if (hit.collider != null) { GameObjectPoolManager.GetPool("click_move").Get(hit.point, Quaternion.identity, 1); return(new HeroMoveToCommoand(controlUnit, hit.point)); } } } if (Input.GetKeyDown(KeyCode.W)) { if (enemyUnit != null) { if (Vector3.Distance(enemyUnit.GetPosNoY(), controlUnit.GetPosNoY()) <= 3) { return(new SkillCommoand(controlUnit, SkillType.W, SkillExcuteType.Directivity, enemyUnit)); } else { return(new SkillMoveToCommoand(controlUnit, enemyUnit.GetPos(), 3, new SkillCommoand(controlUnit, SkillType.W, SkillExcuteType.Directivity, enemyUnit))); } } } if (Input.GetKeyDown(KeyCode.R)) { if (enemyUnit != null) { if (Vector3.Distance(enemyUnit.GetPosNoY(), controlUnit.GetPosNoY()) <= 3) { return(new SkillCommoand(controlUnit, SkillType.R, SkillExcuteType.Directivity, enemyUnit)); } else { return(new SkillMoveToCommoand(controlUnit, enemyUnit.GetPos(), 3, new SkillCommoand(controlUnit, SkillType.R, SkillExcuteType.Directivity, enemyUnit))); } } } if (Input.GetKeyDown(KeyCode.Alpha4)) { var hit = GameStaticMethod.GetMouseRayCastHit(LayerMask.GetMask("Ground")); if (hit.collider != null) { return(new PutEyeCommoand(controlUnit, hit.point)); } } if (Input.GetKeyDown(KeyCode.Q)) { if (controlUnit.skillDict[SkillType.Q].GetSkillTarget() != null) { return(new SkillCommoand(controlUnit, SkillType.Q, SkillExcuteType.Directivity)); } else { var hit = GameStaticMethod.GetMouseRayCastHit(LayerMask.GetMask("Ground")); if (hit.collider != null) { return(new SkillCommoand(controlUnit, SkillType.Q, SkillExcuteType.Line, (hit.point - controlUnit.GetPos()).normalized)); } } } if (Input.GetKeyDown(KeyCode.D)) { var hit = GameStaticMethod.GetMouseRayCastHit(LayerMask.GetMask("Ground")); if (hit.collider != null) { return(new FlashCommoand(controlUnit, hit.point)); } } return(null); }
public void GetHurt(AttackData attackData) { if (enemy_data.isdie) { return; } if (!isSuperArmor) { transform.rotation = attackData.attack_pos.x > transform.position.x ? Quaternion.Euler(0, 180, 0) : Quaternion.identity; } var hurt = DreamerUtil.GetHurtValue(attackData.hurt_value, model.GetDefend()); enemy_data.SetHealth(-hurt); var pop_text = GameObjectPoolManager.GetPool("pop_text").Get(transform.position + popTextOffset, Quaternion.identity, 0.5f); pop_text.GetComponent <PopText>().SetText(Mathf.RoundToInt((float)hurt).ToString(), attackData.isCrit?Color.red:Color.white); View.CurrentScene.GetView <GameInfoView>().enemy_health.SetData(enemy_data); AudioManager.Instance.PlayOneShot("hit"); GameObjectPoolManager.GetPool("hit_effect").Get(transform.position + new Vector3(0, 2, 0), Quaternion.identity, 0.5f); if (isSuperArmor) { attackData.attack_type = HitType.普通; } GameStaticMethod.ChangeChildrenSpriteRendererColor(gameObject, Color.red); switch (attackData.attack_type) { case HitType.普通: if (!isGround) { _rigi.ClearGravity(); } _rigi.ResetVelocity(); _anim.SetTrigger("hit"); break; case HitType.击退: if (!isGround) { _rigi.ResetVelocity(); _rigi.ClearGravity(); } else { _rigi.ResetVelocity(); _rigi.AddForce(transform.right * hit_back_distance, ForceMode2D.Impulse); } _anim.SetTrigger("hit"); break; case HitType.击飞: _anim.SetTrigger("hitfly"); _rigi.ResetVelocity(); if (isGround) { _rigi.AddForce(new Vector2(transform.right.x * 0.5f, 0.5f).normalized *hit_fly_distance, ForceMode2D.Impulse); } else { _rigi.AddForce(new Vector2(transform.right.x * 0.5f, 0).normalized *hit_fly_distance, ForceMode2D.Impulse); } break; case HitType.挑: _rigi.ResetVelocity(); _rigi.AddForce(Vector2.up * 95, ForceMode2D.Impulse); break; default: break; } }