AI changes, added Stormtrooper and fixed creature names for Krettle, Chuba, and Womprat

This commit is contained in:
Seefo
2014-03-31 14:14:51 -04:00
parent 7969394bea
commit 73b20381fe
8 changed files with 66 additions and 14 deletions
+14 -5
View File
@@ -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)
+27
View File
@@ -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)
+1
View File
@@ -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()
+1
View File
@@ -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()
+1
View File
@@ -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()
+15
View File
@@ -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 {
+6 -8
View File
@@ -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;
}
}
+1 -1
View File
@@ -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");