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); } } } } }
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>(); //} }