public void Reset(NodeAddedEvent evt, ActiveTankNode selfActiveTank, [JoinByTank] CompleteChargingWeaponControllerNode chargingWeaponNode)
        {
            Entity entity = chargingWeaponNode.Entity;

            entity.RemoveComponent <RailgunChargingStateComponent>();
            entity.AddComponent <ReadyRailgunChargingWeaponComponent>();
        }
        public void SendShotPrepare(RailgunDelayedShotPrepareEvent evt, CompleteChargingWeaponControllerNode chargingWeaponNode, [JoinByTank] ActiveTankNode selfActiveTank)
        {
            Entity entity = chargingWeaponNode.Entity;

            entity.AddComponent <ReadyRailgunChargingWeaponComponent>();
            entity.RemoveComponent <RailgunChargingStateComponent>();
            if (chargingWeaponNode.Entity.HasComponent <ShootableComponent>())
            {
                base.ScheduleEvent <BeforeShotEvent>(entity);
                base.ScheduleEvent <ShotPrepareEvent>(entity);
            }
        }