Files
2023-07-15 10:51:25 +02:00

103 lines
3.7 KiB
C#

namespace InfectedRose.Interface.Templates;
[ModType("enemy")]
public class EnemyMod : ModType
{
public override void Apply(Mod mod)
{
if (mod.Action != "add")
{
return;
}
// Controller
mod.Default("physics_asset", @"miscellaneous\standard_enemy.hkx");
mod.Default("static", 0);
mod.Default("jump", 4);
mod.Default("doublejump", 0);
mod.Default("speed", 8);
mod.Default("rotSpeed", 720);
mod.Default("playerHeight", 4.4f);
mod.Default("playerRadius", 1.7f);
mod.Default("pcShapeType", 0);
mod.Default("collisionGroup", 12);
mod.Default("airSpeed", 5);
mod.Default("jumpAirSpeed", 25);
// Render
mod.Default("render_asset", @"animations\\creatures\\cre_strombie.kfm");
mod.Default("animationGroupIDs", "513,535");
mod.Default("shader_id", 66);
mod.DefaultNull("interactionDistance");
mod.DefaultNull("chatBubbleOffset");
mod.Default("fade", true);
mod.Default("fadeInTime", 0.1f);
mod.DefaultNull("billboardHeight");
mod.DefaultNull("AudioMetaEventSet");
mod.Default("usedropshadow", false);
mod.Default("preloadAnimations", false);
mod.Default("ignoreCameraCollision", false);
mod.Default("gradualSnap", false);
mod.Default("staticBillboard", false);
mod.Default("attachIndicatorsToNode", false);
// Destroyable
mod.Default("life", 1);
mod.Default("armor", 0);
mod.Default("imagination", 0);
mod.Default("level", 1);
mod.Default("faction", 4);
mod.Default("factionList", "4");
mod.Default("isnpc", true);
mod.Default("isSmashable", true);
mod.Default("attack_priority", 1);
mod.Default("death_behavior", 2);
mod.Default("CurrencyIndex", 1);
mod.Default("LootMatrixIndex", 160);
mod.DefaultNull("difficultyLevel");
// Movement
mod.Default("MovementType", "Wander");
mod.Default("WanderChance", 90);
mod.Default("WanderDelayMin", 3);
mod.Default("WanderDelayMax", 6);
mod.Default("WanderSpeed", 0.5f);
mod.Default("WanderRadius", 8);
mod.DefaultNull("attachedPath");
// BaseCombatAI
mod.Default("behaviorType", 1);
mod.Default("minRoundLength", 3);
mod.Default("maxRoundLength", 5);
mod.Default("pursuitSpeed", 2);
mod.Default("spawnTimer", 1);
mod.Default("tetherSpeed", 4);
mod.Default("softTetherRadius", 25);
mod.Default("hardTetherRadius", 101);
mod.Default("tetherEffectID", 6270);
mod.Default("combatRoundLength", 4);
mod.Default("combatRole", 5);
mod.Default("combatStartDelay", 1.5f);
mod.Default("aggroRadius", 25);
mod.Default("ignoreMediator", true);
mod.Default("ignoreStatReset", false);
mod.Default("ignoreParent", false);
// Object
mod.DefaultNull("npcTemplateID");
mod.Default("nametag", true);
mod.Default("placeable", true);
mod.Default("localize", true);
mod.Default("locStatus", 2);
var obj = ObjectMod.CreateObject(mod);
obj["type"].Value = "Enemies";
ObjectMod.AddComponent(mod, obj, ComponentId.ControllablePhysicsComponent);
ObjectMod.AddComponent(mod, obj, ComponentId.RenderComponent);
ObjectMod.AddComponent(mod, obj, ComponentId.DestructibleComponent);
ObjectMod.AddComponent(mod, obj, ComponentId.MovementAIComponent);
ObjectMod.AddComponent(mod, obj, ComponentId.BaseCombatAIComponent);
}
}