private void AttemptApplyEffect(Unit target, UnitEffect effect) { //Make copy UnitEffect copy = MakeCopy(effect, target); MDebug.Log("^effectsAttempt Apply \n" + copy.ToString() + " by " + copy.Instigator); if (CanApplyEffect(target, copy) && target.GetComponent <Unit_EffectManager>().ApplyEffect(copy)) { TurnSystem.Instance.OnGlobalTurn += copy.OnGlobalTurn; if (VFX_Applied != null) { VFX_Applied.Init(target.currentTile.gameObject); } if (TickOnApply) { copy.EffectTick(); } } else { Destroy(copy.gameObject); } }
/// <summary> /// clones itself to the target /// </summary> /// <param name="target"></param> public override UnitEffect MakeCopy(UnitEffect origin, Unit host) { UnitEffect_ModifyStat _cc_modstat = base.MakeCopy(origin, host) as UnitEffect_ModifyStat; _cc_modstat._baked = _cc_modstat.GetBaked(); return(_cc_modstat); }
/// <summary> /// clones itself to the target /// </summary> /// <param name="target"></param> public override UnitEffect MakeCopy(UnitEffect origin, Unit host) { UnitEffect_GainAdrenaline _cc_adr = base.MakeCopy(origin, host) as UnitEffect_GainAdrenaline; _cc_adr.baked_adrenaline = Constants.GetGainedAdrenaline(host.Stats, Rolls); return(_cc_adr); }
public bool ApplyEffect(UnitEffect effect) { if (!m_Unit.IsDead() && AddEffect(effect)) { return(true); } return(false); }
void SpawnEffectAppliedNotification(UnitEffect effect) { if (!effect.ShowApplyNotification) { return; } EventNotification.SpawnEffectNotification(EffectNotifactionPrefab, EffectNotificationsContainer, effect, effect.GetShortHandle() + " applied"); EnableUnitUI(); }
public void SetDamage(Unit instigator, Unit target, UnitEffect effect) { // MDebug.Log("assad"); gameObject.SetActive(true); effect.SetPreview(this, target); GetComponent <UI_WorldPos>().SetWorldPosObject(target.transform); }
UI_EffectItemView MakeNewView(UnitEffect item, Transform target) { // MDebug.Log(item.Unique_ID); UI_EffectItemView view1 = Instantiate(Prefab).GetComponent <UI_EffectItemView>(); view1.SetEffect(item); view1.transform.SetParent(target, false); return(view1); }
/// <summary> /// clones itself to the target /// </summary> /// <param name="target"></param> public override UnitEffect MakeCopy(UnitEffect origin, Unit host) { UnitEffect_Damage _cc = base.MakeCopy(origin, host) as UnitEffect_Damage; _cc.baked_damage = UnityEngine.Random.Range(GetMin(), GetMax() + 1); return(_cc); }
void SpawnEffectExpiredNotification(UnitEffect effect) { if (!effect.ShowRemoveNotification) { return; } EventNotification.SpawnEffectNotification(EffectNotifactionPrefab, EffectNotificationsContainer, effect, effect.GetShortHandle() + " removed"); EnableUnitUI(); }
public virtual UnitEffect MakeCopy(UnitEffect origin, Unit host) { UnitEffect _cc = origin.gameObject.Instantiate(host.transform, true).GetComponent <UnitEffect>(); _cc.Instigator = Instigator; _cc.name = Unique_ID + "_copy"; _cc.Effect_Host = host; _cc.isCopy = true; return(_cc); }
private void dgEffects_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (dgEffects.SelectedItem is UnitEffect) { UnitEffect effect = (UnitEffect)dgEffects.SelectedItem; if (effect.ModelRepresentation is ModelVisual3D) { // manipulator.Bind(effect.ModelRepresentation); contentHolder.Content = effect; } } }
protected override List <UnitEffect> GetEffects() { List <UnitEffect> effects = GetRegularEffects(); UnitEffect intBonus = GetIntBonus(); if (intBonus != null) { effects.Add(intBonus); } return(effects); }
void OnEffectExpired(UnitEffect effect) { if (OnEffectRemoved != null) { OnEffectRemoved(effect); } effect.OnEffectExpired -= OnEffectRemoved; effect.OnEffectTick -= OnEffectTick; effect.OnEffectExpired -= OnEffectExpired; MDebug.Log("^effects EFFECT EXPIRED " + effect.ToString()); ActiveEffects.Remove(effect); }
public bool AddEffect(UnitEffect new_effect) { if (ActiveEffects == null) { ActiveEffects = new List <UnitEffect>(); } if (!ActiveEffects.Contains(new_effect)) { if (new_effect.ReplaceEffect) { UnitEffect duplicate_on_unit = GetEffect(new_effect.Unique_ID); if (duplicate_on_unit != null) { int duplicate_duration = duplicate_on_unit.GetTicksAlive(); new_effect.SetDurationAlive(duplicate_duration); new_effect.MaxDuration = duplicate_duration + new_effect.GetMaxDuration(); ; MDebug.Log("^effects Removing Duplicate " + duplicate_on_unit.ToString()); ActiveEffects.Remove(duplicate_on_unit); Destroy(duplicate_on_unit); } } ActiveEffects.Add(new_effect); MDebug.Log("^effects Added Effect to " + m_Unit.GetID() + " \n" + new_effect.ToString()); new_effect.OnEffectTick += OnEffectTick; //MDebug.Log(" EFFECT_ADDED " + new_effect.GetShortHandle()); new_effect.OnEffectExpired += OnEffectExpired; if (OnEffectAdded != null) { OnEffectAdded(new_effect); } return(true); } else { MDebug.Log("^effects Already has this effect"); } MDebug.Log("^effects COULD NOT ADD EFFECT " + new_effect.ToString()); return(false); }
/** 特效播放完毕 */ public void effectPlayOver(UnitEffect effect) { int id = effect.id; int num = _effectNumDic.get(id); if (num <= 0) { Ctrl.throwError("出错,effect数目小于0"); return; } _effectNumDic.put(id, --num); _effectList.removeObj(effect); effect.dispose(); GameC.pool.unitEffectPool.back(effect); //场景特效 if (_unit.type == UnitType.SceneEffect) { SceneEffectIdentityData iData = _data.getSceneEffectIdentity(); if (iData.signedEffectID > 0) { if (id == iData.signedEffectID) { sceneEffectOver(); } } else { SceneEffectConfig config = SceneEffectConfig.get(iData.id); if (config.effectID > 0) { sceneEffectOver(); } } } }
public void SetEffect(UnitEffect effect) { Description.text = effect.GetToolTipText(); if (effect.EffectBonus > 1) { // Description.color = UI_AdrenalineRushController.ADR_Color; } if (effect.GetMaxDuration() > 0) { DurationTF.text = effect.GetDurationLeft().ToString(); DurationIcon.gameObject.SetActive(true); } else { //DurationIcon.gameObject.SetActive(false); DurationTF.text = "instant"; } }
public override void effectLoadOver(UnitEffect effect) { if (!_g23) { _m23 = instance.Type.GetMethod("effectLoadOver", 1); _g23 = true; } if (_m23 != null && !_b23) { _b23 = true; _p1[0] = effect; appdomain.Invoke(_m23, instance, _p1); _p1[0] = null; _b23 = false; } else { base.effectLoadOver(effect); } }
private void toAddEffect(EffectConfig config) { int num = _effectNumDic.addValue(config.id, 1); //超了 if (config.plusMax > 0 && num > config.plusMax) { return; } UnitEffect effect = GameC.pool.unitEffectPool.getOne(); effect.setConfig(config); effect.setScene(_scene); effect.bindUnit(_unit); _effectList.add(effect); //开始 effect.init(); }
public override void dispose() { if (_config.effectID > 0) { //绑自己的 if (BaseC.constlist.bulletCast_isSelfHit(_levelConfig.castType)) { _unit.show.removeEffect(_config.effectID); } else { if (_effect != null) { _effect.dispose(); GameC.pool.unitEffectPool.back(_effect); _effect = null; } } } base.dispose(); }
private void viewPort_KeyUp(object sender, KeyEventArgs e) { if (e.Key == Key.Delete) { //Delete the selected item from the list (if any) if (tabProps.IsSelected) { UnitBinDrawSlot selectedItem = dgProps.SelectedItem as UnitBinDrawSlot; viewPort.Children.Remove(selectedItem.ModelRepresentation); foreach (ObservableList <UnitBinDrawSlot> slotList in UnitFileEntry.UnitBinDrawSlots) { slotList.Remove(selectedItem); } } if (tabEffects.IsSelected) { UnitEffect selectedItem = dgEffects.SelectedItem as UnitEffect; viewPort.Children.Remove(selectedItem.ModelRepresentation); UnitFileEntry.UnitEffects.Remove(selectedItem); } if (tabLights.IsSelected) { UnitLight selectedItem = lbLights.SelectedItem as UnitLight; viewPort.Children.Remove(selectedItem.ModelRepresentation); UnitFileEntry.UnitLights.Remove(selectedItem); } if (tabDecals.IsSelected) { UnitDecal selectedItem = dgDecals.SelectedItem as UnitDecal; viewPort.Children.Remove(selectedItem.ModelRepresentation); foreach (ObservableList <UnitDecal> slotList in UnitFileEntry.UnitBinDecals) { slotList.Remove(selectedItem); } } } }
public override void init() { base.init(); if (_config.effectID > 0) { //绑自己的 if (BaseC.constlist.bulletCast_isSelfHit(_levelConfig.castType)) { _unit.show.addEffect(_config.effectID); } else { EffectConfig config = EffectConfig.get(_config.effectID); _effect = GameC.pool.unitEffectPool.getOne(); _effect.setConfig(config); _effect.setScene(_scene); _effect.bindBullet(_bullet); _effect.init(); } } }
public void SetEffect(UnitEffect new_effect) { UI_ActionBar_Button_ColorSetting setting = UI_ActionBar_Button_ColorSetting.GetInstance(); ColorSettingToolTipItem color = new_effect.EffectBonus > 1 ? setting.TT_EFF_Bonus_Active : setting.TT_EFF_Bonus_Inactive; BG.sprite = new_effect.TargetMode == UnitEffect.TargetModes.Owner ? Target_Owner : Target_Target; m_effect = new_effect; if (new_effect.Icon != null) { Icon.sprite = new_effect.Icon; Icon.color = color.Icon; } Text.text = new_effect.GetShortHandle(); Text.color = color.Text; BG.color = color.Background; }
void OnEffectUpdated(UnitEffect eff) { UpdateViews(GetDisplayableEffects(effects.ActiveEffects)); }
/**********************************************************************************/ // функция добавления новых эффектов // /**********************************************************************************/ public void SetEffect(UnitEffect.EFFECT_TYPE effectSlot, UnitEffect effect) { m_effects[effectSlot] = effect; }
public virtual void init() { (attackDataPool = new ObjectPool <AttackData>(() => { return(new AttackData()); })).setEnable(CommonSetting.sceneLogicUsePool); (_fightDataLogicPool = new ObjectPool <UnitFightDataLogic>(() => { UnitFightDataLogic logic = GameC.factory.createUnitFightDataLogic(); logic.construct(); return(logic); })).setEnable(CommonSetting.sceneLogicUsePool); _unitPoolDic = new ObjectPool <Unit> [UnitType.size]; for (int i = 0; i < UnitType.size; ++i) { (_unitPoolDic[i] = createUnitPool(i)).setEnable(CommonSetting.sceneLogicUsePool); } (bulletPool = new ObjectPool <Bullet>(() => { Bullet bullet = GameC.factory.createBullet(); bullet.construct(); return(bullet); })).setEnable(CommonSetting.sceneLogicUsePool); (unitEffectPool = new ObjectPool <UnitEffect>(() => { UnitEffect effect = GameC.factory.createUnitEffect(); effect.construct(); return(effect); })).setEnable(CommonSetting.sceneLogicUsePool); (rolePool = new ObjectPool <Role>(() => { Role role = GameC.factory.createRole(); role.construct(); return(role); })).setEnable(CommonSetting.sceneLogicUsePool); buffDataPool.setEnable(CommonSetting.sceneLogicUsePool); buffIntervalActionDataPool.setEnable(CommonSetting.sceneLogicUsePool); //logic _itemDataPool = new ObjectPool <ItemData> [ItemType.size]; for (int i = 0; i < _itemDataPool.Length; ++i) { (_itemDataPool[i] = createItemDataPool(i)).setEnable(CommonSetting.logicUsePool); } TaskTypeConfig typeConfig; _taskDataPool = new ObjectPool <TaskData> [QuestType.size]; (_taskDataPool[0] = createTaskDataPool(0)).setEnable(CommonSetting.logicUsePool); for (int i = 0; i < _taskDataPool.Length; ++i) { if ((typeConfig = TaskTypeConfig.get(i)) != null && typeConfig.needCustomTask) { (_taskDataPool[i] = createTaskDataPool(i)).setEnable(CommonSetting.logicUsePool); } } petUseLogicPool.setEnable(CommonSetting.logicUsePool); }
/** 回收子弹 */ public void releaseUnitEffect(UnitEffect effect) { unitEffectPool.back(effect); }
Transform GetTransform(UnitEffect _for) { return(this.transform); }
void SpawnEffectTickNotification(UnitEffect effect) { EventNotification.SpawnEffectNotification(EffectNotifactionPrefab, EffectNotificationsContainer, effect); EnableUnitUI(); }
/** 特效加载完毕 */ public virtual void effectLoadOver(UnitEffect effect) { }
protected virtual bool CanApplyEffect(Unit target, UnitEffect effect) { return(!target.IsDead()); }