Beispiel #1
0
 public void SetSpells(AIUnitRecord record)
 {
     Spells.Clear();
     AddSpell(0, SpellProvider.Instance.GetSpell(Owner, 0, record.Spell1));
     AddSpell(1, SpellProvider.Instance.GetSpell(Owner, 1, record.Spell2));
     AddSpell(2, SpellProvider.Instance.GetSpell(Owner, 2, record.Spell3));
     AddSpell(3, SpellProvider.Instance.GetSpell(Owner, 3, record.Spell4));
 }
Beispiel #2
0
 public CharacterStack(AIUnitRecord stackUnitRecord, uint id, bool modelOnly, bool overrideSpells,
                       bool replaceCharacterPackage, uint skinId)
 {
     this.StackUnitRecord = stackUnitRecord;
     this.Id                      = id;
     this.ModelOnly               = modelOnly;
     this.OverrideSpells          = overrideSpells;
     this.ReplaceCharacterPackage = replaceCharacterPackage;
     this.SkinId                  = skinId;
 }
Beispiel #3
0
        protected void SpawnMonster(string name, Vector2 position, int delay)
        {
            uint         netId   = Game.NetIdProvider.PopNextNetId();
            AIUnitRecord record  = AIUnitRecord.GetAIUnitRecord(name);
            AIMonster    monster = new AIMonster(netId, record, delay);

            monster.SpawnPosition = position;
            monster.Position      = position;
            monster.DefineGame(Game);
            Game.AddUnitToTeam(monster, TeamId.NEUTRAL);
            Game.Map.AddUnit(monster);
        }
Beispiel #4
0
        public void SpawnCamp(string monsterName, Game game, Vector2 position)
        {
            AIMonster monster = new AIMonster(game.NetIdProvider.PopNextNetId(), AIUnitRecord.GetAIUnitRecord(monsterName), 0);

            monster.Position      = position;
            monster.SpawnPosition = position;
            monster.DefineGame(game);
            game.AddUnitToTeam(monster, TeamId.NEUTRAL);
            game.Map.AddUnit(monster);
            monster.Initialize();
            monster.Create();
        }
        public static void HandleKeyCheckMessage(KeyCheckMessage message, LoLClient client)
        {
            long userId = LoLServer.BlowFish.Decrypt((ulong)message.checkId);

            logger.Write("User (" + userId + ") connected!");

            if (userId != message.userId)
            {
                return;
            }
            client.UserId = userId;

            PlayerData datas = ConfigurationProvider.Instance.GetPlayerData(userId);

            if (datas == null)
            {
                logger.Write("No player data for userId:" + userId, MessageState.WARNING);
                return;
            }

            Game targetGame = GameProvider.TestGame;

            if (targetGame.Contains(userId))
            {
                logger.Write(userId + "try to connect a second time!", MessageState.WARNING);
                return;
            }
            client.DefinePlayer(new AIHero(client, datas, AIUnitRecord.GetAIUnitRecord(datas.ChampionName)));

            client.Hero.DefineGame(targetGame);

            client.Hero.Game.AddUnitToTeam(client.Hero, client.Hero.Data.Team);

            client.Hero.PlayerNo = client.Hero.Game.PopNextPlayerNo();

            // on montre aux joueurs de la partie que je suis la !
            client.Hero.Game.Send(new KeyCheckMessage(PartialKey, client.Hero.PlayerNo, userId, 0, 0, 0), Channel.CHL_HANDSHAKE);

            // on montre a moi les autre joueurs de la partie
            foreach (var player in client.Hero.Game.Players)
            {
                client.Send(new KeyCheckMessage(PartialKey, player.PlayerNo, player.Client.UserId.Value, 0, 0, 0), Channel.CHL_HANDSHAKE);
            }

            // useless??
            client.Send(new WorldGameNumberMessage(client.Hero.Game.Id, client.Hero.Game.Name), Channel.CHL_S2C);

            // blowfish >= 8
            client.Encrypt = true;
        }
Beispiel #6
0
        protected void SpawnAITurret(string turretName, string aiUnitRecordName, string customAIUnitRecord = null)
        {
            AIUnitRecord aIUnitRecord = AIUnitRecord.GetAIUnitRecord(customAIUnitRecord != null ? customAIUnitRecord : aiUnitRecordName);

            MapObjectRecord objectRecord = Game.Map.Record.GetObject(turretName);

            if (objectRecord == null)
            {
                logger.Write(string.Format(SPAWN_EX_STRING, turretName, "the GameObjectRecord do not exist."), MessageState.WARNING);
                return;
            }
            if (aIUnitRecord == null)
            {
                logger.Write(string.Format(SPAWN_EX_STRING, turretName, "the AIUnitRecord do not exist."), MessageState.WARNING);
                return;
            }

            string fullName = turretName + BuildingProvider.TOWER_SUFFIX;

            var teamId = BuildingProvider.Instance.GetTeamId(turretName);

            if (teamId != TeamId.UNKNOWN)
            {
                uint     netId  = (uint)(BuildingProvider.BUILDING_NETID_X | CRC32.Compute(Encoding.ASCII.GetBytes(fullName)));
                AITurret turret = new AITurret(netId, aIUnitRecord, objectRecord, BuildingRecord.GetBuildingRecord(Game.Map.Id, turretName), BuildingProvider.TOWER_SUFFIX);
                turret.DefineGame(Game);
                Game.AddUnitToTeam(turret, teamId);
                Game.Map.AddUnit(turret);

                if (customAIUnitRecord != null)
                {
                    turret.AddStackData(customAIUnitRecord, 0, false, true, true, false);
                }
            }
            else
            {
                logger.Write(string.Format(SPAWN_EX_STRING, turretName, "Unable to find a team."), MessageState.WARNING);
            }
        }
Beispiel #7
0
 public HeroStats(AIUnitRecord record, int skinId) : base((float)record.BaseHp, (float)record.BaseMp, (float)record.BaseHpRegen, (float)record.BaseArmor,
                                                          (float)record.BaseDamage, record.BaseAbilityPower, (float)record.BaseDodge, (float)record.BaseCritChance, (float)record.BaseMagicResist,
                                                          (float)record.BaseMpRegen, record.AttackRange, (float)record.BaseAttackSpeed, (float)record.AttackDelayOffsetPercent, AIHero.DEFAULT_COOLDOWN_REDUCTION,
                                                          0, 0, 0, 0, 0, DEFAULT_PERCEPTION_BUBBLE_RADIUS, record.BaseMovementSpeed, record.GetSkinScale(skinId)) // 1 = todo SkinRecord
 {
 }
Beispiel #8
0
 public MinionStats(AIUnitRecord record) : base((float)record.BaseHp, (float)record.BaseMp, (float)record.BaseHpRegen, (float)record.BaseArmor,
                                                (float)record.BaseDamage, record.BaseAbilityPower, (float)record.BaseDodge, (float)record.BaseCritChance, (float)record.BaseMagicResist,
                                                (float)record.BaseMpRegen, record.AttackRange, (float)record.BaseAttackSpeed, (float)record.AttackDelayOffsetPercent, 0,
                                                0, 0, 0, 0, 0, (float)record.PerceptionBubbleRadius, record.BaseMovementSpeed, DEFAULT_MINION_MODEL_SIZE)
 {
 }
Beispiel #9
0
 public AIHero(LoLClient client, PlayerData data, AIUnitRecord record) : base(0, record)
 {
     Client       = client;
     Data         = data;
     Disconnected = false;
 }
Beispiel #10
0
 public AIUnit(uint netId, AIUnitRecord record) : base(netId)
 {
     this.Record          = record;
     this.CharacterStacks = new Dictionary <uint, CharacterStack>();
 }
Beispiel #11
0
 public TurretStats(AIUnitRecord record, BuildingRecord buildingRecord) : base((float)record.BaseHp, (float)record.BaseMp, (float)record.BaseHpRegen, (float)record.BaseArmor,
                                                                               (float)record.BaseDamage, record.BaseAbilityPower, (float)record.BaseDodge, (float)record.BaseCritChance, (float)record.BaseMagicResist,
                                                                               (float)record.BaseMpRegen, record.AttackRange, (float)record.BaseAttackSpeed, (float)record.AttackDelayOffsetPercent, AIHero.DEFAULT_COOLDOWN_REDUCTION,
                                                                               0, 0, 0, 0, 0, DEFAULT_PERCEPTION_BUBBLE_RADIUS, record.BaseMovementSpeed, 1)
 {
 }
Beispiel #12
0
 public AIMonster(uint netId, AIUnitRecord record, float spawnDelay) : base(netId, record)
 {
 }
Beispiel #13
0
 public AIMinion(uint netId, AIUnitRecord record) : base(netId, record)
 {
 }