예제 #1
0
        public SkillsManager(ILogger <SkillsManager> logger, IGameDefinitionsPreloder definitionsPreloder, IDatabase database, IHealthManager healthManager, IAttackManager attackManager, IBuffsManager buffsManager, IStatsManager statsManager, IElementProvider elementProvider, ICountryProvider countryProvider, ICharacterConfiguration characterConfig, ILevelProvider levelProvider, IAdditionalInfoManager additionalInfoManager, IMapProvider mapProvider, ITeleportationManager teleportationManager, IMovementManager movementManager, IShapeManager shapeManager, IPartyManager partyManager, IGamePacketFactory packetFactory)
        {
            _logger = logger;
            _definitionsPreloder      = definitionsPreloder;
            _database                 = database;
            _healthManager            = healthManager;
            _attackManager            = attackManager;
            _buffsManager             = buffsManager;
            _statsManager             = statsManager;
            _elementProvider          = elementProvider;
            _countryProvider          = countryProvider;
            _characterConfig          = characterConfig;
            _levelProvider            = levelProvider;
            _additionalInfoManager    = additionalInfoManager;
            _mapProvider              = mapProvider;
            _teleportationManager     = teleportationManager;
            _movementManager          = movementManager;
            _shapeManager             = shapeManager;
            _partyManager             = partyManager;
            _packetFactory            = packetFactory;
            _levelProvider.OnLevelUp += OnLevelUp;

#if DEBUG
            _logger.LogDebug("SkillsManager {hashcode} created", GetHashCode());
#endif
        }
예제 #2
0
 public UseSkillHandlers(IGamePacketFactory packetFactory, IGameSession gameSession, IGameWorld gameWorld, ISkillsManager skillsManager, IAttackManager attackManager, IMapProvider mapProvider, ISkillCastingManager skillCastingManager) : base(packetFactory, gameSession)
 {
     _gameWorld           = gameWorld;
     _skillsManager       = skillsManager;
     _attackManager       = attackManager;
     _mapProvider         = mapProvider;
     _skillCastingManager = skillCastingManager;
 }
예제 #3
0
        /// <summary>
        /// Starts a new game.
        /// </summary>
        /// <param name="worldId">World identifier.</param>
        /// <param name="factionId">Faction identifier.</param>
        public void NewGame(string worldId, string factionId)
        {
            world = new WorldManager();
            world.LoadWorld(worldId);

            attack = new AttackManager(world);

            InitializeGame(factionId);
        }
예제 #4
0
        /// <summary>
        /// Starts a new game as a random faction.
        /// </summary>
        /// <param name="worldId">World identifier.</param>
        public void NewGame(string worldId)
        {
            world = new WorldManager();
            world.LoadWorld(worldId);

            attack = new AttackManager(world);

            Faction faction = GetFactions().Where(f => f.Id != GameDefines.GAIA_FACTION).GetRandomElement();

            InitializeGame(faction.Id);
        }
예제 #5
0
 private void Start()
 {
     _rbd               = GetComponent <Rigidbody>();
     _stats             = GetComponent <Stats>();
     _movementDirection = SetCameraDirection(cameraView);
     _animatorFacade    = new AnimatorFacade(GetComponentInChildren <ICharacterAnimator>(), this);
     InitMovements();                                    // creating all movements
     _movement        = _movements[MovementEnum.Ground]; // setting the current movement as Ground One
     _healthComponent = new HealthComponent(this);
     _armour          = new Armour(this);
     _attackManager   = new AttackManager(_animatorFacade, this);
 }
예제 #6
0
 private void Start()
 {
     rbd               = GetComponent <Rigidbody>();
     stats             = GetComponent <Stats>();
     movementDirection = setCameraDirection(cameraView);
     animatorFacade    = new AnimatorFacade(GetComponentInChildren <ICharacterAnimator>(), this);
     initMovements();
     movement        = movements[MovementEnum.Ground];
     healthComponent = new HealthComponent(this);
     armour          = new Armour(this);
     attackManager   = new AttackManager(animatorFacade, this);
 }
예제 #7
0
        public Mob(ushort mobId,
                   bool shouldRebirth,
                   MoveArea moveArea,
                   ILogger <Mob> logger,
                   IDatabasePreloader databasePreloader,
                   IAIManager aiManager,
                   IItemEnchantConfiguration enchantConfig,
                   IItemCreateConfiguration itemCreateConfig,
                   ICountryProvider countryProvider,
                   IStatsManager statsManager,
                   IHealthManager healthManager,
                   ILevelProvider levelProvider,
                   ISpeedManager speedManager,
                   IAttackManager attackManager,
                   ISkillsManager skillsManager,
                   IBuffsManager buffsManager,
                   IElementProvider elementProvider,
                   IMovementManager movementManager,
                   IUntouchableManager untouchableManager,
                   IMapProvider mapProvider) : base(databasePreloader, countryProvider, statsManager, healthManager, levelProvider, buffsManager, elementProvider, movementManager, untouchableManager, mapProvider)
        {
            _logger           = logger;
            _enchantConfig    = enchantConfig;
            _itemCreateConfig = itemCreateConfig;
            _dbMob            = databasePreloader.Mobs[mobId];
            _moveArea         = moveArea;

            AIManager = aiManager;

            Exp           = _dbMob.Exp;
            ShouldRebirth = shouldRebirth;

            SpeedManager  = speedManager;
            AttackManager = attackManager;
            SkillsManager = skillsManager;

            ElementProvider.ConstAttackElement  = _dbMob.Element;
            ElementProvider.ConstDefenceElement = _dbMob.Element;

            if (ShouldRebirth)
            {
                _rebirthTimer.Interval = RespawnTimeInMilliseconds;
                _rebirthTimer.Elapsed += RebirthTimer_Elapsed;

                HealthManager.OnDead += MobRebirth_OnDead;
            }

            HealthManager.OnGotDamage += OnDecreaseHP;
            AIManager.OnStateChanged  += AIManager_OnStateChanged;
        }
예제 #8
0
        public AIManager(ILogger <AIManager> logger, IMovementManager movementManager, ICountryProvider countryProvider, IAttackManager attackManager, IUntouchableManager untouchableManager, IMapProvider mapProvider, ISkillsManager skillsManager, IStatsManager statsManager, IElementProvider elementProvider, IGameDefinitionsPreloder definitionsPreloder, ISpeedManager speedManager)
        {
            _logger              = logger;
            _movementManager     = movementManager;
            _countryProvider     = countryProvider;
            _attackManager       = attackManager;
            _untouchableManager  = untouchableManager;
            _mapProvider         = mapProvider;
            _skillsManager       = skillsManager;
            _statsManager        = statsManager;
            _elementProvider     = elementProvider;
            _definitionsPreloder = definitionsPreloder;
            _speedManager        = speedManager;

            _attackManager.OnTargetChanged += AttackManager_OnTargetChanged;
#if DEBUG
            _logger.LogDebug("AIManager {hashcode} created", GetHashCode());
#endif
        }
예제 #9
0
        public Character(ILogger <Character> logger,
                         IDatabasePreloader databasePreloader,
                         IGuildManager guildManager,
                         ICountryProvider countryProvider,
                         ISpeedManager speedManager,
                         IStatsManager statsManager,
                         IAdditionalInfoManager additionalInfoManager,
                         IHealthManager healthManager,
                         ILevelProvider levelProvider,
                         ILevelingManager levelingManager,
                         IInventoryManager inventoryManager,
                         IStealthManager stealthManager,
                         IAttackManager attackManager,
                         ISkillsManager skillsManager,
                         IBuffsManager buffsManager,
                         IElementProvider elementProvider,
                         IKillsManager killsManager,
                         IVehicleManager vehicleManager,
                         IShapeManager shapeManager,
                         IMovementManager movementManager,
                         ILinkingManager linkinManager,
                         IMapProvider mapProvider,
                         ITeleportationManager teleportationManager,
                         IPartyManager partyManager,
                         ITradeManager tradeManager,
                         IFriendsManager friendsManager,
                         IDuelManager duelManager,
                         IBankManager bankManager,
                         IQuestsManager questsManager,
                         IUntouchableManager untouchableManager,
                         IWarehouseManager warehouseManager,
                         IShopManager shopManager,
                         ISkillCastingManager skillCastingManager,
                         ICastProtectionManager castProtectionManager,
                         IGameSession gameSession,
                         IGamePacketFactory packetFactory) : base(databasePreloader, countryProvider, statsManager, healthManager, levelProvider, buffsManager, elementProvider, movementManager, untouchableManager, mapProvider)
        {
            _logger        = logger;
            _packetFactory = packetFactory;

            AdditionalInfoManager = additionalInfoManager;
            InventoryManager      = inventoryManager;
            StealthManager        = stealthManager;
            LevelingManager       = levelingManager;
            SpeedManager          = speedManager;
            AttackManager         = attackManager;
            SkillsManager         = skillsManager;
            KillsManager          = killsManager;
            VehicleManager        = vehicleManager;
            ShapeManager          = shapeManager;
            LinkingManager        = linkinManager;
            TeleportationManager  = teleportationManager;
            PartyManager          = partyManager;
            TradeManager          = tradeManager;
            FriendsManager        = friendsManager;
            DuelManager           = duelManager;
            GuildManager          = guildManager;
            BankManager           = bankManager;
            QuestsManager         = questsManager;
            WarehouseManager      = warehouseManager;
            ShopManager           = shopManager;
            SkillCastingManager   = skillCastingManager;
            CastProtectionManager = castProtectionManager;
            GameSession           = gameSession;

            HealthManager.MP_SP_Used += SendUseMPSP;
            HealthManager.OnCurrentHitpointsChanged += SendCurrentHitpoints;
            StatsManager.OnAdditionalStatsUpdate    += SendAdditionalStats;
            StatsManager.OnResetStats         += SendResetStats;
            BuffsManager.OnBuffAdded          += SendAddBuff;
            BuffsManager.OnBuffRemoved        += SendRemoveBuff;
            AttackManager.OnStartAttack       += SendAttackStart;
            VehicleManager.OnUsedVehicle      += SendUseVehicle;
            SkillsManager.OnResetSkills       += SendResetSkills;
            InventoryManager.OnAddItem        += SendAddItemToInventory;
            InventoryManager.OnRemoveItem     += SendRemoveItemFromInventory;
            InventoryManager.OnItemExpired    += SendItemExpired;
            AttackManager.TargetOnBuffAdded   += SendTargetAddBuff;
            AttackManager.TargetOnBuffRemoved += SendTargetRemoveBuff;
            DuelManager.OnDuelResponse        += SendDuelResponse;
            DuelManager.OnStart                   += SendDuelStart;
            DuelManager.OnCanceled                += SendDuelCancel;
            DuelManager.OnFinish                  += SendDuelFinish;
            LevelingManager.OnExpChanged          += SendExperienceGain;
            QuestsManager.OnQuestMobCountChanged  += SendQuestCountUpdate;
            QuestsManager.OnQuestFinished         += SendQuestFinished;
            ShopManager.OnUseShopClosed           += SendUseShopClosed;
            ShopManager.OnUseShopItemCountChanged += SendUseShopItemCountChanged;
            ShopManager.OnSoldItem                += SendSoldItem;

            Bless.Instance.OnDarkBlessChanged  += OnDarkBlessChanged;
            Bless.Instance.OnLightBlessChanged += OnLightBlessChanged;
        }
예제 #10
0
 private IAttackManager getAttackManager(Animator animator)
 {
     return(_attackManager ?? (_attackManager = animator.GetComponentInParent <ICharacter>().getAttackManager()));
 }
예제 #11
0
 private void Start()
 {
     character     = GetComponentInParent <ICharacter>();
     attackManager = character.getAttackManager();
     animator      = GetComponent <Animator>();
 }
예제 #12
0
 private void makeSureAttackManagerIsNotNull()
 {
     attackManager = attackManager ?? character.getAttackManager();
 }
예제 #13
0
 public TargetHandlers(IGamePacketFactory packetFactory, IGameSession gameSession, IMapProvider mapProvider, IAttackManager attackManager, IGameWorld gameWorld) : base(packetFactory, gameSession)
 {
     _mapProvider   = mapProvider;
     _attackManager = attackManager;
     _gameWorld     = gameWorld;
 }
예제 #14
0
 public void SetAttackManager(IAttackManager am)
 {
     _manager = am;
 }
예제 #15
0
 public CharacterFactory(ILogger <ICharacterFactory> logger,
                         IDatabase database,
                         ILogger <Character> characterLogger,
                         IGameWorld gameWorld,
                         IDatabasePreloader databasePreloader,
                         IGameDefinitionsPreloder definitionsPreloder,
                         ICountryProvider countryProvider,
                         ISpeedManager speedManager,
                         IStatsManager statsManager,
                         IHealthManager healthManager,
                         ILevelProvider levelProvider,
                         ILevelingManager levelingManager,
                         IInventoryManager inventoryManager,
                         ILinkingManager linkingManager,
                         IGuildManager guildManager,
                         IGameSession gameSession,
                         IStealthManager stealthManager,
                         IAttackManager attackManager,
                         ISkillsManager skillsManager,
                         IBuffsManager buffsManager,
                         IElementProvider elementProvider,
                         IKillsManager killsManager,
                         IVehicleManager vehicleManager,
                         IShapeManager shapeManager,
                         IMovementManager movementManager,
                         IAdditionalInfoManager additionalInfoManager,
                         IMapProvider mapProvider,
                         ITeleportationManager teleportationManager,
                         IPartyManager partyManager,
                         ITradeManager tradeManager,
                         IFriendsManager friendsManager,
                         IDuelManager duelManager,
                         IBankManager bankManager,
                         IQuestsManager questsManager,
                         IUntouchableManager untouchableManager,
                         IWarehouseManager warehouseManager,
                         IShopManager shopManager,
                         ISkillCastingManager skillCastingManager,
                         ICastProtectionManager castProtectionManager,
                         IGamePacketFactory packetFactory,
                         UserManager <DbUser> userManager)
 {
     _logger                = logger;
     _database              = database;
     _characterLogger       = characterLogger;
     _gameWorld             = gameWorld;
     _databasePreloader     = databasePreloader;
     _definitionsPreloder   = definitionsPreloder;
     _countryProvider       = countryProvider;
     _speedManager          = speedManager;
     _statsManager          = statsManager;
     _healthManager         = healthManager;
     _levelProvider         = levelProvider;
     _levelingManager       = levelingManager;
     _inventoryManager      = inventoryManager;
     _linkingManager        = linkingManager;
     _guildManager          = guildManager;
     _gameSession           = gameSession;
     _stealthManager        = stealthManager;
     _attackManager         = attackManager;
     _skillsManager         = skillsManager;
     _buffsManager          = buffsManager;
     _elementProvider       = elementProvider;
     _killsManager          = killsManager;
     _vehicleManager        = vehicleManager;
     _shapeManager          = shapeManager;
     _movementManager       = movementManager;
     _additionalInfoManager = additionalInfoManager;
     _mapProvider           = mapProvider;
     _teleportationManager  = teleportationManager;
     _partyManager          = partyManager;
     _tradeManager          = tradeManager;
     _friendsManager        = friendsManager;
     _duelManager           = duelManager;
     _bankManager           = bankManager;
     _questsManager         = questsManager;
     _untouchableManager    = untouchableManager;
     _warehouseManager      = warehouseManager;
     _shopManager           = shopManager;
     _skillCastingManager   = skillCastingManager;
     _castProtectionManager = castProtectionManager;
     _packetFactory         = packetFactory;
     _userManager           = userManager;
 }
 public void RegisterAttackManager(IAttackManager attackManager)
 {
     MyAttackManager = attackManager;
 }
예제 #17
0
        //----------------------------------------------------------------------------
        //                   Initialise
        //----------------------------------------------------------------------------

        #region Initialise
        /// <summary>
        /// Inherited from IAttackController. <para/>
        /// Includes dependancy injection from AttackManager
        /// </summary>
        public void Initialise(IAttackManager attackManager)
        {
            MyAttackManager = attackManager;
            MyAttackRanges  = new AttackRanges();
        }
예제 #18
0
 public ObjectManager(IGORR.Server.Server server)
 {
     _server = server;
     _objects = new List<GameObject>();
     _attacks = new AttackManager(server);
 }
예제 #19
0
 private void MakeSureAttackManagerIsNotNull()
 {
     _attackManager = _attackManager ?? _character.getAttackManager();
 }