Пример #1
0
        public void OnEnemyDeath(NebulaObject enemy)
        {
            logger.Info($"{LOG_TAG}: enemy was killed {enemy.getItemType()}=>{enemy.Id}");

            if (enemy.getItemType() == ItemType.Bot)
            {
                var botComponent = enemy.GetComponent <BotObject>();
                if (botComponent?.getSubType() == BotItemSubType.StandardCombatNpc)
                {
                    var enemyCharacterObject = enemy.GetComponent <CharacterObject>();
                    if (enemyCharacterObject != null)
                    {
                        Workshop eClass        = (Workshop)enemyCharacterObject.workshop;
                        int      eLevel        = enemyCharacterObject.level;
                        var      shipComponent = enemy.GetComponent <BotShip>();
                        if (shipComponent != null)
                        {
                            ObjectColor eColor = NebulaEnumUtils.GetColorForDifficulty(shipComponent.difficulty);
                            KilledNpc = new QuestKilledNpc(eLevel, eClass, eColor, botComponent.botGroup);
                            TryCompleteQuest(sendUpdate: true);
                        }
                    }
                }
            }
        }
Пример #2
0
        private void SetupSkills()
        {
            var ship = GetComponent <BaseShip>();

            if (ship)
            {
                var classMap = resource.npcSkills.GetClassSkillMap(mCharacter.myClass);
                if (classMap == null)
                {
                    return;
                }

                ShipWeapon shipWeapon = mWeapon as ShipWeapon;
                if (shipWeapon == null)
                {
                    return;
                }
                var colorMap = classMap.GetColorSkillList(NebulaEnumUtils.GetColorForDifficulty(shipWeapon.weaponDifficulty));

                if (colorMap == null)
                {
                    return;
                }

                int level          = mCharacter.level;
                int maxSkillsCount = 1;
                if (level < 2)
                {
                    maxSkillsCount = 1;
                }
                else if (level < 6)
                {
                    maxSkillsCount = 2;
                }
                else
                {
                    maxSkillsCount = 3;
                }

                if (maxSkillsCount >= colorMap.skills.Count)
                {
                    maxSkillsCount = colorMap.skills.Count;
                }
                List <int> filtered = colorMap.skills.Take(maxSkillsCount).ToList();
                m_CurrentSkills = filtered;

                for (int i = 0; i < filtered.Count; i++)
                {
                    int skill = colorMap.skills[i];
                    switch (i)
                    {
                    case 0: {
                        var module = ship.shipModel.Slot(ShipModelSlotType.CB).Module;
                        if (module != null)
                        {
                            module.SetSkill(skill);
                        }
                    }
                    break;

                    case 1: {
                        var module = ship.shipModel.Slot(ShipModelSlotType.CM).Module;
                        if (module != null)
                        {
                            module.SetSkill(skill);
                        }
                    }
                    break;

                    case 2: {
                        var module = ship.shipModel.Slot(ShipModelSlotType.DF).Module;
                        if (module != null)
                        {
                            module.SetSkill(skill);
                        }
                    }
                    break;
                    }
                }

                if (m_Skills)
                {
                    m_Skills.UpdateSkills(ship.shipModel);
                    //m_SlotsWithSkills = m_Skills.slotsWithSkill;
                }
            }

            //if (m_SlotsWithSkills == null) {
            //    m_SlotsWithSkills = new List<int>();
            //}
        }