Ejemplo n.º 1
0
        public uint CreateEvadeDummy(uint ownerID, string evadeDummyName, Vector3 initPos, Vector3 initDir)
        {
            BaseMonoDynamicObject entity = this.CreateDynamicObjectEntityInstance(ownerID, evadeDummyName, initPos, initDir, this.GetNextNonSyncedDynamicObjectRuntimeID());

            entity.dynamicType = BaseMonoDynamicObject.DynamicType.EvadeDummy;
            EvadeEntityDummy dummy = Singleton <EventManager> .Instance.CreateActor <EvadeEntityDummy>(entity);

            dummy.Setup(ownerID);
            return(dummy.runtimeID);
        }
Ejemplo n.º 2
0
        public override void OnAbilityTriggered(EvtAbilityStart evt)
        {
            if ((this._dummyActor != null) && this._dummyActor.IsEntityExists())
            {
                this._dummyActor.Kill();
            }
            uint runtimeID = Singleton <DynamicObjectManager> .Instance.CreateEvadeDummy(base.actor.runtimeID, this.config.EvadeDummyName, base.actor.entity.XZPosition, base.actor.entity.transform.forward);

            this._dummyActor = Singleton <EventManager> .Instance.GetActor <EvadeEntityDummy>(runtimeID);

            base.actor.abilityPlugin.HandleActionTargetDispatch(this.config.EvadeStartActions, base.instancedAbility, base.instancedModifier, null, null);
            Singleton <EventManager> .Instance.FireEvent(new EvtEvadeStart(base.actor.runtimeID), MPEventDispatchMode.Normal);

            if (this._state == State.Idle)
            {
                base.actor.AddAbilityState(AbilityState.BlockAnimEventAttack, true);
                base.entity.SetCountedIsGhost(true);
            }
            this._evadeTimer.Reset(true);
            this._extendedBlockAttackTimer.Reset(true);
            this._state = State.Evading;
        }