public static SpellReticule Create(GameObject reticule, Vector3 pos, Quaternion rot, ISpell spell, SpellRegistry registry, Parent parent) { GameObject newObject = Instantiate(reticule, pos, rot) as GameObject; SpellReticule ret = newObject.GetComponent <SpellReticule>(); ret._spell = spell; ret._registry = registry; ret._registryId = registry.Register(ret); ret._parent = parent; return(ret); }
public void Transition() { if (Input.GetKeyDown(_spellConfig.cast)) { var pos = transform.position; pos.y = 0.1f; _reticule = _reticuleFactory.reticuleFor(_spell, pos, transform.rotation, this); _state = CharacterState.CASTING; } else if (Input.GetKeyUp(_spellConfig.cast) && _state == CharacterState.CASTING) { _reticule.Cast(); _state = CharacterState.MOVING; } if (_reticule != null) { if (Input.GetKeyDown(_spellConfig.transition)) { _reticule.Transition(); } } }
public SpellReticule reticuleFor(ISpell spell, Vector3 pos, Quaternion rot, Parent parent) { GameObject obj; switch (spell.effect().element) { case Element.Adam: obj = reticuleAdam; break; case Element.Earth: obj = reticuleEarth; break; case Element.Fire: obj = reticuleFire; break; case Element.Lightning: obj = reticuleAir; break; case Element.Matt: obj = reticuleMatt; break; case Element.Metal: obj = reticuleMetal; break; case Element.Water: default: obj = reticuleWater; break; } return(SpellReticule.Create(obj, pos, rot, spell, _registry, parent)); }
public long Register(SpellReticule reticule) { lastLong += 1; registry.Add(lastLong, reticule); return(lastLong); }