public void SetOrigin(Transform t, LayerMask mask, IEffector targeter, Unit u = null) { unitSpendingUtility = u; targeterEntity = targeter; targetableMask = mask; origin = t; }
void OnTriggerEnter(Collider other) { Player p = gameObject.GetComponentInParent <Player>(); IEffector effector = other.gameObject.GetComponent <IEffector>(); if (effector != null) { effector.ApplyEffect(p); } else { Debug.Log("ho incontrato un non ieffector"); } // se collide con il bonus, il player aumenta di dimensione e il bonus scompare // Bonus b = other.gameObject.GetComponent<Bonus> (); // if (b != null && jumpPoint==null) { // transform.localScale += new Vector3 (0.3f, 0.3f, 0.3f); // // Destroy (b.gameObject); // } }
protected void Initialize() { rm = new DefaultRoleManager(10); eft = new DefaultEffector(); watcher = null; _enabled = true; autoSave = true; autoBuildRoleLinks = true; }
public void Close() { unitSpendingUtility = null; targeterEntity = null; tileOffset = 0f; targetableMask = 0; origin = null; target = Vector3.zero; lr.numPositions = 0; }
protected void Initialize() { _effector = new DefaultEffector(); watcher = null; _enabled = true; autoSave = true; autoBuildRoleLinks = true; autoNotifyWatcher = true; }
public void Play(IEffector <AbstractPerson> ditacher, IEffector <AbstractPerson> receiver) { foreach (var VARIABLE in EffectUnitInfos) { if (VARIABLE != null) { VARIABLE.Play(ditacher, receiver); } } }
/// <summary> /// Add an effector to this object. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="effector"></param> public void AddEffector(IEffector effector) { if (effector.Anonymous) { AnonymousEffectors.Add(effector); } else { NamedEffectors.Add(effector.EffectorName, effector); } effector.InternalInitialize(this); }
/// <summary> /// 播放受击特效 /// </summary> /// <param name="ditascher"></param> public void PlayAcceptEffects(IEffector <AbstractPerson> ditascher) { if (ditascher != null && ditascher.HitEffects != null) { ditascher.HitEffects.Play(ditascher, this); } if (AcceptEffects != null) { AcceptEffects.Play(null, ditascher); } }
/// <summary> /// Add an effector to this object. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="effector"></param> public void AddEffector(IEffector effector) { if (effector.Anonymous) { AnonymousEffectors.Add(effector); } else { NamedEffectors.Add(effector.EffectorName, effector); } effector.InternalInitialize(this); }
public bool AddEffector(IEffector effector) { if (null != this.SubEffectors.Find(i => i.InnerId == effector.InnerId)) { return(true); } this.SubEffectors.Add(effector); if (effector.RedoFlag || effector.UndoFlag) { this.RedoEffectors.Add(effector); this.CheckRedoFlag(); } return(true); }
public void Start() { // Add the event managers. midiEventer = gameObject.AddComponent<MidiPianoEvents>() as MidiPianoEvents; keyboardEventer = gameObject.AddComponent<KeyboardPianoEvents>() as KeyboardPianoEvents; // Make the input manager the correct type. setInputType(); // Setup Unity interface container workarounds. keyEffector = keyEffectContainer.Result; intervalEffector = intervalEffectContainer.Result; debug(); }
public void Load(IRawSkill rawSkill) { this._rawSkill = rawSkill; this._skillId = this._owner.InnerId * 100000 + rawSkill.RawSkillId; IEffector effector = null; this._skillFlag = EnumSkillFlag.None; if (null != rawSkill.MainEffector) { effector = rawSkill.MainEffector.Clone(this); this.MainEffector = effector; this._skillFlag |= rawSkill.MainEffector.SkillFlag; if (effector.RedoFlag || effector.UndoFlag) { this.RedoEffectors.Add(effector); } } if (null != rawSkill.SubEffectors && rawSkill.SubEffectors.Count > 0) { foreach (var item in rawSkill.SubEffectors) { effector = item.Clone(this); this.SubEffectors.Add(effector); this._skillFlag |= item.SkillFlag; if (effector.RedoFlag || effector.UndoFlag) { this.RedoEffectors.Add(effector); } } } if (this.Owner is ISkillManager) { if (rawSkill.CastFlag) { this._casters = ((ISkillManager)this.Owner).SkillPlayerList; } else { this._casters = null; } } else if (this.Owner is ISkillPlayer) { this._casters = new List <ISkillPlayer>(); this._casters.Add((ISkillPlayer)this.Owner); } this.CheckRedoFlag(); }
/// <summary> /// 反序列化 /// </summary> /// <param name="data">json数据</param> public void deserialize(Newtonsoft.Json.Linq.JObject data) { emitter.deserialize(data["emitter"] as Newtonsoft.Json.Linq.JObject); Effectors = new List <IEffector>(); foreach (Newtonsoft.Json.Linq.JObject effect in data["effectors"]) { string classType = (string)effect["type"]; classType = classType.Substring(classType.IndexOf("::") + 2); //UnityEngine.Debug.LogFormat("classType{0}", classType); System.Type ct = System.Type.GetType(classType, true); IEffector o = (IEffector)Activator.CreateInstance(ct); o.deserialize(effect); Effectors.Add(o); } renderParam.ParticleNumber = (int)data["number"]; emitter.UniformScale = (bool)data["uniformScale"]; renderParam.BlendMode = (int)data["blendMode"]; renderParam.DepthWrite = (bool)data["depthWrite"]; renderParam.Loop = (bool)data["loop"]; renderParam.RotateAxis = (int)data["rotateAxis"]; renderParam.BillboardType = (int)data["orient"]; renderParam.IsWorldParticle = (bool)data["isWorldParticle"]; renderParam.RotateSurface = data["rotateSurface"] == null ? false : (bool)data["rotateSurface"]; renderParam.RandomOnBorn = (bool)data["randomOnBorn"]; renderParam.Decal = (bool)data["decal"]; renderParam.Prewarm = data["prewarm"] == null ? 0 : (float)data["prewarm"]; renderParam.InfiniteBounds = (bool)data["infiniteBounds"]; if (!renderParam.InfiniteBounds) { var bound = StringUtil.SplitString <float>((string)data["boundMin"], new char[] { ',' }); renderParam.BoundMin = new Vector3(bound[0] * Uf3dLoader.vertexScale, bound[1] * Uf3dLoader.vertexScale, bound[2] * Uf3dLoader.vertexScale); bound = StringUtil.SplitString <float>((string)data["boundMax"], new char[] { ',' }); renderParam.BoundMax = new Vector3(bound[0] * Uf3dLoader.vertexScale, bound[1] * Uf3dLoader.vertexScale, bound[2] * Uf3dLoader.vertexScale); } }
public void SetEffect(EffectType type) { if (currentEffectType == type) { return; } if (currentEffector != null) { currentEffector.Deinit(); } currentEffectType = type; var index = (int)type; if (index == 0) { currentEffector = null; } else { currentEffector = effectors[index - 1].GetComponent <IEffector>(); currentEffector.Init(); } }
/// <summary> /// Sets the current effector. /// </summary> /// <param name="effector"></param> public void SetEffector(IEffector effector) { _effector = effector; }
public void Play(IEffector <AbstractPerson> ditascher, IEffector <AbstractPerson> receiver) { var dp = ditascher?.EffectPlayer as IHighFivePerson; var rp = receiver?.EffectPlayer as IHighFivePerson; switch (type) { #region Animation case EffectType.Animation: Assert.IsTrue(dp != null); var pos = new Vector3(dp.Dir * localPosition.x, localPosition.y, localPosition.z); var aniObj = GetPrefabGo(animationPrefab, dp.gameObject, pos, localScale); // Debug.Log("Animator"); var ani = aniObj.GetComponent <Animator>(); if (causeDamage) { var trigger = aniObj.GetComponent <TriggerInputer>(); if (trigger == null) { trigger = aniObj.AddComponent <TriggerInputer>(); } trigger.Clear(); trigger.onTriggerEnterEvent += (col) => { rp = col.gameObject.GetPersonInfo() as IHighFivePerson; if (rp != null) { dp.TryAttackSimple(rp); } }; } ani.Play(clip.name); MainLoop.Instance.ExecuteLater( () => { if (aniObj) { // Debug.Log("回收Animation"); GetPoor(animationPrefab).ReleaseObj(aniObj); } }, clip.length); break; #endregion #region Partical case EffectType.Partical: var psObj = GetPrefabGo(particalPrefab, rp.gameObject); var ps = psObj.GetComponent <ParticleSystem>(); // Debug.Log("Partical"); ps.Stop(); ps.Play(); MainLoop.Instance.ExecuteUntilTrue(() => ps == null || ps.isStopped, () => { if (psObj) { // Debug.Log("回收Partical"); GetPoor(particalPrefab).ReleaseObj(psObj); } }); break; #endregion #region Damage case EffectType.Damage: //todo: 这里显示伤害数字才对 // dp?.TryAttackSimple(rp); new DamageNumberUI(dp.Attack, 0, 1, Color.red, rp.transform, dp.Dir); break; #endregion #region Audio case EffectType.Audio: switch (EffectInfoAsset.effectorType) { case EffectInfoAsset.EffectorType.Ditascher: Assert.IsTrue(dp != null); AudioMgr.Instance.PlayEffect(this.audioName.StringValue, dp.position); break; case EffectInfoAsset.EffectorType.Receiver: Assert.IsTrue(rp != null); AudioMgr.Instance.PlayEffect(this.audioName.StringValue, rp.position); break; } break; #endregion #region Shining case EffectType.Shining: Assert.IsTrue(rp != null); var sr = rp.gameObject.GetComponent <SpriteRenderer>(); var times = rp is IHighFiveCharacter ? rp.DefaultConstTime / shiningDuring : 0.8f; MainLoop.Instance.ExecuteEverySeconds( render => { if (sr == null) { return; } sr.color = sr.color == shiningColor ? Color.white : shiningColor; }, times, shiningDuring, sr, render => { if (sr == null) { return; } sr.color = Color.white; }); break; #endregion #region Hitback case EffectType.HitBack: Assert.IsTrue(rp != null && dp != null); if (!rp.IgnoreHitback) { var trans = rp.gameObject.transform; // trans.position += new Vector3(dp.Dir * Mathf.Abs(dp.HitBackSpeed.x), dp.HitBackSpeed.y, 0); var hitBack = new Vector2(dp.Dir * Mathf.Abs(dp.HitBackSpeed.x), dp.HitBackSpeed.y); //TODO:需要更好接口 rp.Controller.GetComponent <Actor>().ChangeVelBasedOnHitDir(hitBack, 15); } break; #endregion } }
/// <summary> /// sets the current effector. /// </summary> /// <param name="eft"></param> public void SetEffector(IEffector eft) { this.eft = eft; }
public WorkflowHost(IEffector grain, Func <WorkflowIdentity, Activity> workflowDefinitionFactory, WorkflowIdentity workflowDefinitionIdentity) { this.grain = grain; this.workflowDefinitionFactory = workflowDefinitionFactory; this.workflowDefinitionIdentity = workflowDefinitionIdentity; }