// Update is called once per frame void Update() { var motionComponent = CombatEntity.GetComponent <MotionComponent>(); if (motionComponent.Enable) { if (motionComponent.MoveTimer.IsRunning) { AnimationComponent.TryPlayFade(AnimationComponent.RunAnimation); } else { AnimationComponent.TryPlayFade(AnimationComponent.IdleAnimation); } transform.position = CombatEntity.Position; transform.GetChild(0).localEulerAngles = new Vector3(0, CombatEntity.Direction + 90, 0); } }
public void Attack() { //PlayThenIdleAsync(AnimationComponent.AttackAnimation).Coroutine(); var monster = GameObject.Find("Monster"); SpawnLineEffect(AttackPrefab, transform.position, monster.transform.position); SpawnHitEffect(transform.position, monster.transform.position); CombatEntity.GetComponent <AttributeComponent>().AttackPower.SetBase(ET.RandomHelper.RandomNumber(600, 999)); var action = CombatEntity.CreateAction <AttackAction>(); action.Target = monster.GetComponent <Monster>().CombatEntity; action.ApplyAttack(); }
private void OnReceiveStatus(ActionExecution combatAction) { var action = combatAction as AssignEffectAction; if (action.Effect is AddStatusEffect addStatusEffect) { var statusConfig = addStatusEffect.AddStatus; if (name == "Monster") { var obj = GameObject.Instantiate(CombatObjectData.StatusIconPrefab); obj.transform.SetParent(CombatObjectData.StatusSlotsTrm); obj.GetComponentInChildren <Text>().text = statusConfig.Name; obj.name = action.Status.Id.ToString(); } if (statusConfig.ID == "Vertigo") { CombatEntity.GetComponent <MotionComponent>().Enable = false; CombatObjectData.AnimationComponent.AnimancerComponent.Play(CombatObjectData.AnimationComponent.StunAnimation); var vertigoParticle = CombatObjectData.vertigoParticle; if (vertigoParticle == null) { vertigoParticle = GameObject.Instantiate(statusConfig.ParticleEffect); vertigoParticle.transform.parent = transform; vertigoParticle.transform.localPosition = new Vector3(0, 2, 0); } } if (statusConfig.ID == "Weak") { var weakParticle = CombatObjectData.weakParticle; if (weakParticle == null) { weakParticle = GameObject.Instantiate(statusConfig.ParticleEffect); weakParticle.transform.parent = transform; weakParticle.transform.localPosition = new Vector3(0, 0, 0); } } } }
// Start is called before the first frame update void Start() { Instance = this; CombatEntity = Entity.CreateWithParent <CombatEntity>(CombatContext.Instance); CombatEntity.AddComponent <SkillPreviewComponent>(); CombatEntity.AddComponent <EquipmentComponent>(); //CombatEntity.GetComponent<MotionComponent>().Enable = false; CombatEntity.ListenActionPoint(ActionPointType.PreSpell, OnPreSpell); CombatEntity.ListenActionPoint(ActionPointType.PostSpell, OnPostSpell); CombatEntity.Subscribe <AnimationClip>(OnPlayAnimation); #if EGAMEPLAY_EXCEL var config = ConfigHelper.Get <SkillConfig>(1001); SkillAbility ability = CombatEntity.AttachSkill <SkillAbility>(config); CombatEntity.BindSkillInput(ability, KeyCode.Q); config = ConfigHelper.Get <SkillConfig>(1002); ability = CombatEntity.AttachSkill <SkillAbility>(config); CombatEntity.BindSkillInput(ability, KeyCode.W); config = ConfigHelper.Get <SkillConfig>(1004); ability = CombatEntity.AttachSkill <SkillAbility>(config); CombatEntity.BindSkillInput(ability, KeyCode.E); SkillSlotsTrm.Find("SkillButtonD").gameObject.SetActive(false); SkillSlotsTrm.Find("SkillButtonE").gameObject.SetActive(false); #else SkillConfigObject config = Resources.Load <SkillConfigObject>("SkillConfigs/Skill_1001_黑火球术"); SkillAbility ability = CombatEntity.AttachSkill <SkillAbility>(config); CombatEntity.BindSkillInput(ability, KeyCode.Q); config = Resources.Load <SkillConfigObject>("SkillConfigs/Skill_1002_炎爆"); ability = CombatEntity.AttachSkill <SkillAbility>(config); CombatEntity.BindSkillInput(ability, KeyCode.W); config = Resources.Load <SkillConfigObject>("SkillConfigs/Skill_1004_血红激光炮"); ability = CombatEntity.AttachSkill <SkillAbility>(config); CombatEntity.BindSkillInput(ability, KeyCode.E); config = Resources.Load <SkillConfigObject>("SkillConfigs/Skill_1005_火弹"); ability = CombatEntity.AttachSkill <SkillAbility>(config); CombatEntity.BindSkillInput(ability, KeyCode.R); config = Resources.Load <SkillConfigObject>("SkillConfigs/Skill_1006_灵魂镣铐"); ability = CombatEntity.AttachSkill <SkillAbility_1006>(config); CombatEntity.BindSkillInput(ability, KeyCode.T); config = Resources.Load <SkillConfigObject>("SkillConfigs/Skill_1003_治愈"); ability = CombatEntity.AttachSkill <SkillAbility>(config); CombatEntity.BindSkillInput(ability, KeyCode.Y); #endif for (int i = InventoryPanelTrm.childCount; i > 0; i--) { GameObject.Destroy(InventoryPanelTrm.GetChild(i - 1).gameObject); } var allItemConfigs = ConfigHelper.GetAll <EquipmentConfig>(); foreach (var item in allItemConfigs) { var itemObj = GameObject.Instantiate(ItemPrefab); itemObj.transform.parent = InventoryPanelTrm; itemObj.transform.Find("Icon").GetComponent <UnityEngine.UI.Image>().sprite = Resources.Load <Sprite>($"Icons/{item.Value.Name}"); var text = itemObj.transform.Find("Text").GetComponent <UnityEngine.UI.Text>(); text.text = $"+{item.Value.Value}"; if (item.Value.Attribute == "AttackPower") { text.color = Color.red; } itemObj.GetComponent <UnityEngine.UI.Button>().onClick.AddListener(() => { if (EquipmentPanelTrm.childCount >= 4) { return; } var equipObj = GameObject.Instantiate(ItemPrefab); equipObj.transform.parent = EquipmentPanelTrm; equipObj.transform.Find("Icon").GetComponent <UnityEngine.UI.Image>().sprite = Resources.Load <Sprite>($"Icons/{item.Value.Name}"); var equipText = equipObj.transform.Find("Text").GetComponent <UnityEngine.UI.Text>(); equipText.text = $"+{item.Value.Value}"; if (item.Value.Attribute == "AttackPower") { equipText.color = Color.red; } var itemData = Entity.CreateWithParent <ItemData>(CombatEntity); equipObj.name = $"{itemData.Id}"; itemData.ConfigId = item.Value.Id; CombatEntity.GetComponent <EquipmentComponent>().AddItemData(itemData); equipObj.GetComponent <UnityEngine.UI.Button>().onClick.AddListener(() => { var id = long.Parse(equipObj.name); CombatEntity.GetComponent <EquipmentComponent>().RemoveItemData(id); GameObject.Destroy(equipObj); }); }); } AnimTimer.MaxTime = AnimTime; }