Initial Commit

This commit is contained in:
Sindusk
2018-03-31 13:23:16 -04:00
commit 7f3733295f
150 changed files with 16109 additions and 0 deletions

View File

@@ -0,0 +1,75 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.EncounterBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.mesh.Tiles;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class Avenger implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
// {C_TYPE_MOVE_LOCAL, C_TYPE_VEHICLE, C_TYPE_ANIMAL, C_TYPE_LEADABLE, C_TYPE_GRAZER, C_TYPE_OMNIVORE, C_TYPE_DOMINATABLE, C_TYPE_AGG_HUMAN, C_TYPE_NON_NEWBIE, C_TYPE_BURNING}; - Hell Horse
// int[] types = new int[]{7, 6, 13, 3, 29, 39, 60, 61}; - Spider
int[] types = {
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_MONSTER,
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_DOMINATABLE,
CreatureTypes.C_TYPE_DETECTINVIS,
CreatureTypes.C_TYPE_NON_NEWBIE
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.avenger", "Avenger", "Sent from the heavens to purge the unworthy.",
"model.creature.humanoid.avenger.light", types, BodyTemplate.TYPE_HUMAN, (short) 5, (byte) 0, (short) 85, (short) 50, (short) 85,
"sound.death.giant", "sound.death.giant", "sound.combat.hit.giant", "sound.combat.hit.giant",
0.3f, 25f, 0f, 0f, 0.0f, 0.0f, 1.2f, 500,
new int[]{}, 15, 70, Materials.MATERIAL_MEAT_HUMANOID);
builder.skill(SkillList.BODY_STRENGTH, 45.0f);
builder.skill(SkillList.BODY_STAMINA, 55.0f);
builder.skill(SkillList.BODY_CONTROL, 60.0f);
builder.skill(SkillList.MIND_LOGICAL, 50.0f);
builder.skill(SkillList.MIND_SPEED, 50.0f);
builder.skill(SkillList.SOUL_STRENGTH, 50.0f);
builder.skill(SkillList.SOUL_DEPTH, 50.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 70.0f);
builder.skill(SkillList.GROUP_FIGHTING, 50.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("slam");
builder.maxAge(100);
builder.armourType(ArmourTypes.ARMOUR_LEATHER);
builder.baseCombatRating(45.0f);
builder.combatDamageType(Wound.TYPE_COLD);
builder.maxPercentOfCreatures(0.005f);
builder.maxGroupAttackSize(100);
templateId = builder.getTemplateId();
return builder;
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
new EncounterBuilder(Tiles.Tile.TILE_TUNDRA.id)
.addCreatures(templateId, 1)
.build(1);
}
}

View File

@@ -0,0 +1,67 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import org.gotti.wurmunlimited.modsupport.vehicles.ModVehicleBehaviour;
import org.gotti.wurmunlimited.modsupport.vehicles.VehicleFacade;
import com.wurmonline.server.behaviours.Vehicle;
import com.wurmonline.server.creatures.Creature;
import com.wurmonline.server.creatures.CreatureTemplate;
import com.wurmonline.server.creatures.CreatureTemplateFactory;
import com.wurmonline.server.creatures.CreatureTemplateIds;
import com.wurmonline.server.creatures.NoSuchCreatureTemplateException;
import com.wurmonline.server.items.Item;
public class Bison implements ModCreature {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
templateId = CreatureTemplateIds.BISON_CID;
return new CreatureTemplateBuilder(templateId) {
@Override
public CreatureTemplate build() {
try {
return CreatureTemplateFactory.getInstance().getTemplate(templateId);
} catch (NoSuchCreatureTemplateException e) {
throw new RuntimeException(e);
}
}
};
}
public ModVehicleBehaviour getVehicleBehaviour() {
return new ModVehicleBehaviour() {
@Override
public void setSettingsForVehicle(Item item, Vehicle vehicle) {
}
@Override
public void setSettingsForVehicle(Creature creature, Vehicle v) {
VehicleFacade vehicle = wrap(v);
vehicle.createPassengerSeats(0);
vehicle.setSeatFightMod(0, 0.7f, 0.9f);
vehicle.setSeatOffset(0, 0.0f, 0.0f, 0f);
vehicle.setCreature(true);
vehicle.setSkillNeeded(27.0f);
vehicle.setName(creature.getName());
vehicle.setMaxDepth(-0.7f);
vehicle.setMaxHeightDiff(0.04f);
vehicle.setMaxSpeed(25.0f);
vehicle.setCommandType((byte) 3);
vehicle.setCanHaveEquipment(true);
}
};
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
}
}

View File

@@ -0,0 +1,116 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.EncounterBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import org.gotti.wurmunlimited.modsupport.vehicles.ModVehicleBehaviour;
import org.gotti.wurmunlimited.modsupport.vehicles.VehicleFacade;
import com.wurmonline.mesh.Tiles;
import com.wurmonline.server.behaviours.Vehicle;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.Creature;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.Item;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class Charger implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
// {C_TYPE_MOVE_LOCAL, C_TYPE_VEHICLE, C_TYPE_ANIMAL, C_TYPE_LEADABLE, C_TYPE_GRAZER, C_TYPE_OMNIVORE, C_TYPE_DOMINATABLE, C_TYPE_AGG_HUMAN, C_TYPE_NON_NEWBIE, C_TYPE_BURNING}; - Hell Horse
// int[] types = new int[]{7, 6, 13, 3, 29, 39, 60, 61}; - Spider
int[] types = {
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_MOVE_GLOBAL,
CreatureTypes.C_TYPE_VEHICLE,
CreatureTypes.C_TYPE_LEADABLE,
CreatureTypes.C_TYPE_SWIMMING,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_DOMINATABLE,
CreatureTypes.C_TYPE_MONSTER,
CreatureTypes.C_TYPE_NON_NEWBIE,
CreatureTypes.C_TYPE_HORSE,
CreatureTypes.C_TYPE_ANIMAL
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.charger", "Charger", "A blazing-fast stallion.",
"model.creature.quadraped.horse.hell", types, BodyTemplate.TYPE_HORSE, (short) 5, (byte) 0, (short) 85, (short) 50, (short) 85,
"sound.death.horse", "sound.death.horse", "sound.combat.hit.horse", "sound.combat.hit.horse",
1.1f, 12f, 10f, 10.0f, 0.0f, 0.0f, 1.6f, 1000,
new int[]{}, 10, 74, Materials.MATERIAL_MEAT_HORSE);
builder.skill(SkillList.BODY_STRENGTH, 37.0f);
builder.skill(SkillList.BODY_STAMINA, 30.0f);
builder.skill(SkillList.BODY_CONTROL, 25.0f);
builder.skill(SkillList.MIND_LOGICAL, 30.0f);
builder.skill(SkillList.MIND_SPEED, 20.0f);
builder.skill(SkillList.SOUL_STRENGTH, 30.0f);
builder.skill(SkillList.SOUL_DEPTH, 30.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 25.0f);
builder.skill(SkillList.GROUP_FIGHTING, 20.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("burn");
builder.maxAge(100);
builder.armourType(ArmourTypes.ARMOUR_LEATHER);
builder.baseCombatRating(13.0f);
builder.combatDamageType(Wound.TYPE_BURN);
builder.denMaterial(Materials.MATERIAL_WOOD_BIRCH);
builder.denName("charger lair");
builder.maxGroupAttackSize(100);
templateId = builder.getTemplateId();
return builder;
}
public ModVehicleBehaviour getVehicleBehaviour() {
return new ModVehicleBehaviour() {
@Override
public void setSettingsForVehicle(Item item, Vehicle vehicle) {
}
@Override
public void setSettingsForVehicle(Creature creature, Vehicle v) {
VehicleFacade vehicle = wrap(v);
vehicle.createPassengerSeats(0);
vehicle.setSeatFightMod(0, 0.8f, 1.1f);
vehicle.setSeatOffset(0, 0.0f, 0.0f, 0.3f);
vehicle.setCreature(true);
vehicle.setSkillNeeded(37.0f);
vehicle.setName(creature.getName());
vehicle.setMaxHeightDiff(0.09f);
vehicle.setMaxDepth(-1.7f);
vehicle.setMaxSpeed(46.0f);
vehicle.setCommandType((byte) 3);
vehicle.setCanHaveEquipment(true);
}
};
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
new EncounterBuilder(Tiles.Tile.TILE_STEPPE.id)
.addCreatures(templateId, 1)
.build(3);
new EncounterBuilder(Tiles.Tile.TILE_STEPPE.id)
.addCreatures(templateId, 1)
.build(1);
}
}

View File

@@ -0,0 +1,72 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.skills.SkillList;
public class Facebreyker implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
int[] types = {
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_UNIQUE,
CreatureTypes.C_TYPE_REGENERATING,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_MONSTER,
CreatureTypes.C_TYPE_FENCEBREAKER,
CreatureTypes.C_TYPE_HERBIVORE,
CreatureTypes.C_TYPE_NON_NEWBIE
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.unique.facebreyker", "Facebreyker", "A bold warrior corrupted by darkness. You feel the presence of Libila.",
"model.creature.humanoid.ogre.rift", types, (byte) 0, (short) 20, (byte) 0, (short) 350, (short) 100, (short) 60,
"sound.death.troll", "sound.death.troll", "sound.combat.hit.troll", "sound.combat.hit.troll",
0.05f, 50.0f, 50.0f, 0.0f, 0.0f, 0.0f, 1.6f, 1100,
new int[]{867}, 40, 100, (byte) 0);
builder.skill(SkillList.BODY_STRENGTH, 90.0f);
builder.skill(SkillList.BODY_STAMINA, 90.0f);
builder.skill(SkillList.BODY_CONTROL, 90.0f);
builder.skill(SkillList.MIND_LOGICAL, 30.0f);
builder.skill(SkillList.MIND_SPEED, 30.0f);
builder.skill(SkillList.SOUL_STRENGTH, 70.0f);
builder.skill(SkillList.SOUL_DEPTH, 60.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 80.0f);
builder.skill(SkillList.GROUP_FIGHTING, 80.0f);
builder.skill(SkillList.GROUP_CLUBS, 99.0f);
builder.skill(SkillList.CLUB_HUGE, 99.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("slashe");
builder.kickDamString("eviscerate");
builder.maxAge(200);
builder.armourType(10);
builder.baseCombatRating(80.0f);
builder.combatDamageType(Wound.TYPE_CRUSH);
builder.maxGroupAttackSize(100);
//builder.usesNewAttacks(true);
// float baseDamage, float criticalChance, float baseSpeed, int attackReach, int weightGroup, byte damageType, boolean usesWeapon, int rounds, float waitUntilNextAttack
//builder.addPrimaryAttack(new AttackAction("slashe", AttackIdentifier.STRIKE, new AttackValues(70f, 0.05f, 5f, 3, 1, Wound.TYPE_SLASH, false, 1, 1.0f)));
//builder.addPrimaryAttack(new AttackAction("eviscerate", AttackIdentifier.STRIKE, new AttackValues(100f, 0.5f, 30f, 3, 1, Wound.TYPE_INFECTION, false, 4, 5.0f)));
//builder.addSecondaryAttack(new AttackAction("annihilate", AttackIdentifier.KICK, new AttackValues(200f, 0.3f, 60f, 2, 1, Wound.TYPE_ACID, false, 7, 8.0f)));
templateId = builder.getTemplateId();
return builder;
}
@Override
public void addEncounters() {
return;
}
}

View File

@@ -0,0 +1,80 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.EncounterBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.mesh.Tiles;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.ItemList;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class ForestSpider implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
// {C_TYPE_MOVE_LOCAL, C_TYPE_VEHICLE, C_TYPE_ANIMAL, C_TYPE_LEADABLE, C_TYPE_GRAZER, C_TYPE_OMNIVORE, C_TYPE_DOMINATABLE, C_TYPE_AGG_HUMAN, C_TYPE_NON_NEWBIE, C_TYPE_BURNING}; - Hell Horse
// int[] types = new int[]{7, 6, 13, 3, 29, 39, 60, 61}; - Spider
int[] types = {
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_ANIMAL,
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_NON_NEWBIE
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.forest.spider", "Forest spider", "Found amongst trees, these spiders are dangerous and poisonous.",
"model.creature.multiped.spider.huge", types, BodyTemplate.TYPE_SPIDER, (short) 5, (byte) 0, (short) 85, (short) 50, (short) 85,
"sound.death.spider", "sound.death.spider", "sound.combat.hit.spider", "sound.combat.hit.spider",
0.6f, 10f, 0f, 13.0f, 0.0f, 0.0f, 1.2f, 500,
new int[]{ItemList.heart}, 10, 74, Materials.MATERIAL_MEAT_INSECT);
builder.skill(SkillList.BODY_STRENGTH, 20.0f);
builder.skill(SkillList.BODY_STAMINA, 30.0f);
builder.skill(SkillList.BODY_CONTROL, 35.0f);
builder.skill(SkillList.MIND_LOGICAL, 30.0f);
builder.skill(SkillList.MIND_SPEED, 30.0f);
builder.skill(SkillList.SOUL_STRENGTH, 30.0f);
builder.skill(SkillList.SOUL_DEPTH, 30.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 50.0f);
builder.skill(SkillList.GROUP_FIGHTING, 30.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("pierce");
builder.maxAge(100);
builder.armourType(ArmourTypes.ARMOUR_CLOTH);
builder.baseCombatRating(13.0f);
builder.combatDamageType(Wound.TYPE_POISON);
builder.denMaterial(Materials.MATERIAL_STONE);
builder.denName("forest spider lair");
builder.maxPercentOfCreatures(0.05f);
builder.maxGroupAttackSize(100);
templateId = builder.getTemplateId();
return builder;
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
new EncounterBuilder(Tiles.Tile.TILE_TREE.id)
.addCreatures(templateId, 1)
.build(2);
new EncounterBuilder(Tiles.Tile.TILE_GRASS.id)
.addCreatures(templateId, 1)
.build(2);
}
}

View File

@@ -0,0 +1,84 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.EncounterBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.mesh.Tiles;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.ItemList;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class Giant implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
// {C_TYPE_MOVE_LOCAL, C_TYPE_VEHICLE, C_TYPE_ANIMAL, C_TYPE_LEADABLE, C_TYPE_GRAZER, C_TYPE_OMNIVORE, C_TYPE_DOMINATABLE, C_TYPE_AGG_HUMAN, C_TYPE_NON_NEWBIE, C_TYPE_BURNING}; - Hell Horse
// int[] types = new int[]{7, 6, 13, 3, 29, 39, 60, 61}; - Spider
int[] types = {
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_MONSTER,
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_REGENERATING,
CreatureTypes.C_TYPE_DOMINATABLE,
CreatureTypes.C_TYPE_DETECTINVIS,
CreatureTypes.C_TYPE_NON_NEWBIE
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.giant", "Giant", "A lumbering hulk.",
"model.creature.humanoid.giant.forest", types, BodyTemplate.TYPE_ETTIN, (short) 5, (byte) 0, (short) 85, (short) 50, (short) 85,
"sound.death.giant", "sound.death.giant", "sound.combat.hit.giant", "sound.combat.hit.giant",
0.3f, 19f, 15f, 0f, 0.0f, 0.0f, 0.7f, 300,
new int[]{ItemList.heart, ItemList.eye, ItemList.gland, ItemList.tooth}, 15, 70, Materials.MATERIAL_MEAT_TOUGH);
builder.skill(SkillList.BODY_STRENGTH, 55.0f);
builder.skill(SkillList.BODY_STAMINA, 65.0f);
builder.skill(SkillList.BODY_CONTROL, 30.0f);
builder.skill(SkillList.MIND_LOGICAL, 10.0f);
builder.skill(SkillList.MIND_SPEED, 10.0f);
builder.skill(SkillList.SOUL_STRENGTH, 10.0f);
builder.skill(SkillList.SOUL_DEPTH, 10.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 60.0f);
builder.skill(SkillList.GROUP_FIGHTING, 40.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("maul");
builder.maxAge(100);
builder.armourType(ArmourTypes.ARMOUR_LEATHER);
builder.baseCombatRating(32.0f);
builder.combatDamageType(Wound.TYPE_ACID);
builder.denMaterial(Materials.MATERIAL_WOOD_BIRCH);
builder.denName("giant lair");
builder.maxPercentOfCreatures(0.001f);
builder.maxGroupAttackSize(100);
templateId = builder.getTemplateId();
return builder;
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
new EncounterBuilder(Tiles.Tile.TILE_GRASS.id)
.addCreatures(templateId, 1)
.build(1);
new EncounterBuilder(Tiles.Tile.TILE_TREE.id)
.addCreatures(templateId, 1)
.build(1);
}
}

View File

@@ -0,0 +1,114 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.EncounterBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import org.gotti.wurmunlimited.modsupport.vehicles.ModVehicleBehaviour;
import org.gotti.wurmunlimited.modsupport.vehicles.VehicleFacade;
import com.wurmonline.mesh.Tiles;
import com.wurmonline.server.Servers;
import com.wurmonline.server.behaviours.Vehicle;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.Creature;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.Item;
import com.wurmonline.server.items.ItemList;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class HornedPony implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
// {C_TYPE_MOVE_LOCAL, C_TYPE_VEHICLE, C_TYPE_ANIMAL, C_TYPE_LEADABLE, C_TYPE_GRAZER, C_TYPE_OMNIVORE, C_TYPE_DOMINATABLE, C_TYPE_AGG_HUMAN, C_TYPE_NON_NEWBIE, C_TYPE_BURNING}; - Hell Horse
// int[] types = new int[]{7, 6, 13, 3, 29, 39, 60, 61}; - Spider
int[] types = {
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_MOVE_GLOBAL,
CreatureTypes.C_TYPE_VEHICLE,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_LEADABLE,
CreatureTypes.C_TYPE_SWIMMING,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_DOMINATABLE,
CreatureTypes.C_TYPE_MONSTER,
CreatureTypes.C_TYPE_NON_NEWBIE,
CreatureTypes.C_TYPE_HORSE,
CreatureTypes.C_TYPE_ANIMAL
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.horned.pony", "Horned pony", "Not a unicorn. Unicorns are fictional.",
"model.creature.quadraped.unicorn", types, BodyTemplate.TYPE_HORSE, (short) 5, (byte) 0, (short) 85, (short) 50, (short) 85,
"sound.death.horse", "sound.death.horse", "sound.combat.hit.horse", "sound.combat.hit.horse",
Servers.localServer.PVPSERVER ? 0.75f : 0.4f, 17f, 13f, 15.0f, 0.0f, 0.0f, 1.4f, 800,
new int[]{ItemList.heart}, 10, 74, Materials.MATERIAL_MEAT_HORSE);
builder.skill(SkillList.BODY_STRENGTH, Servers.localServer.PVPSERVER ? 40.0f : 60.0f);
builder.skill(SkillList.BODY_STAMINA, 60.0f);
builder.skill(SkillList.BODY_CONTROL, 55.0f);
builder.skill(SkillList.MIND_LOGICAL, 40.0f);
builder.skill(SkillList.MIND_SPEED, 50.0f);
builder.skill(SkillList.SOUL_STRENGTH, 30.0f);
builder.skill(SkillList.SOUL_DEPTH, 30.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 50.0f);
builder.skill(SkillList.GROUP_FIGHTING, 40.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("horn");
builder.maxAge(100);
builder.armourType(ArmourTypes.ARMOUR_SCALE_DRAGON);
builder.baseCombatRating(Servers.localServer.PVPSERVER ? 15.0f : 20.0f);
builder.combatDamageType(Wound.TYPE_INTERNAL);
builder.maxPercentOfCreatures(0.001f);
builder.maxGroupAttackSize(100);
templateId = builder.getTemplateId();
return builder;
}
public ModVehicleBehaviour getVehicleBehaviour() {
return new ModVehicleBehaviour() {
@Override
public void setSettingsForVehicle(Item item, Vehicle vehicle) {
}
@Override
public void setSettingsForVehicle(Creature creature, Vehicle v) {
VehicleFacade vehicle = wrap(v);
vehicle.createPassengerSeats(0);
vehicle.setSeatFightMod(0, 0.8f, 1.1f);
vehicle.setSeatOffset(0, 0.0f, 0.0f, 0.0f);
vehicle.setCreature(true);
vehicle.setSkillNeeded(35.0f);
vehicle.setName(creature.getName());
vehicle.setMaxHeightDiff(0.08f);
vehicle.setMaxDepth(-1.7f);
vehicle.setMaxSpeed(40.0f);
vehicle.setCommandType((byte) 3);
vehicle.setCanHaveEquipment(Servers.localServer.PVPSERVER ? false : true);
}
};
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
new EncounterBuilder(Tiles.Tile.TILE_ENCHANTED_GRASS.id)
.addCreatures(templateId, 1)
.build(2);
}
}

View File

@@ -0,0 +1,80 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.EncounterBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.mesh.Tiles;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.ItemList;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class LargeBoar implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
// {C_TYPE_MOVE_LOCAL, C_TYPE_VEHICLE, C_TYPE_ANIMAL, C_TYPE_LEADABLE, C_TYPE_GRAZER, C_TYPE_OMNIVORE, C_TYPE_DOMINATABLE, C_TYPE_AGG_HUMAN, C_TYPE_NON_NEWBIE, C_TYPE_BURNING}; - Hell Horse
// int[] types = new int[]{7, 6, 13, 3, 29, 39, 60, 61}; - Spider
int[] types = {
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_ANIMAL,
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_NON_NEWBIE
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.boar", "Large boar", "A large and strong boar.",
"model.creature.quadraped.boar.wild", types, (byte) BodyTemplate.TYPE_DOG, (short) 5, (byte) 0, (short) 85, (short) 50, (short) 85,
"sound.death.pig", "sound.death.pig", "sound.combat.hit.pig", "sound.combat.hit.pig",
0.5f, 8f, 0f, 10.0f, 14.0f, 0.0f, 1.2f, 500,
new int[]{ItemList.fur, ItemList.heart}, 10, 74, Materials.MATERIAL_MEAT_PORK);
builder.skill(SkillList.BODY_STRENGTH, 30.0f);
builder.skill(SkillList.BODY_STAMINA, 35.0f);
builder.skill(SkillList.BODY_CONTROL, 45.0f);
builder.skill(SkillList.MIND_LOGICAL, 5.0f);
builder.skill(SkillList.MIND_SPEED, 10.0f);
builder.skill(SkillList.SOUL_STRENGTH, 34.0f);
builder.skill(SkillList.SOUL_DEPTH, 3.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 40.0f);
builder.skill(SkillList.GROUP_FIGHTING, 30.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("kick");
builder.maxAge(100);
builder.armourType(ArmourTypes.ARMOUR_CLOTH);
builder.baseCombatRating(18.0f);
builder.combatDamageType(Wound.TYPE_CRUSH);
builder.denMaterial(Materials.MATERIAL_WOOD_BIRCH);
builder.denName("boar lair");
builder.maxPercentOfCreatures(0.01f);
builder.maxGroupAttackSize(100);
templateId = builder.getTemplateId();
return builder;
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
new EncounterBuilder(Tiles.Tile.TILE_SAND.id)
.addCreatures(templateId, 1)
.build(2);
new EncounterBuilder(Tiles.Tile.TILE_GRASS.id)
.addCreatures(templateId, 1)
.build(3);
}
}

View File

@@ -0,0 +1,43 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.EncounterBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.mesh.Tiles;
import com.wurmonline.server.creatures.CreatureTemplate;
import com.wurmonline.server.creatures.CreatureTemplateFactory;
import com.wurmonline.server.creatures.CreatureTemplateIds;
import com.wurmonline.server.creatures.NoSuchCreatureTemplateException;
public class LavaFiend implements ModCreature {
private int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
templateId = CreatureTemplateIds.LAVA_CREATURE_CID;
return new CreatureTemplateBuilder(templateId) {
@Override
public CreatureTemplate build() {
try {
return CreatureTemplateFactory.getInstance().getTemplate(templateId);
} catch (NoSuchCreatureTemplateException e) {
throw new RuntimeException(e);
}
}
};
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
new EncounterBuilder(Tiles.Tile.TILE_SAND.id)
.addCreatures(templateId, 1)
.build(1);
}
}

View File

@@ -0,0 +1,63 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class MacroSlayer implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
int[] types = {
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_SWIMMING,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_MONSTER,
CreatureTypes.C_TYPE_HERBIVORE,
CreatureTypes.C_TYPE_FENCEBREAKER,
CreatureTypes.C_TYPE_NON_NEWBIE,
CreatureTypes.C_TYPE_NO_REBIRTH
};
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.macro.slayer", "Blobber the Macro Slayer",
"The incarnation of the Macro King. Here to claim the souls of those who challenge his rightful rule.", "model.blob",
types, BodyTemplate.TYPE_DRAGON, (short) 5, (byte) 0, (short) 350, (short) 100, (short) 60,
"sound.death.dragon", "sound.death.dragon", "sound.combat.hit.dragon", "sound.combat.hit.dragon",
0.001f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 0.5f, 500,
new int[]{}, 40, 100, Materials.MATERIAL_MEAT_HUMANOID);
builder.skill(SkillList.BODY_STRENGTH, 90.0f);
builder.skill(SkillList.BODY_STAMINA, 70.0f);
builder.skill(SkillList.BODY_CONTROL, 60.0f);
builder.skill(SkillList.MIND_LOGICAL, 35.0f);
builder.skill(SkillList.MIND_SPEED, 45.0f);
builder.skill(SkillList.SOUL_STRENGTH, 80.0f);
builder.skill(SkillList.SOUL_DEPTH, 80.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 80.0f);
builder.skill(SkillList.GROUP_FIGHTING, 80.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("macro");
builder.kickDamString("macro");
builder.maxAge(200);
builder.armourType(ArmourTypes.ARMOUR_SCALE_DRAGON);
builder.baseCombatRating(99.0f);
builder.combatDamageType(Wound.TYPE_WATER);
builder.maxGroupAttackSize(100);
templateId = builder.getTemplateId();
return builder;
}
@Override
public void addEncounters() {
return;
}
}

View File

@@ -0,0 +1,64 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.ItemList;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class Reaper implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
int[] types = {
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_SWIMMING,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_MONSTER,
CreatureTypes.C_TYPE_HERBIVORE,
CreatureTypes.C_TYPE_FENCEBREAKER,
CreatureTypes.C_TYPE_NON_NEWBIE,
CreatureTypes.C_TYPE_NO_REBIRTH
};
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.reaper", "Reaper",
"The reaper, here to claim the soul of a powerful creature... and anything else.", "model.creature.gmdark",
types, BodyTemplate.TYPE_HUMAN, (short) 20, (byte) 0, (short) 350, (short) 100, (short) 60, "sound.death.dragon",
"sound.death.dragon", "sound.combat.hit.dragon", "sound.combat.hit.dragon",
0.03f, 35.0f, 45.0f, 22.0f, 40.0f, 0.0f, 2.5f, 500,
new int[]{ItemList.boneCollar}, 40, 100, Materials.MATERIAL_MEAT_HUMANOID);
builder.skill(SkillList.BODY_STRENGTH, 60.0f);
builder.skill(SkillList.BODY_STAMINA, 70.0f);
builder.skill(SkillList.BODY_CONTROL, 60.0f);
builder.skill(SkillList.MIND_LOGICAL, 35.0f);
builder.skill(SkillList.MIND_SPEED, 45.0f);
builder.skill(SkillList.SOUL_STRENGTH, 80.0f);
builder.skill(SkillList.SOUL_DEPTH, 80.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 80.0f);
builder.skill(SkillList.GROUP_FIGHTING, 80.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("slice");
builder.kickDamString("reap");
builder.maxAge(200);
builder.armourType(ArmourTypes.ARMOUR_SCALE_DRAGON);
builder.baseCombatRating(55.0f);
builder.combatDamageType(Wound.TYPE_INFECTION);
builder.maxGroupAttackSize(100);
templateId = builder.getTemplateId();
return builder;
}
@Override
public void addEncounters() {
return;
}
}

View File

@@ -0,0 +1,51 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.skills.SkillList;
public class RobZombie implements ModCreature, CreatureTypes {
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
int[] types = {
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_HERBIVORE,
CreatureTypes.C_TYPE_UNDEAD,
CreatureTypes.C_TYPE_TRADER,
CreatureTypes.C_TYPE_NPC_TRADER};
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.zombie.rob", "Rob Zombie",
"This is Rob Zombie. He is known to eat brains when you do not buy things from him.", "model.creature.humanoid.human.player.zombie",
types, (byte) 0, (short) 20, (byte) 0, (short) 350, (short) 100, (short) 60,
"sound.death.zombie", "sound.death.zombie", "sound.combat.hit.zombie", "sound.combat.hit.zombie",
0.005f, 150.0f, 150.0f, 150.0f, 0.0f, 0.0f, 0.5f, 500, new int[]{868, 867}, 40, 100, (byte) 0);
builder.skill(SkillList.BODY_STRENGTH, 99.0f);
builder.skill(SkillList.BODY_STAMINA, 99.0f);
builder.skill(SkillList.BODY_CONTROL, 99.0f);
builder.skill(SkillList.MIND_LOGICAL, 99.0f);
builder.skill(SkillList.MIND_SPEED, 99.0f);
builder.skill(SkillList.SOUL_STRENGTH, 99.0f);
builder.skill(SkillList.SOUL_DEPTH, 99.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 99.0f);
builder.skill(SkillList.GROUP_FIGHTING, 99.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("decimate");
builder.kickDamString("decimate");
builder.maxAge(200);
builder.armourType(10);
builder.baseCombatRating(99.0f);
builder.combatDamageType((byte)2);
builder.maxGroupAttackSize(100);
return builder;
}
@Override
public void addEncounters() {
return;
}
}

View File

@@ -0,0 +1,46 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.EncounterBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.mesh.Tiles;
import com.wurmonline.server.creatures.CreatureTemplate;
import com.wurmonline.server.creatures.CreatureTemplateFactory;
import com.wurmonline.server.creatures.CreatureTemplateIds;
import com.wurmonline.server.creatures.NoSuchCreatureTemplateException;
public class SolDemon implements ModCreature {
private int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
templateId = CreatureTemplateIds.DEMON_SOL_CID;
return new CreatureTemplateBuilder(templateId) {
@Override
public CreatureTemplate build() {
try {
return CreatureTemplateFactory.getInstance().getTemplate(templateId);
} catch (NoSuchCreatureTemplateException e) {
throw new RuntimeException(e);
}
}
};
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
new EncounterBuilder(Tiles.Tile.TILE_SAND.id)
.addCreatures(templateId, 2)
.build(1);
new EncounterBuilder(Tiles.Tile.TILE_MYCELIUM.id)
.addCreatures(templateId, 2)
.build(3);
}
}

View File

@@ -0,0 +1,64 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.ItemList;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class SpectralDrake implements ModCreature {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
int[] types = {
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_SWIMMING,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_MONSTER,
CreatureTypes.C_TYPE_HERBIVORE,
CreatureTypes.C_TYPE_FENCEBREAKER,
CreatureTypes.C_TYPE_NON_NEWBIE,
CreatureTypes.C_TYPE_NO_REBIRTH
};
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.spectraldrake", "Spectral drake",
"The spectral incarnation of a defeated dragon.", "model.creature.drake.spirit", types, BodyTemplate.TYPE_DRAGON,
(short) 20, (byte) 0, (short) 350, (short) 100, (short) 60, "sound.death.dragon", "sound.death.dragon",
"sound.combat.hit.dragon", "sound.combat.hit.dragon",
0.06f, 45.0f, 50.0f, 22.0f, 45.0f, 0.0f, 2.0f, 500,
new int[]{ItemList.boneCollar}, 40, 100, Materials.MATERIAL_MEAT_DRAGON);
builder.skill(SkillList.BODY_STRENGTH, 60.0f);
builder.skill(SkillList.BODY_STAMINA, 70.0f);
builder.skill(SkillList.BODY_CONTROL, 60.0f);
builder.skill(SkillList.MIND_LOGICAL, 35.0f);
builder.skill(SkillList.MIND_SPEED, 45.0f);
builder.skill(SkillList.SOUL_STRENGTH, 70.0f);
builder.skill(SkillList.SOUL_DEPTH, 70.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 85.0f);
builder.skill(SkillList.GROUP_FIGHTING, 75.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("claw");
builder.kickDamString("wingbuff");
builder.maxAge(200);
builder.armourType(ArmourTypes.ARMOUR_LEATHER_DRAGON);
builder.baseCombatRating(60.0f);
builder.combatDamageType(Wound.TYPE_COLD);
builder.maxGroupAttackSize(100);
templateId = builder.getTemplateId();
return builder;
}
@Override
public void addEncounters() {
return;
}
}

View File

@@ -0,0 +1,80 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.EncounterBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.mesh.Tiles;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class SpiritTroll implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
// {C_TYPE_MOVE_LOCAL, C_TYPE_VEHICLE, C_TYPE_ANIMAL, C_TYPE_LEADABLE, C_TYPE_GRAZER, C_TYPE_OMNIVORE, C_TYPE_DOMINATABLE, C_TYPE_AGG_HUMAN, C_TYPE_NON_NEWBIE, C_TYPE_BURNING}; - Hell Horse
// new int[]{7, 6, 40, 13, 16, 18, 29, 30, 32, 36, 39, 45, 60, 61}; - Troll
int[] types = {
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_FENCEBREAKER,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_MONSTER,
CreatureTypes.C_TYPE_REGENERATING,
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_CLIMBER,
CreatureTypes.C_TYPE_UNDEAD,
CreatureTypes.C_TYPE_DETECTINVIS,
CreatureTypes.C_TYPE_NON_NEWBIE
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.spirit.troll", "Spirit troll", "A spirit troll.",
"model.creature.humanoid.troll.standard", types, BodyTemplate.TYPE_HUMAN, (short) 5, (byte) 0, (short) 85, (short) 50, (short) 85,
"sound.death.troll", "sound.death.troll", "sound.combat.hit.troll", "sound.combat.hit.troll",
0.15f, 15f, 17f, 19.0f, 0.0f, 0.0f, 1.2f, 500,
new int[]{}, 10, 74, (byte) 82);
builder.skill(SkillList.BODY_STRENGTH, 45.0f);
builder.skill(SkillList.BODY_STAMINA, 40.0f);
builder.skill(SkillList.BODY_CONTROL, 45.0f);
builder.skill(SkillList.MIND_LOGICAL, 30.0f);
builder.skill(SkillList.MIND_SPEED, 30.0f);
builder.skill(SkillList.SOUL_STRENGTH, 30.0f);
builder.skill(SkillList.SOUL_DEPTH, 30.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 50.0f);
builder.skill(SkillList.GROUP_FIGHTING, 30.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("maul");
builder.maxAge(100);
builder.armourType(ArmourTypes.ARMOUR_LEATHER);
builder.baseCombatRating(26.0f);
builder.combatDamageType(Wound.TYPE_COLD);
builder.denMaterial(Materials.MATERIAL_WOOD_BIRCH);
builder.denName("spirit troll lair");
builder.maxPercentOfCreatures(0.001f);
builder.maxGroupAttackSize(100);
templateId = builder.getTemplateId();
return builder;
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
new EncounterBuilder(Tiles.Tile.TILE_SNOW.id)
.addCreatures(templateId, 1)
.build(1);
}
}

View File

@@ -0,0 +1,77 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.EncounterBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import org.gotti.wurmunlimited.modsupport.vehicles.ModVehicleBehaviour;
import org.gotti.wurmunlimited.modsupport.vehicles.VehicleFacade;
import com.wurmonline.mesh.Tiles;
import com.wurmonline.server.behaviours.Vehicle;
import com.wurmonline.server.creatures.Creature;
import com.wurmonline.server.creatures.CreatureTemplate;
import com.wurmonline.server.creatures.CreatureTemplateFactory;
import com.wurmonline.server.creatures.CreatureTemplateIds;
import com.wurmonline.server.creatures.NoSuchCreatureTemplateException;
import com.wurmonline.server.items.Item;
public class Worg implements ModCreature {
private int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
templateId = CreatureTemplateIds.WORG_CID;
return new CreatureTemplateBuilder(templateId) {
@Override
public CreatureTemplate build() {
try {
return CreatureTemplateFactory.getInstance().getTemplate(templateId);
} catch (NoSuchCreatureTemplateException e) {
throw new RuntimeException(e);
}
}
};
}
public ModVehicleBehaviour getVehicleBehaviour() {
return new ModVehicleBehaviour() {
@Override
public void setSettingsForVehicle(Item item, Vehicle vehicle) {
}
@Override
public void setSettingsForVehicle(Creature creature, Vehicle v) {
VehicleFacade vehicle = wrap(v);
vehicle.createPassengerSeats(0);
vehicle.setSeatFightMod(0, 0.8f, 1.1f);
vehicle.setSeatOffset(0, -0.2f, 0.0f, -0.1f);
vehicle.setCreature(true);
vehicle.setSkillNeeded(30.0f);
vehicle.setName(creature.getName());
vehicle.setMaxHeightDiff(0.07f);
vehicle.setMaxDepth(-1.7f);
vehicle.setMaxSpeed(50.0f);
vehicle.setCommandType((byte) 3);
vehicle.setCanHaveEquipment(false);
}
};
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
new EncounterBuilder(Tiles.Tile.TILE_GRASS.id)
.addCreatures(templateId, 2)
.build(1);
new EncounterBuilder(Tiles.Tile.TILE_STEPPE.id)
.addCreatures(templateId, 2)
.build(3);
}
}

View File

@@ -0,0 +1,121 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.EncounterBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import org.gotti.wurmunlimited.modsupport.vehicles.ModVehicleBehaviour;
import org.gotti.wurmunlimited.modsupport.vehicles.VehicleFacade;
import com.wurmonline.mesh.Tiles;
import com.wurmonline.server.Servers;
import com.wurmonline.server.behaviours.Vehicle;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.Creature;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.Item;
import com.wurmonline.server.items.ItemList;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class WyvernBlack implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
// {C_TYPE_MOVE_LOCAL, C_TYPE_VEHICLE, C_TYPE_ANIMAL, C_TYPE_LEADABLE, C_TYPE_GRAZER, C_TYPE_OMNIVORE, C_TYPE_DOMINATABLE, C_TYPE_AGG_HUMAN, C_TYPE_NON_NEWBIE, C_TYPE_BURNING}; - Hell Horse
int[] types = {
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_MOVE_GLOBAL,
CreatureTypes.C_TYPE_VEHICLE,
CreatureTypes.C_TYPE_REGENERATING,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_SWIMMING,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_DOMINATABLE,
CreatureTypes.C_TYPE_MONSTER,
CreatureTypes.C_TYPE_NON_NEWBIE,
CreatureTypes.C_TYPE_ANIMAL
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.wyvern.black", "Black wyvern", "A battle-hardened wyvern with scales as black as night.",
"model.creature.drake.black", types, BodyTemplate.TYPE_DRAGON, (short) 10, (byte) 0, (short) 350, (short) 100, (short) 60,
"sound.death.dragon", "sound.death.dragon", "sound.combat.hit.dragon", "sound.combat.hit.dragon",
Servers.localServer.PVPSERVER ? 0.65f : 0.35f, 20.0f, 23.0f, 0.0f, 0.0f, 0.0f, 1.3f, 800,
new int[]{ItemList.animalHide, ItemList.tail, ItemList.eye, ItemList.gland, ItemList.tooth}, 40, 70, Materials.MATERIAL_MEAT_DRAGON);
builder.skill(SkillList.BODY_STRENGTH, Servers.localServer.PVPSERVER ? 39f : 54f);
builder.skill(SkillList.BODY_STAMINA, 50.0f);
builder.skill(SkillList.BODY_CONTROL, 50.0f);
builder.skill(SkillList.MIND_LOGICAL, 50.0f);
builder.skill(SkillList.MIND_SPEED, 50.0f);
builder.skill(SkillList.SOUL_STRENGTH, 50.0f);
builder.skill(SkillList.SOUL_DEPTH, 50.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 70.0f);
builder.skill(SkillList.GROUP_FIGHTING, 70.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("bite");
builder.kickDamString("wingbuff");
builder.maxAge(200);
builder.armourType(Servers.localServer.PVPSERVER ? ArmourTypes.ARMOUR_CLOTH : ArmourTypes.ARMOUR_SCALE_DRAGON);
builder.baseCombatRating(28.0f);
builder.combatDamageType(Wound.TYPE_PIERCE);
builder.maxGroupAttackSize(10);
templateId = builder.getTemplateId();
return builder;
}
public ModVehicleBehaviour getVehicleBehaviour() {
return new ModVehicleBehaviour() {
@Override
public void setSettingsForVehicle(Item item, Vehicle vehicle) {
}
@Override
public void setSettingsForVehicle(Creature creature, Vehicle v) {
VehicleFacade vehicle = wrap(v);
vehicle.createPassengerSeats(0);
vehicle.setSeatFightMod(0, 0.8f, 1.1f);
vehicle.setSeatOffset(0, 0.2f, 0.0f, 0.0f);
vehicle.setCanHaveEquipment(true);
vehicle.setCreature(true);
vehicle.setSkillNeeded(30.0f);
vehicle.setName(creature.getName());
vehicle.setMaxHeightDiff(0.15f);
vehicle.setMaxDepth(-50f);
vehicle.setMaxSpeed(51.0f);
vehicle.setCommandType((byte) 3);
}
};
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
new EncounterBuilder(Tiles.Tile.TILE_SAND.id)
.addCreatures(templateId, 1)
.build(1);
if(Servers.localServer.PVPSERVER){
new EncounterBuilder(Tiles.Tile.TILE_GRASS.id)
.addCreatures(templateId, 1)
.build(1);
new EncounterBuilder(Tiles.Tile.TILE_TREE.id)
.addCreatures(templateId, 1)
.build(1);
}
}
}

View File

@@ -0,0 +1,114 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.EncounterBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import org.gotti.wurmunlimited.modsupport.vehicles.ModVehicleBehaviour;
import org.gotti.wurmunlimited.modsupport.vehicles.VehicleFacade;
import com.wurmonline.mesh.Tiles;
import com.wurmonline.server.Servers;
import com.wurmonline.server.behaviours.Vehicle;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.Creature;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.Item;
import com.wurmonline.server.items.ItemList;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class WyvernGreen implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
// {C_TYPE_MOVE_LOCAL, C_TYPE_VEHICLE, C_TYPE_ANIMAL, C_TYPE_LEADABLE, C_TYPE_GRAZER, C_TYPE_OMNIVORE, C_TYPE_DOMINATABLE, C_TYPE_AGG_HUMAN, C_TYPE_NON_NEWBIE, C_TYPE_BURNING}; - Hell Horse
int[] types = {
CreatureTypes.C_TYPE_HERBIVORE,
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_VEHICLE,
CreatureTypes.C_TYPE_REGENERATING,
CreatureTypes.C_TYPE_DOMINATABLE,
CreatureTypes.C_TYPE_SWIMMING,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_NON_NEWBIE,
CreatureTypes.C_TYPE_ANIMAL,
CreatureTypes.C_TYPE_GRAZER
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.wyvern.green", "Green wyvern", "A battle-hardened wyvern with scales as green as the leaves.",
"model.creature.drake.green", types, BodyTemplate.TYPE_DRAGON, (short) 10, (byte) 0, (short) 350, (short) 100, (short) 60,
"sound.death.dragon", "sound.death.dragon", "sound.combat.hit.dragon", "sound.combat.hit.dragon",
Servers.localServer.PVPSERVER ? 0.7f : 0.4f, 20.0f, 23.0f, 0.0f, 0.0f, 0.0f, 1.7f, 1500,
new int[]{ItemList.animalHide, ItemList.tail, ItemList.eye, ItemList.gland, ItemList.tooth}, 40, 70, Materials.MATERIAL_MEAT_DRAGON);
builder.skill(SkillList.BODY_STRENGTH, Servers.localServer.PVPSERVER ? 40f : 55f);
builder.skill(SkillList.BODY_STAMINA, 50.0f);
builder.skill(SkillList.BODY_CONTROL, 50.0f);
builder.skill(SkillList.MIND_LOGICAL, 50.0f);
builder.skill(SkillList.MIND_SPEED, 50.0f);
builder.skill(SkillList.SOUL_STRENGTH, 50.0f);
builder.skill(SkillList.SOUL_DEPTH, 50.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 70.0f);
builder.skill(SkillList.GROUP_FIGHTING, 70.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("bite");
builder.kickDamString("wingbuff");
builder.maxAge(200);
builder.armourType(Servers.localServer.PVPSERVER ? ArmourTypes.ARMOUR_CLOTH : ArmourTypes.ARMOUR_SCALE_DRAGON);
builder.baseCombatRating(27.0f);
builder.combatDamageType(Wound.TYPE_ACID);
builder.maxGroupAttackSize(10);
templateId = builder.getTemplateId();
return builder;
}
public ModVehicleBehaviour getVehicleBehaviour() {
return new ModVehicleBehaviour() {
@Override
public void setSettingsForVehicle(Item item, Vehicle vehicle) {
}
@Override
public void setSettingsForVehicle(Creature creature, Vehicle v) {
VehicleFacade vehicle = wrap(v);
vehicle.createPassengerSeats(0);
vehicle.setSeatFightMod(0, 0.9f, 1.2f);
vehicle.setSeatOffset(0, 0.2f, 0.0f, 0.0f);
vehicle.setCanHaveEquipment(true);
vehicle.setCreature(true);
vehicle.setSkillNeeded(Servers.localServer.PVPSERVER ? 31f : 33f);
vehicle.setName(creature.getName());
vehicle.setMaxHeightDiff(0.18f);
vehicle.setMaxDepth(-10f);
vehicle.setMaxSpeed(52.0f);
vehicle.setCommandType((byte) 3);
}
};
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
new EncounterBuilder(Tiles.Tile.TILE_GRASS.id)
.addCreatures(templateId, 1)
.build(1);
new EncounterBuilder(Tiles.Tile.TILE_TREE.id)
.addCreatures(templateId, 1)
.build(1);
}
}

View File

@@ -0,0 +1,110 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.EncounterBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import org.gotti.wurmunlimited.modsupport.vehicles.ModVehicleBehaviour;
import org.gotti.wurmunlimited.modsupport.vehicles.VehicleFacade;
import com.wurmonline.mesh.Tiles;
import com.wurmonline.server.Servers;
import com.wurmonline.server.behaviours.Vehicle;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.Creature;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.Item;
import com.wurmonline.server.items.ItemList;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class WyvernRed implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
// {C_TYPE_MOVE_LOCAL, C_TYPE_VEHICLE, C_TYPE_ANIMAL, C_TYPE_LEADABLE, C_TYPE_GRAZER, C_TYPE_OMNIVORE, C_TYPE_DOMINATABLE, C_TYPE_AGG_HUMAN, C_TYPE_NON_NEWBIE, C_TYPE_BURNING}; - Hell Horse
int[] types = {
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_MOVE_GLOBAL,
CreatureTypes.C_TYPE_VEHICLE,
CreatureTypes.C_TYPE_REGENERATING,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_SWIMMING,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_DOMINATABLE,
CreatureTypes.C_TYPE_MONSTER,
CreatureTypes.C_TYPE_NON_NEWBIE
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.wyvern.red", "Red wyvern", "A battle-hardened wyvern with scales as red as fire.",
"model.creature.drake.red", types, BodyTemplate.TYPE_DRAGON, (short) 10, (byte) 0, (short) 350, (short) 100, (short) 60,
"sound.death.dragon", "sound.death.dragon", "sound.combat.hit.dragon", "sound.combat.hit.dragon",
Servers.localServer.PVPSERVER ? 0.6f : 0.17f, 22.0f, 25.0f, 0.0f, 0.0f, 0.0f, 1.4f, 900,
new int[]{ItemList.animalHide, ItemList.tail, ItemList.eye, ItemList.gland, ItemList.tooth}, 40, 70, Materials.MATERIAL_MEAT_DRAGON);
builder.skill(SkillList.BODY_STRENGTH, Servers.localServer.PVPSERVER ? 37f : 52f);
builder.skill(SkillList.BODY_STAMINA, 50.0f);
builder.skill(SkillList.BODY_CONTROL, 50.0f);
builder.skill(SkillList.MIND_LOGICAL, 50.0f);
builder.skill(SkillList.MIND_SPEED, 50.0f);
builder.skill(SkillList.SOUL_STRENGTH, 50.0f);
builder.skill(SkillList.SOUL_DEPTH, 50.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 75.0f);
builder.skill(SkillList.GROUP_FIGHTING, 75.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("bite");
builder.kickDamString("wingbuff");
builder.maxAge(200);
builder.armourType(Servers.localServer.PVPSERVER ? ArmourTypes.ARMOUR_LEATHER : ArmourTypes.ARMOUR_SCALE_DRAGON);
builder.baseCombatRating(30.0f);
builder.combatDamageType(Wound.TYPE_BURN);
builder.maxGroupAttackSize(10);
templateId = builder.getTemplateId();
return builder;
}
public ModVehicleBehaviour getVehicleBehaviour() {
return new ModVehicleBehaviour() {
@Override
public void setSettingsForVehicle(Item item, Vehicle vehicle) {
}
@Override
public void setSettingsForVehicle(Creature creature, Vehicle v) {
VehicleFacade vehicle = wrap(v);
vehicle.createPassengerSeats(0);
vehicle.setSeatFightMod(0, 0.8f, 1.1f);
vehicle.setSeatOffset(0, 0.2f, 0.0f, 0.0f);
vehicle.setCreature(true);
vehicle.setSkillNeeded(Servers.localServer.PVPSERVER ? 35 : 43f);
vehicle.setName(creature.getName());
vehicle.setMaxHeightDiff(Servers.localServer.PVPSERVER ? 0.15f : 0.10f);
vehicle.setMaxDepth(-50f);
vehicle.setMaxSpeed(50.0f);
vehicle.setCommandType((byte) 3);
vehicle.setCanHaveEquipment(true);
}
};
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
new EncounterBuilder(Tiles.Tile.TILE_ROCK.id)
.addCreatures(templateId, 1)
.build(1);
}
}

View File

@@ -0,0 +1,117 @@
package mod.sin.creatures;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.EncounterBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import org.gotti.wurmunlimited.modsupport.vehicles.ModVehicleBehaviour;
import org.gotti.wurmunlimited.modsupport.vehicles.VehicleFacade;
import com.wurmonline.mesh.Tiles;
import com.wurmonline.server.Servers;
import com.wurmonline.server.behaviours.Vehicle;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.Creature;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.Item;
import com.wurmonline.server.items.ItemList;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class WyvernWhite implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
// {C_TYPE_MOVE_LOCAL, C_TYPE_VEHICLE, C_TYPE_ANIMAL, C_TYPE_LEADABLE, C_TYPE_GRAZER, C_TYPE_OMNIVORE, C_TYPE_DOMINATABLE, C_TYPE_AGG_HUMAN, C_TYPE_NON_NEWBIE, C_TYPE_BURNING}; - Hell Horse
int[] types = {
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_MOVE_GLOBAL,
CreatureTypes.C_TYPE_VEHICLE,
CreatureTypes.C_TYPE_REGENERATING,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_SWIMMING,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_DOMINATABLE,
CreatureTypes.C_TYPE_MONSTER,
CreatureTypes.C_TYPE_NON_NEWBIE,
CreatureTypes.C_TYPE_ANIMAL
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.wyvern.white", "White wyvern", "A battle-hardened wyvern with scales as white as the moon.",
"model.creature.drake.white", types, BodyTemplate.TYPE_DRAGON, (short) 10, (byte) 0, (short) 350, (short) 100, (short) 60,
"sound.death.dragon", "sound.death.dragon", "sound.combat.hit.dragon", "sound.combat.hit.dragon",
Servers.localServer.PVPSERVER ? 0.7f : 0.3f, 17.0f, 20.0f, 0.0f, 0.0f, 0.0f, 1.4f, 900,
new int[]{ItemList.animalHide, ItemList.tail, ItemList.eye, ItemList.gland, ItemList.tooth}, 40, 70, Materials.MATERIAL_MEAT_DRAGON);
builder.skill(SkillList.BODY_STRENGTH, Servers.localServer.PVPSERVER ? 43f : 58f);
builder.skill(SkillList.BODY_STAMINA, 50.0f);
builder.skill(SkillList.BODY_CONTROL, 50.0f);
builder.skill(SkillList.MIND_LOGICAL, 50.0f);
builder.skill(SkillList.MIND_SPEED, 50.0f);
builder.skill(SkillList.SOUL_STRENGTH, 50.0f);
builder.skill(SkillList.SOUL_DEPTH, 50.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 70.0f);
builder.skill(SkillList.GROUP_FIGHTING, 70.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("bite");
builder.kickDamString("wingbuff");
builder.maxAge(200);
builder.armourType(Servers.localServer.PVPSERVER ? ArmourTypes.ARMOUR_CLOTH : ArmourTypes.ARMOUR_SCALE_DRAGON);
builder.baseCombatRating(25.0f);
builder.combatDamageType(Wound.TYPE_COLD);
builder.maxGroupAttackSize(10);
templateId = builder.getTemplateId();
return builder;
}
public ModVehicleBehaviour getVehicleBehaviour() {
return new ModVehicleBehaviour() {
@Override
public void setSettingsForVehicle(Item item, Vehicle vehicle) {
}
@Override
public void setSettingsForVehicle(Creature creature, Vehicle v) {
VehicleFacade vehicle = wrap(v);
vehicle.createPassengerSeats(0);
vehicle.setSeatFightMod(0, 0.8f, 1.1f);
vehicle.setSeatOffset(0, 0.2f, 0.0f, 0.0f);
vehicle.setCreature(true);
vehicle.setSkillNeeded(Servers.localServer.PVPSERVER ? 33f : 40f);
vehicle.setName(creature.getName());
vehicle.setMaxHeightDiff(Servers.localServer.PVPSERVER ? 0.15f : 0.10f);
vehicle.setMaxDepth(-50f);
vehicle.setMaxSpeed(53.0f);
vehicle.setCommandType((byte) 3);
vehicle.setCanHaveEquipment(true);
}
};
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
new EncounterBuilder(Tiles.Tile.TILE_SNOW.id)
.addCreatures(templateId, 1)
.build(1);
if(Servers.localServer.PVPSERVER){
new EncounterBuilder(Tiles.Tile.TILE_TUNDRA.id)
.addCreatures(templateId, 1)
.build(1);
}
}
}

View File

@@ -0,0 +1,70 @@
package mod.sin.creatures.titans;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class Ifrit implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
int[] types = {
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_NON_NEWBIE
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.raid.ifrit", "Ifrit", "A valiant warrior of the flame. You feel the presence of Magranon.",
"model.creature.humanoid.giant.juggernaut", types, BodyTemplate.TYPE_HUMAN, (short) 5, (byte) 0, (short) 350, (short) 100, (short) 60,
"sound.death.magranon.juggernaut", "sound.death.magranon.juggernaut", "sound.combat.hit.magranon.juggernaut", "sound.combat.hit.magranon.juggernaut",
0.014f, 10.0f, 13.0f, 0.0f, 0.0f, 0.0f, 0.5f, 400,
new int[]{}, 40, 100, Materials.MATERIAL_MEAT_HUMANOID);
builder.skill(SkillList.BODY_STRENGTH, 99.0f);
builder.skill(SkillList.BODY_STAMINA, 99.0f);
builder.skill(SkillList.BODY_CONTROL, 99.0f);
builder.skill(SkillList.MIND_LOGICAL, 99.0f);
builder.skill(SkillList.MIND_SPEED, 99.0f);
builder.skill(SkillList.SOUL_STRENGTH, 99.0f);
builder.skill(SkillList.SOUL_DEPTH, 99.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 99.0f);
builder.skill(SkillList.GROUP_FIGHTING, 99.0f);
builder.skill(SkillList.SCYTHE, 99.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("burn");
builder.kickDamString("ignite");
builder.maxAge(200);
builder.armourType(ArmourTypes.ARMOUR_SCALE_DRAGON);
builder.baseCombatRating(99.0f);
builder.combatDamageType(Wound.TYPE_BURN);
builder.maxGroupAttackSize(150);
//builder.usesNewAttacks(true);
// float baseDamage, float criticalChance, float baseSpeed, int attackReach, int weightGroup, byte damageType, boolean usesWeapon, int rounds, float waitUntilNextAttack
//builder.addPrimaryAttack(new AttackAction("slashe", AttackIdentifier.STRIKE, new AttackValues(70f, 0.05f, 5f, 3, 1, Wound.TYPE_SLASH, false, 1, 1.0f)));
//builder.addPrimaryAttack(new AttackAction("eviscerate", AttackIdentifier.STRIKE, new AttackValues(100f, 0.5f, 30f, 3, 1, Wound.TYPE_INFECTION, false, 4, 5.0f)));
//builder.addSecondaryAttack(new AttackAction("annihilate", AttackIdentifier.KICK, new AttackValues(200f, 0.3f, 60f, 2, 1, Wound.TYPE_ACID, false, 7, 8.0f)));
templateId = builder.getTemplateId();
return builder;
}
@Override
public void addEncounters() {
return;
}
}

View File

@@ -0,0 +1,67 @@
package mod.sin.creatures.titans;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class IfritFiend implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
// {C_TYPE_MOVE_LOCAL, C_TYPE_VEHICLE, C_TYPE_ANIMAL, C_TYPE_LEADABLE, C_TYPE_GRAZER, C_TYPE_OMNIVORE, C_TYPE_DOMINATABLE, C_TYPE_AGG_HUMAN, C_TYPE_NON_NEWBIE, C_TYPE_BURNING}; - Hell Horse
// int[] types = new int[]{7, 6, 13, 3, 29, 39, 60, 61}; - Spider
int[] types = {
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_DETECTINVIS,
CreatureTypes.C_TYPE_NON_NEWBIE
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.ifrit.fiend", "Fiend of Ifrit", "A champion of Ifrit.",
"model.creature.humanoid.lavacreature", types, BodyTemplate.TYPE_HUMAN, (short) 30, (byte) 0, (short) 85, (short) 50, (short) 85,
"sound.death.lizard", "sound.death.lizard", "sound.combat.hit.lizard", "sound.combat.hit.lizard",
0.3f, 23f, 0f, 19f, 0.0f, 0.0f, 2.0f, 2000,
new int[]{}, 15, 70, Materials.MATERIAL_MEAT_HUMANOID);
builder.skill(SkillList.BODY_STRENGTH, 55.0f);
builder.skill(SkillList.BODY_STAMINA, 65.0f);
builder.skill(SkillList.BODY_CONTROL, 60.0f);
builder.skill(SkillList.MIND_LOGICAL, 50.0f);
builder.skill(SkillList.MIND_SPEED, 50.0f);
builder.skill(SkillList.SOUL_STRENGTH, 50.0f);
builder.skill(SkillList.SOUL_DEPTH, 50.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 50.0f);
builder.skill(SkillList.GROUP_FIGHTING, 40.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("burn");
builder.maxAge(100);
builder.armourType(ArmourTypes.ARMOUR_LEATHER_DRAGON);
builder.baseCombatRating(25.0f);
builder.combatDamageType(Wound.TYPE_BURN);
builder.maxPercentOfCreatures(0.005f);
builder.maxGroupAttackSize(100);
templateId = builder.getTemplateId();
return builder;
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
}
}

View File

@@ -0,0 +1,67 @@
package mod.sin.creatures.titans;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class IfritSpider implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
// {C_TYPE_MOVE_LOCAL, C_TYPE_VEHICLE, C_TYPE_ANIMAL, C_TYPE_LEADABLE, C_TYPE_GRAZER, C_TYPE_OMNIVORE, C_TYPE_DOMINATABLE, C_TYPE_AGG_HUMAN, C_TYPE_NON_NEWBIE, C_TYPE_BURNING}; - Hell Horse
// int[] types = new int[]{7, 6, 13, 3, 29, 39, 60, 61}; - Spider
int[] types = {
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_DETECTINVIS,
CreatureTypes.C_TYPE_NON_NEWBIE
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.ifrit.spider", "Servant of Ifrit", "A mindless minion of Ifrit.",
"model.creature.multiped.spider.lava", types, BodyTemplate.TYPE_SPIDER, (short) 30, (byte) 0, (short) 85, (short) 50, (short) 85,
"sound.death.spider", "sound.death.spider", "sound.combat.hit.spider", "sound.combat.hit.spider",
0.5f, 15f, 0f, 13f, 0.0f, 0.0f, 1.7f, 1500,
new int[]{}, 15, 70, Materials.MATERIAL_MEAT_INSECT);
builder.skill(SkillList.BODY_STRENGTH, 65.0f);
builder.skill(SkillList.BODY_STAMINA, 65.0f);
builder.skill(SkillList.BODY_CONTROL, 60.0f);
builder.skill(SkillList.MIND_LOGICAL, 50.0f);
builder.skill(SkillList.MIND_SPEED, 50.0f);
builder.skill(SkillList.SOUL_STRENGTH, 50.0f);
builder.skill(SkillList.SOUL_DEPTH, 50.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 50.0f);
builder.skill(SkillList.GROUP_FIGHTING, 40.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("burn");
builder.maxAge(100);
builder.armourType(ArmourTypes.ARMOUR_CLOTH);
builder.baseCombatRating(15.0f);
builder.combatDamageType(Wound.TYPE_BURN);
builder.maxPercentOfCreatures(0.005f);
builder.maxGroupAttackSize(100);
templateId = builder.getTemplateId();
return builder;
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
}
}

View File

@@ -0,0 +1,70 @@
package mod.sin.creatures.titans;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class Lilith implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
int[] types = {
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_NON_NEWBIE
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.raid.lilith", "Lilith", "A bold warrior corrupted by darkness. You feel the presence of Libila.",
"model.creature.humanoid.giant.incarnation", types, BodyTemplate.TYPE_HUMAN, (short) 5, (byte) 1, (short) 350, (short) 100, (short) 60,
"sound.death.libila.incarnation", "sound.death.libila.incarnation", "sound.combat.hit.libila.incarnation", "sound.combat.hit.libila.incarnation",
0.015f, 8.0f, 11.0f, 0.0f, 0.0f, 0.0f, 0.5f, 400,
new int[]{}, 40, 100, Materials.MATERIAL_MEAT_HUMANOID);
builder.skill(SkillList.BODY_STRENGTH, 99.0f);
builder.skill(SkillList.BODY_STAMINA, 99.0f);
builder.skill(SkillList.BODY_CONTROL, 99.0f);
builder.skill(SkillList.MIND_LOGICAL, 99.0f);
builder.skill(SkillList.MIND_SPEED, 99.0f);
builder.skill(SkillList.SOUL_STRENGTH, 99.0f);
builder.skill(SkillList.SOUL_DEPTH, 99.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 99.0f);
builder.skill(SkillList.GROUP_FIGHTING, 99.0f);
builder.skill(SkillList.SCYTHE, 99.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("slashe");
builder.kickDamString("eviscerate");
builder.maxAge(200);
builder.armourType(ArmourTypes.ARMOUR_SCALE_DRAGON);
builder.baseCombatRating(99.0f);
builder.combatDamageType(Wound.TYPE_INFECTION);
builder.maxGroupAttackSize(150);
//builder.usesNewAttacks(true);
// float baseDamage, float criticalChance, float baseSpeed, int attackReach, int weightGroup, byte damageType, boolean usesWeapon, int rounds, float waitUntilNextAttack
//builder.addPrimaryAttack(new AttackAction("slashe", AttackIdentifier.STRIKE, new AttackValues(70f, 0.05f, 5f, 3, 1, Wound.TYPE_SLASH, false, 1, 1.0f)));
//builder.addPrimaryAttack(new AttackAction("eviscerate", AttackIdentifier.STRIKE, new AttackValues(100f, 0.5f, 30f, 3, 1, Wound.TYPE_INFECTION, false, 4, 5.0f)));
//builder.addSecondaryAttack(new AttackAction("annihilate", AttackIdentifier.KICK, new AttackValues(200f, 0.3f, 60f, 2, 1, Wound.TYPE_ACID, false, 7, 8.0f)));
templateId = builder.getTemplateId();
return builder;
}
@Override
public void addEncounters() {
return;
}
}

View File

@@ -0,0 +1,67 @@
package mod.sin.creatures.titans;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class LilithWraith implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
// {C_TYPE_MOVE_LOCAL, C_TYPE_VEHICLE, C_TYPE_ANIMAL, C_TYPE_LEADABLE, C_TYPE_GRAZER, C_TYPE_OMNIVORE, C_TYPE_DOMINATABLE, C_TYPE_AGG_HUMAN, C_TYPE_NON_NEWBIE, C_TYPE_BURNING}; - Hell Horse
// int[] types = new int[]{7, 6, 13, 3, 29, 39, 60, 61}; - Spider
int[] types = {
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_DETECTINVIS,
CreatureTypes.C_TYPE_NON_NEWBIE
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.lilith.wraith", "Wraith of Lilith", "A champion of Lilith.",
"model.creature.humanoid.human.spirit.wraith", types, BodyTemplate.TYPE_HUMAN, (short) 30, (byte) 0, (short) 85, (short) 50, (short) 85,
"sound.death.spirit.male", "sound.death.spirit.female", "sound.combat.hit.spirit.male", "sound.combat.hit.spirit.female",
0.3f, 23f, 0f, 19f, 0.0f, 0.0f, 2.0f, 2000,
new int[]{}, 15, 70, Materials.MATERIAL_MEAT_HUMANOID);
builder.skill(SkillList.BODY_STRENGTH, 55.0f);
builder.skill(SkillList.BODY_STAMINA, 65.0f);
builder.skill(SkillList.BODY_CONTROL, 60.0f);
builder.skill(SkillList.MIND_LOGICAL, 50.0f);
builder.skill(SkillList.MIND_SPEED, 50.0f);
builder.skill(SkillList.SOUL_STRENGTH, 50.0f);
builder.skill(SkillList.SOUL_DEPTH, 50.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 50.0f);
builder.skill(SkillList.GROUP_FIGHTING, 40.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("claw");
builder.maxAge(100);
builder.armourType(ArmourTypes.ARMOUR_LEATHER_DRAGON);
builder.baseCombatRating(25.0f);
builder.combatDamageType(Wound.TYPE_INFECTION);
builder.maxPercentOfCreatures(0.005f);
builder.maxGroupAttackSize(100);
templateId = builder.getTemplateId();
return builder;
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
}
}

View File

@@ -0,0 +1,67 @@
package mod.sin.creatures.titans;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import com.wurmonline.server.bodys.BodyTemplate;
import com.wurmonline.server.bodys.Wound;
import com.wurmonline.server.combat.ArmourTypes;
import com.wurmonline.server.creatures.CreatureTypes;
import com.wurmonline.server.items.Materials;
import com.wurmonline.server.skills.SkillList;
public class LilithZombie implements ModCreature, CreatureTypes {
public static int templateId;
@Override
public CreatureTemplateBuilder createCreateTemplateBuilder() {
// {C_TYPE_MOVE_LOCAL, C_TYPE_VEHICLE, C_TYPE_ANIMAL, C_TYPE_LEADABLE, C_TYPE_GRAZER, C_TYPE_OMNIVORE, C_TYPE_DOMINATABLE, C_TYPE_AGG_HUMAN, C_TYPE_NON_NEWBIE, C_TYPE_BURNING}; - Hell Horse
// int[] types = new int[]{7, 6, 13, 3, 29, 39, 60, 61}; - Spider
int[] types = {
CreatureTypes.C_TYPE_MOVE_LOCAL,
CreatureTypes.C_TYPE_AGG_HUMAN,
CreatureTypes.C_TYPE_HUNTING,
CreatureTypes.C_TYPE_CARNIVORE,
CreatureTypes.C_TYPE_DETECTINVIS,
CreatureTypes.C_TYPE_NON_NEWBIE
};
//public CreatureTemplateBuilder(final String identifier, final String name, final String description,
// final String modelName, final int[] types, final byte bodyType, final short vision, final byte sex, final short centimetersHigh, final short centimetersLong, final short centimetersWide,
// final String deathSndMale, final String deathSndFemale, final String hitSndMale, final String hitSndFemale,
// final float naturalArmour, final float handDam, final float kickDam, final float biteDam, final float headDam, final float breathDam, final float speed, final int moveRate,
// final int[] itemsButchered, final int maxHuntDist, final int aggress) {
CreatureTemplateBuilder builder = new CreatureTemplateBuilder("mod.creature.lilith.zombie", "Servant of Lilith", "A mindless minion of Lilith.",
"model.creature.humanoid.human.player.zombie", types, BodyTemplate.TYPE_HUMAN, (short) 30, (byte) 0, (short) 85, (short) 50, (short) 85,
"sound.death.zombie", "sound.death.zombie", "sound.combat.hit.zombie", "sound.combat.hit.zombie",
0.5f, 15f, 0f, 13f, 0.0f, 0.0f, 1.7f, 1500,
new int[]{}, 15, 70, Materials.MATERIAL_MEAT_HUMANOID);
builder.skill(SkillList.BODY_STRENGTH, 65.0f);
builder.skill(SkillList.BODY_STAMINA, 65.0f);
builder.skill(SkillList.BODY_CONTROL, 60.0f);
builder.skill(SkillList.MIND_LOGICAL, 50.0f);
builder.skill(SkillList.MIND_SPEED, 50.0f);
builder.skill(SkillList.SOUL_STRENGTH, 50.0f);
builder.skill(SkillList.SOUL_DEPTH, 50.0f);
builder.skill(SkillList.WEAPONLESS_FIGHTING, 50.0f);
builder.skill(SkillList.GROUP_FIGHTING, 40.0f);
builder.boundsValues(-0.5f, -1.0f, 0.5f, 1.42f);
builder.handDamString("claw");
builder.maxAge(100);
builder.armourType(ArmourTypes.ARMOUR_CLOTH);
builder.baseCombatRating(15.0f);
builder.combatDamageType(Wound.TYPE_INFECTION);
builder.maxPercentOfCreatures(0.005f);
builder.maxGroupAttackSize(100);
templateId = builder.getTemplateId();
return builder;
}
@Override
public void addEncounters() {
if (templateId == 0)
return;
}
}