Initial Commit
This commit is contained in:
75
src/main/java/mod/sin/creatures/Avenger.java
Normal file
75
src/main/java/mod/sin/creatures/Avenger.java
Normal 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);
|
||||
}
|
||||
}
|
||||
67
src/main/java/mod/sin/creatures/Bison.java
Normal file
67
src/main/java/mod/sin/creatures/Bison.java
Normal 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;
|
||||
}
|
||||
}
|
||||
116
src/main/java/mod/sin/creatures/Charger.java
Normal file
116
src/main/java/mod/sin/creatures/Charger.java
Normal 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);
|
||||
}
|
||||
}
|
||||
72
src/main/java/mod/sin/creatures/Facebreyker.java
Normal file
72
src/main/java/mod/sin/creatures/Facebreyker.java
Normal 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;
|
||||
}
|
||||
}
|
||||
80
src/main/java/mod/sin/creatures/ForestSpider.java
Normal file
80
src/main/java/mod/sin/creatures/ForestSpider.java
Normal 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);
|
||||
}
|
||||
}
|
||||
84
src/main/java/mod/sin/creatures/Giant.java
Normal file
84
src/main/java/mod/sin/creatures/Giant.java
Normal 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);
|
||||
|
||||
}
|
||||
}
|
||||
114
src/main/java/mod/sin/creatures/HornedPony.java
Normal file
114
src/main/java/mod/sin/creatures/HornedPony.java
Normal 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);
|
||||
}
|
||||
}
|
||||
80
src/main/java/mod/sin/creatures/LargeBoar.java
Normal file
80
src/main/java/mod/sin/creatures/LargeBoar.java
Normal 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);
|
||||
}
|
||||
}
|
||||
43
src/main/java/mod/sin/creatures/LavaFiend.java
Normal file
43
src/main/java/mod/sin/creatures/LavaFiend.java
Normal 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);
|
||||
|
||||
}
|
||||
}
|
||||
63
src/main/java/mod/sin/creatures/MacroSlayer.java
Normal file
63
src/main/java/mod/sin/creatures/MacroSlayer.java
Normal 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;
|
||||
}
|
||||
}
|
||||
64
src/main/java/mod/sin/creatures/Reaper.java
Normal file
64
src/main/java/mod/sin/creatures/Reaper.java
Normal 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;
|
||||
}
|
||||
}
|
||||
51
src/main/java/mod/sin/creatures/RobZombie.java
Normal file
51
src/main/java/mod/sin/creatures/RobZombie.java
Normal 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;
|
||||
}
|
||||
}
|
||||
46
src/main/java/mod/sin/creatures/SolDemon.java
Normal file
46
src/main/java/mod/sin/creatures/SolDemon.java
Normal 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);
|
||||
}
|
||||
}
|
||||
64
src/main/java/mod/sin/creatures/SpectralDrake.java
Normal file
64
src/main/java/mod/sin/creatures/SpectralDrake.java
Normal 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;
|
||||
}
|
||||
}
|
||||
80
src/main/java/mod/sin/creatures/SpiritTroll.java
Normal file
80
src/main/java/mod/sin/creatures/SpiritTroll.java
Normal 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);
|
||||
}
|
||||
}
|
||||
77
src/main/java/mod/sin/creatures/Worg.java
Normal file
77
src/main/java/mod/sin/creatures/Worg.java
Normal 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);
|
||||
}
|
||||
}
|
||||
121
src/main/java/mod/sin/creatures/WyvernBlack.java
Normal file
121
src/main/java/mod/sin/creatures/WyvernBlack.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
114
src/main/java/mod/sin/creatures/WyvernGreen.java
Normal file
114
src/main/java/mod/sin/creatures/WyvernGreen.java
Normal 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);
|
||||
}
|
||||
}
|
||||
110
src/main/java/mod/sin/creatures/WyvernRed.java
Normal file
110
src/main/java/mod/sin/creatures/WyvernRed.java
Normal 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);
|
||||
}
|
||||
}
|
||||
117
src/main/java/mod/sin/creatures/WyvernWhite.java
Normal file
117
src/main/java/mod/sin/creatures/WyvernWhite.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
70
src/main/java/mod/sin/creatures/titans/Ifrit.java
Normal file
70
src/main/java/mod/sin/creatures/titans/Ifrit.java
Normal 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;
|
||||
}
|
||||
}
|
||||
67
src/main/java/mod/sin/creatures/titans/IfritFiend.java
Normal file
67
src/main/java/mod/sin/creatures/titans/IfritFiend.java
Normal 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;
|
||||
}
|
||||
}
|
||||
67
src/main/java/mod/sin/creatures/titans/IfritSpider.java
Normal file
67
src/main/java/mod/sin/creatures/titans/IfritSpider.java
Normal 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;
|
||||
}
|
||||
}
|
||||
70
src/main/java/mod/sin/creatures/titans/Lilith.java
Normal file
70
src/main/java/mod/sin/creatures/titans/Lilith.java
Normal 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;
|
||||
}
|
||||
}
|
||||
67
src/main/java/mod/sin/creatures/titans/LilithWraith.java
Normal file
67
src/main/java/mod/sin/creatures/titans/LilithWraith.java
Normal 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;
|
||||
}
|
||||
}
|
||||
67
src/main/java/mod/sin/creatures/titans/LilithZombie.java
Normal file
67
src/main/java/mod/sin/creatures/titans/LilithZombie.java
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user