mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-09-30 15:13:10 -04:00
AI changes, added Stormtrooper and fixed creature names for Krettle, Chuba, and Womprat
This commit is contained in:
@@ -4,6 +4,12 @@ from java.util import Vector
|
||||
|
||||
def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
|
||||
mobileTemplate.setCreatureName('eow_dark_jedi_sentinel_uber')
|
||||
mobileTemplate.setLevel(90)
|
||||
mobileTemplate.setDifficulty(2)
|
||||
mobileTemplate.setAttackRange(6)
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_dressed_dark_jedi_master_female_twk_01.iff')
|
||||
templates.add('object/mobile/shared_dressed_dark_jedi_master_female_twk_02.iff')
|
||||
@@ -14,13 +20,16 @@ def addTemplate(core):
|
||||
templates.add('object/mobile/shared_dressed_dark_jedi_master_male_human_05.iff')
|
||||
templates.add('object/mobile/shared_dressed_dark_jedi_master_male_human_06.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
mobileTemplate.setLevel(90)
|
||||
mobileTemplate.setDifficulty(2)
|
||||
mobileTemplate.setCustomWeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff')
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weaponTemplates.add('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff')
|
||||
weaponTemplates.add('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff')
|
||||
weaponTemplates.add('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff')
|
||||
mobileTemplate.setWeaponTemplates(weaponTemplates)
|
||||
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('saberHit')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
mobileTemplate.setCreatureName('eow_dark_jedi_sentinel_uber')
|
||||
mobileTemplate.setAttackRange(6)
|
||||
|
||||
core.spawnService.addMobileTemplate('jedi_master', mobileTemplate)
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
import sys
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
|
||||
mobileTemplate.setCreatureName('stormtrooper')
|
||||
mobileTemplate.setLevel(90)
|
||||
mobileTemplate.setDifficulty(0)
|
||||
mobileTemplate.setAttackRange(24)
|
||||
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_dressed_stormtrooper_m.iff')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
|
||||
weaponTemplates = Vector()
|
||||
weaponTemplates.add('object/weapon/ranged/rifle/shared_rifle_e11.iff')
|
||||
weaponTemplates.add('object/weapon/ranged/rifle/shared_rifle_t21.iff')
|
||||
mobileTemplate.setWeaponTemplates(weaponTemplates)
|
||||
|
||||
attacks = Vector()
|
||||
mobileTemplate.setDefaultAttack('rangedShot')
|
||||
mobileTemplate.setAttacks(attacks)
|
||||
|
||||
core.spawnService.addMobileTemplate('stormtrooper', mobileTemplate)
|
||||
|
||||
@@ -6,6 +6,7 @@ def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_chuba_hue.iff')
|
||||
mobileTemplate.setCreatureName('chuba')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
mobileTemplate.setLevel(5)
|
||||
attacks = Vector()
|
||||
|
||||
@@ -6,6 +6,7 @@ def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_kreetle.iff')
|
||||
mobileTemplate.setCreatureName('kreetle')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
mobileTemplate.setLevel(5)
|
||||
attacks = Vector()
|
||||
|
||||
@@ -6,6 +6,7 @@ def addTemplate(core):
|
||||
mobileTemplate = MobileTemplate()
|
||||
templates = Vector()
|
||||
templates.add('object/mobile/shared_womp_rat.iff')
|
||||
mobileTemplate.setCreatureName('womprat')
|
||||
mobileTemplate.setTemplates(templates)
|
||||
mobileTemplate.setLevel(5)
|
||||
attacks = Vector()
|
||||
|
||||
@@ -47,6 +47,9 @@ public class AttackState extends AIState {
|
||||
@Override
|
||||
public byte onExit(AIActor actor) {
|
||||
// TODO Auto-generated method stub
|
||||
actor.getCreature().setLookAtTarget(0);
|
||||
actor.getCreature().setIntendedTarget(0);
|
||||
|
||||
return StateResult.FINISHED;
|
||||
}
|
||||
|
||||
@@ -100,7 +103,12 @@ public class AttackState extends AIState {
|
||||
if(creature.getPosture() == 14)
|
||||
return StateResult.DEAD;
|
||||
if(creature.getCombatFlag() == 0 || creature.getDefendersList().size() == 0 || actor.getFollowObject() == null)
|
||||
{
|
||||
creature.setLookAtTarget(0);
|
||||
creature.setIntendedTarget(0);
|
||||
actor.setFollowObject(null);
|
||||
return StateResult.FINISHED;
|
||||
}
|
||||
CreatureObject target = actor.getFollowObject();
|
||||
if(target != actor.getHighestDamageDealer() && actor.getHighestDamageDealer() != null) {
|
||||
actor.setFollowObject(actor.getHighestDamageDealer());
|
||||
@@ -116,7 +124,11 @@ public class AttackState extends AIState {
|
||||
actor.setFollowObject(actor.getHighestDamageDealer());
|
||||
target = actor.getFollowObject();
|
||||
if(target == null)
|
||||
{
|
||||
creature.setLookAtTarget(0);
|
||||
creature.setIntendedTarget(0);
|
||||
return StateResult.FINISHED;
|
||||
}
|
||||
}
|
||||
if(target.getWorldPosition().getDistance(creature.getWorldPosition()) > 128 || target.getPosture() == 13 || target.getPosture() == 14) {
|
||||
actor.removeDefender(target);
|
||||
@@ -141,6 +153,9 @@ public class AttackState extends AIState {
|
||||
|
||||
Vector<String> attacks = actor.getMobileTemplate().getAttacks();
|
||||
|
||||
creature.setLookAtTarget(target.getObjectId());
|
||||
creature.setIntendedTarget(target.getObjectId());
|
||||
|
||||
if(attacks.size() == 0) {
|
||||
core.commandService.callCommand(creature, actor.getMobileTemplate().getDefaultAttack(), target, "");
|
||||
} else {
|
||||
|
||||
@@ -44,7 +44,7 @@ public class MobileTemplate {
|
||||
private float scale = 1;
|
||||
// this is a custom attack Range setting to use for large mobs like krayts
|
||||
private int attackRange;
|
||||
private String customWeaponTemplate;
|
||||
private Vector<String> weaponTemplates;
|
||||
|
||||
public Vector<String> getTemplates() {
|
||||
return templates;
|
||||
@@ -158,13 +158,11 @@ public class MobileTemplate {
|
||||
this.attackRange = attackRange;
|
||||
}
|
||||
|
||||
public void setCustomWeaponTemplate(String template)
|
||||
{
|
||||
this.customWeaponTemplate = template;
|
||||
public Vector<String> getWeaponTemplates() {
|
||||
return weaponTemplates;
|
||||
}
|
||||
|
||||
public String getCustomWeaponTemplate()
|
||||
{
|
||||
return customWeaponTemplate;
|
||||
|
||||
public void setWeaponTemplates(Vector<String> weaponTemplates) {
|
||||
this.weaponTemplates = weaponTemplates;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ public class SpawnService {
|
||||
creature.setLevel(level);
|
||||
else
|
||||
creature.setLevel(mobileTemplate.getLevel());
|
||||
WeaponObject defaultWeapon = (mobileTemplate.getCustomWeaponTemplate() != null) ? (WeaponObject) core.objectService.createObject(mobileTemplate.getCustomWeaponTemplate(), creature.getPlanet()) : (WeaponObject) core.objectService.createObject("object/weapon/creature/shared_creature_default_weapon.iff", creature.getPlanet());
|
||||
WeaponObject defaultWeapon = (mobileTemplate.getWeaponTemplates().size() > 0) ? (WeaponObject) core.objectService.createObject(mobileTemplate.getWeaponTemplates().get(new Random().nextInt(mobileTemplate.getWeaponTemplates().size())), creature.getPlanet()) : (WeaponObject) core.objectService.createObject("object/weapon/creature/shared_creature_default_weapon.iff", creature.getPlanet());
|
||||
defaultWeapon.setAttackSpeed(2);
|
||||
defaultWeapon.setDamageType("@obj_attr_n:armor_eff_kinetic");
|
||||
defaultWeapon.setStringAttribute("cat_wpn_damage.damage", "0-0");
|
||||
|
||||
Reference in New Issue
Block a user