diff --git a/.classpath b/.classpath
index 6d739bfc..6ea45b44 100644
--- a/.classpath
+++ b/.classpath
@@ -1,7 +1,6 @@
-
@@ -28,8 +27,9 @@
-
-
+
+
+
diff --git a/.gitignore b/.gitignore
index 70f2d42e..f80b1387 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,7 +47,26 @@ clientdata/
# SWG Client Folders
footprint/
interiorlayout/
-quest/
+clientdata/quest/
+
+# PSWG Object Databases
+odb/building/je.info.*
+odb/creature/je.info.*
+odb/doids/je.info.*
+odb/guild/je.info.*
+odb/mails/je.info.*
+odb/oids/je.info.*
+odb/chatRooms/je.info.*
+odb/resourcehistory/je.info.*
+odb/resourceroots/je.info.*
+odb/resources/je.info.*
+<<<<<<< HEAD
+odb/auction/je.info.*
+odb/swgobjects/je.info.*
+=======
+odb/auction/je.info.*
+odb/bounties/je.info.*
+>>>>>>> 12ca3ae66170fcfe09d848a7eea529041b9af5ad
# External tool builders
.externalToolBuilders/
@@ -199,4 +218,4 @@ pip-log.txt
#############
## PyCharm
#############
-.idea
\ No newline at end of file
+.idea
diff --git a/README.md b/README.md
index 783721b1..ff4c8504 100644
--- a/README.md
+++ b/README.md
@@ -12,8 +12,8 @@ The Engine(NGEngine) is a closed source library and is only licensed for use wit
Requirements for Building the Core:
========
-- JDK 7
-- An IDE like Eclipse Juno
+- JDK 8
+- A Java 8 compatible IDE like Eclipse Kepler (https://wiki.eclipse.org/JDT/Eclipse_Java_8_Support_For_Kepler)
- A valid Star Wars Galaxies Installation with the final patch
- Postgresql server (www.postgresql.org)
- TRE Explorer(http://forum.modsource.org/index.php?PHPSESSID=bf02fd8244123807f4716c1686abb59f&action=dlattach;topic=33.0;attach=49)
@@ -43,8 +43,11 @@ Then export the following folders to your clientdata folder(should be located in
- object
- quest
- snapshot
+- string
- terrain
+Export the same folders from sku1_client.toc, sku2_client.toc and sku3_client.toc to avoid errors with kashyyyk.
+
Now you're ready to run the core!
Contributing and Submitting patches
diff --git a/lib/mbassador-1.1.7.jar b/lib/mbassador-1.1.7.jar
deleted file mode 100644
index c7ae2c11..00000000
Binary files a/lib/mbassador-1.1.7.jar and /dev/null differ
diff --git a/lib/mbassador-1.1.9.jar b/lib/mbassador-1.1.9.jar
new file mode 100644
index 00000000..ff742d1c
Binary files /dev/null and b/lib/mbassador-1.1.9.jar differ
diff --git a/motd.txt b/motd.txt
new file mode 100644
index 00000000..8d8e4743
--- /dev/null
+++ b/motd.txt
@@ -0,0 +1 @@
+Welcome to the ProjectSWG TestCenter!
\ No newline at end of file
diff --git a/nge - old.backup b/nge - old.backup
new file mode 100644
index 00000000..7e15eff9
--- /dev/null
+++ b/nge - old.backup
@@ -0,0 +1,1028 @@
+--
+-- PostgreSQL database dump
+--
+
+-- Dumped from database version 9.2.2
+-- Dumped by pg_dump version 9.2.2
+-- Started on 2013-11-24 10:56:35
+
+SET statement_timeout = 0;
+SET client_encoding = 'UTF8';
+SET standard_conforming_strings = on;
+SET check_function_bodies = false;
+SET client_min_messages = warning;
+
+--
+-- TOC entry 2040 (class 0 OID 0)
+-- Dependencies: 6
+-- Name: SCHEMA "public"; Type: COMMENT; Schema: -; Owner: postgres
+--
+
+COMMENT ON SCHEMA "public" IS 'standard public schema';
+
+
+--
+-- TOC entry 189 (class 3079 OID 11727)
+-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner:
+--
+
+CREATE EXTENSION IF NOT EXISTS "plpgsql" WITH SCHEMA "pg_catalog";
+
+
+--
+-- TOC entry 2042 (class 0 OID 0)
+-- Dependencies: 189
+-- Name: EXTENSION "plpgsql"; Type: COMMENT; Schema: -; Owner:
+--
+
+COMMENT ON EXTENSION "plpgsql" IS 'PL/pgSQL procedural language';
+
+
+--
+-- TOC entry 188 (class 3079 OID 16598)
+-- Name: adminpack; Type: EXTENSION; Schema: -; Owner:
+--
+
+CREATE EXTENSION IF NOT EXISTS "adminpack" WITH SCHEMA "pg_catalog";
+
+
+--
+-- TOC entry 2043 (class 0 OID 0)
+-- Dependencies: 188
+-- Name: EXTENSION "adminpack"; Type: COMMENT; Schema: -; Owner:
+--
+
+COMMENT ON EXTENSION "adminpack" IS 'administrative functions for PostgreSQL';
+
+
+SET search_path = "public", pg_catalog;
+
+--
+-- TOC entry 575 (class 1247 OID 16733)
+-- Name: reservation_type; Type: TYPE; Schema: public; Owner: nge
+--
+
+CREATE TYPE "reservation_type" AS ENUM (
+ 'name_declined_fictionally_reserved',
+ 'name_declined_developer',
+ 'name_declined_profane'
+);
+
+
+ALTER TYPE "public"."reservation_type" OWNER TO "nge";
+
+SET default_tablespace = '';
+
+SET default_with_oids = false;
+
+--
+-- TOC entry 168 (class 1259 OID 16607)
+-- Name: accounts; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
+--
+
+CREATE TABLE "accounts" (
+ "id" integer NOT NULL,
+ "user" character varying(16) NOT NULL,
+ "pass" character varying(34) NOT NULL,
+ "email" character varying(32) NOT NULL
+);
+
+
+ALTER TABLE "public"."accounts" OWNER TO "postgres";
+
+--
+-- TOC entry 169 (class 1259 OID 16610)
+-- Name: accounts_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
+--
+
+CREATE SEQUENCE "accounts_id_seq"
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+ALTER TABLE "public"."accounts_id_seq" OWNER TO "postgres";
+
+--
+-- TOC entry 2044 (class 0 OID 0)
+-- Dependencies: 169
+-- Name: accounts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
+--
+
+ALTER SEQUENCE "accounts_id_seq" OWNED BY "accounts"."id";
+
+
+--
+-- TOC entry 170 (class 1259 OID 16612)
+-- Name: characters; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
+--
+
+CREATE TABLE "characters" (
+ "id" bigint NOT NULL,
+ "firstName" character varying(16) NOT NULL,
+ "lastName" character varying,
+ "accountId" integer NOT NULL,
+ "galaxyId" integer NOT NULL,
+ "statusId" integer NOT NULL,
+ "appearance" integer,
+ "gmflag" boolean
+);
+
+
+ALTER TABLE "public"."characters" OWNER TO "postgres";
+
+--
+-- TOC entry 171 (class 1259 OID 16618)
+-- Name: characters_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
+--
+
+CREATE SEQUENCE "characters_id_seq"
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+ALTER TABLE "public"."characters_id_seq" OWNER TO "postgres";
+
+--
+-- TOC entry 2045 (class 0 OID 0)
+-- Dependencies: 171
+-- Name: characters_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
+--
+
+ALTER SEQUENCE "characters_id_seq" OWNED BY "characters"."id";
+
+
+--
+-- TOC entry 172 (class 1259 OID 16620)
+-- Name: connectionServers; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
+--
+
+CREATE TABLE "connectionServers" (
+ "id" integer NOT NULL,
+ "address" character varying(40) NOT NULL,
+ "port" integer NOT NULL,
+ "galaxyId" integer NOT NULL,
+ "statusId" integer,
+ "pingPort" integer
+);
+
+
+ALTER TABLE "public"."connectionServers" OWNER TO "postgres";
+
+--
+-- TOC entry 173 (class 1259 OID 16623)
+-- Name: connectionServers_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
+--
+
+CREATE SEQUENCE "connectionServers_id_seq"
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+ALTER TABLE "public"."connectionServers_id_seq" OWNER TO "postgres";
+
+--
+-- TOC entry 2046 (class 0 OID 0)
+-- Dependencies: 173
+-- Name: connectionServers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
+--
+
+ALTER SEQUENCE "connectionServers_id_seq" OWNED BY "connectionServers"."id";
+
+
+--
+-- TOC entry 174 (class 1259 OID 16625)
+-- Name: fictionallyreservednames; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
+--
+
+CREATE TABLE "fictionallyreservednames" (
+ "id" integer NOT NULL,
+ "firstName" character varying
+);
+
+
+ALTER TABLE "public"."fictionallyreservednames" OWNER TO "postgres";
+
+--
+-- TOC entry 175 (class 1259 OID 16631)
+-- Name: fictionallyreservednames_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
+--
+
+CREATE SEQUENCE "fictionallyreservednames_id_seq"
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+ALTER TABLE "public"."fictionallyreservednames_id_seq" OWNER TO "postgres";
+
+--
+-- TOC entry 2047 (class 0 OID 0)
+-- Dependencies: 175
+-- Name: fictionallyreservednames_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
+--
+
+ALTER SEQUENCE "fictionallyreservednames_id_seq" OWNED BY "fictionallyreservednames"."id";
+
+
+--
+-- TOC entry 176 (class 1259 OID 16633)
+-- Name: galaxies; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
+--
+
+CREATE TABLE "galaxies" (
+ "id" integer NOT NULL,
+ "name" character varying(30) NOT NULL
+);
+
+
+ALTER TABLE "public"."galaxies" OWNER TO "postgres";
+
+--
+-- TOC entry 177 (class 1259 OID 16636)
+-- Name: galaxies_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
+--
+
+CREATE SEQUENCE "galaxies_id_seq"
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+ALTER TABLE "public"."galaxies_id_seq" OWNER TO "postgres";
+
+--
+-- TOC entry 2048 (class 0 OID 0)
+-- Dependencies: 177
+-- Name: galaxies_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
+--
+
+ALTER SEQUENCE "galaxies_id_seq" OWNED BY "galaxies"."id";
+
+
+--
+-- TOC entry 178 (class 1259 OID 16638)
+-- Name: highestid; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
+--
+
+CREATE TABLE "highestid" (
+ "id" bigint NOT NULL
+);
+
+
+ALTER TABLE "public"."highestid" OWNER TO "postgres";
+
+--
+-- TOC entry 179 (class 1259 OID 16641)
+-- Name: profanenames; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
+--
+
+CREATE TABLE "profanenames" (
+ "id" integer NOT NULL,
+ "firstName" character varying
+);
+
+
+ALTER TABLE "public"."profanenames" OWNER TO "postgres";
+
+--
+-- TOC entry 180 (class 1259 OID 16647)
+-- Name: profanenames_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
+--
+
+CREATE SEQUENCE "profanenames_id_seq"
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+ALTER TABLE "public"."profanenames_id_seq" OWNER TO "postgres";
+
+--
+-- TOC entry 2049 (class 0 OID 0)
+-- Dependencies: 180
+-- Name: profanenames_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
+--
+
+ALTER SEQUENCE "profanenames_id_seq" OWNED BY "profanenames"."id";
+
+
+--
+-- TOC entry 185 (class 1259 OID 16739)
+-- Name: reservednames; Type: TABLE; Schema: public; Owner: nge; Tablespace:
+--
+
+CREATE TABLE "reservednames" (
+ "id" integer NOT NULL,
+ "pattern" character varying,
+ "type" "reservation_type" DEFAULT 'name_declined_profane'::"reservation_type" NOT NULL,
+ "match_firstname" boolean DEFAULT true NOT NULL,
+ "match_lastname" boolean DEFAULT true NOT NULL,
+ "match_both_names" boolean DEFAULT false
+);
+
+
+ALTER TABLE "public"."reservednames" OWNER TO "nge";
+
+--
+-- TOC entry 186 (class 1259 OID 16749)
+-- Name: reservednames_id_seq; Type: SEQUENCE; Schema: public; Owner: nge
+--
+
+CREATE SEQUENCE "reservednames_id_seq"
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+ALTER TABLE "public"."reservednames_id_seq" OWNER TO "nge";
+
+--
+-- TOC entry 2051 (class 0 OID 0)
+-- Dependencies: 186
+-- Name: reservednames_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: nge
+--
+
+ALTER SEQUENCE "reservednames_id_seq" OWNED BY "reservednames"."id";
+
+
+--
+-- TOC entry 181 (class 1259 OID 16651)
+-- Name: reservedstaffnames; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
+--
+
+CREATE TABLE "reservedstaffnames" (
+ "id" integer NOT NULL,
+ "firstName" character varying
+);
+
+
+ALTER TABLE "public"."reservedstaffnames" OWNER TO "postgres";
+
+--
+-- TOC entry 182 (class 1259 OID 16657)
+-- Name: reservedstaffnames_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
+--
+
+CREATE SEQUENCE "reservedstaffnames_id_seq"
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+ALTER TABLE "public"."reservedstaffnames_id_seq" OWNER TO "postgres";
+
+--
+-- TOC entry 2053 (class 0 OID 0)
+-- Dependencies: 182
+-- Name: reservedstaffnames_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
+--
+
+ALTER SEQUENCE "reservedstaffnames_id_seq" OWNED BY "reservedstaffnames"."id";
+
+
+--
+-- TOC entry 183 (class 1259 OID 16659)
+-- Name: sessions; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
+--
+
+CREATE TABLE "sessions" (
+ "id" integer NOT NULL,
+ "key" "bytea" NOT NULL,
+ "accountId" integer NOT NULL,
+ "valid" timestamp with time zone DEFAULT "now"() NOT NULL
+);
+
+
+ALTER TABLE "public"."sessions" OWNER TO "postgres";
+
+--
+-- TOC entry 184 (class 1259 OID 16666)
+-- Name: sessions_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
+--
+
+CREATE SEQUENCE "sessions_id_seq"
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+ALTER TABLE "public"."sessions_id_seq" OWNER TO "postgres";
+
+--
+-- TOC entry 2054 (class 0 OID 0)
+-- Dependencies: 184
+-- Name: sessions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
+--
+
+ALTER SEQUENCE "sessions_id_seq" OWNED BY "sessions"."id";
+
+
+--
+-- TOC entry 187 (class 1259 OID 16752)
+-- Name: temp_reserved_char_names; Type: TABLE; Schema: public; Owner: nge; Tablespace:
+--
+
+CREATE TABLE "temp_reserved_char_names" (
+ "accountId" integer NOT NULL,
+ "firstName" character varying(16)
+);
+
+
+ALTER TABLE "public"."temp_reserved_char_names" OWNER TO "nge";
+
+--
+-- TOC entry 2055 (class 0 OID 0)
+-- Dependencies: 187
+-- Name: TABLE "temp_reserved_char_names"; Type: COMMENT; Schema: public; Owner: nge
+--
+
+COMMENT ON TABLE "temp_reserved_char_names" IS 'this table is for temporary reservations.';
+
+
+--
+-- TOC entry 1982 (class 2604 OID 16668)
+-- Name: id; Type: DEFAULT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY "accounts" ALTER COLUMN "id" SET DEFAULT "nextval"('"accounts_id_seq"'::"regclass");
+
+
+--
+-- TOC entry 1983 (class 2604 OID 16669)
+-- Name: id; Type: DEFAULT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY "connectionServers" ALTER COLUMN "id" SET DEFAULT "nextval"('"connectionServers_id_seq"'::"regclass");
+
+
+--
+-- TOC entry 1984 (class 2604 OID 16670)
+-- Name: id; Type: DEFAULT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY "fictionallyreservednames" ALTER COLUMN "id" SET DEFAULT "nextval"('"fictionallyreservednames_id_seq"'::"regclass");
+
+
+--
+-- TOC entry 1985 (class 2604 OID 16671)
+-- Name: id; Type: DEFAULT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY "galaxies" ALTER COLUMN "id" SET DEFAULT "nextval"('"galaxies_id_seq"'::"regclass");
+
+
+--
+-- TOC entry 1986 (class 2604 OID 16672)
+-- Name: id; Type: DEFAULT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY "profanenames" ALTER COLUMN "id" SET DEFAULT "nextval"('"profanenames_id_seq"'::"regclass");
+
+
+--
+-- TOC entry 1994 (class 2604 OID 16751)
+-- Name: id; Type: DEFAULT; Schema: public; Owner: nge
+--
+
+ALTER TABLE ONLY "reservednames" ALTER COLUMN "id" SET DEFAULT "nextval"('"reservednames_id_seq"'::"regclass");
+
+
+--
+-- TOC entry 1987 (class 2604 OID 16673)
+-- Name: id; Type: DEFAULT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY "reservedstaffnames" ALTER COLUMN "id" SET DEFAULT "nextval"('"reservedstaffnames_id_seq"'::"regclass");
+
+
+--
+-- TOC entry 1989 (class 2604 OID 16674)
+-- Name: id; Type: DEFAULT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY "sessions" ALTER COLUMN "id" SET DEFAULT "nextval"('"sessions_id_seq"'::"regclass");
+
+
+--
+-- TOC entry 2015 (class 0 OID 16607)
+-- Dependencies: 168
+-- Data for Name: accounts; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+INSERT INTO "accounts" VALUES (1, 'Light', 'password', 'test');
+INSERT INTO "accounts" VALUES (2, 'Darkk', 'Password1', 'xyz@x.de');
+
+
+--
+-- TOC entry 2056 (class 0 OID 0)
+-- Dependencies: 169
+-- Name: accounts_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
+--
+
+SELECT pg_catalog.setval('"accounts_id_seq"', 2, true);
+
+
+--
+-- TOC entry 2017 (class 0 OID 16612)
+-- Dependencies: 170
+-- Data for Name: characters; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+INSERT INTO "characters" VALUES (6521, 'Dhoemar', '', 2, 3, 1, 101601749, false);
+INSERT INTO "characters" VALUES (7068, 'Nyess', 'Shethersan', 9261, 2, 1, 101601749, false);
+INSERT INTO "characters" VALUES (8138, 'Ahdrim', 'Kaharean', 9261, 3, 1, 101601749, false);
+
+
+--
+-- TOC entry 2057 (class 0 OID 0)
+-- Dependencies: 171
+-- Name: characters_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
+--
+
+SELECT pg_catalog.setval('"characters_id_seq"', 4, true);
+
+
+--
+-- TOC entry 2019 (class 0 OID 16620)
+-- Dependencies: 172
+-- Data for Name: connectionServers; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+INSERT INTO "connectionServers" VALUES (2, '127.0.0.1', 44463, 2, 1, 44462);
+INSERT INTO "connectionServers" VALUES (3, '172.16.0.208', 44463, 3, 2, 44462);
+
+
+--
+-- TOC entry 2058 (class 0 OID 0)
+-- Dependencies: 173
+-- Name: connectionServers_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
+--
+
+SELECT pg_catalog.setval('"connectionServers_id_seq"', 2, true);
+
+
+--
+-- TOC entry 2021 (class 0 OID 16625)
+-- Dependencies: 174
+-- Data for Name: fictionallyreservednames; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+INSERT INTO "fictionallyreservednames" VALUES (1, 'luke');
+INSERT INTO "fictionallyreservednames" VALUES (2, 'darth');
+INSERT INTO "fictionallyreservednames" VALUES (3, 'vader');
+INSERT INTO "fictionallyreservednames" VALUES (8, 'han solo');
+INSERT INTO "fictionallyreservednames" VALUES (9, 'darth vader');
+INSERT INTO "fictionallyreservednames" VALUES (7, 'solo');
+INSERT INTO "fictionallyreservednames" VALUES (6, 'han');
+INSERT INTO "fictionallyreservednames" VALUES (5, 'leia');
+INSERT INTO "fictionallyreservednames" VALUES (4, 'emperor');
+
+
+--
+-- TOC entry 2059 (class 0 OID 0)
+-- Dependencies: 175
+-- Name: fictionallyreservednames_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
+--
+
+SELECT pg_catalog.setval('"fictionallyreservednames_id_seq"', 1, false);
+
+
+--
+-- TOC entry 2023 (class 0 OID 16633)
+-- Dependencies: 176
+-- Data for Name: galaxies; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+INSERT INTO "galaxies" VALUES (2, 'Local Connection');
+INSERT INTO "galaxies" VALUES (3, 'VM');
+
+
+--
+-- TOC entry 2060 (class 0 OID 0)
+-- Dependencies: 177
+-- Name: galaxies_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
+--
+
+SELECT pg_catalog.setval('"galaxies_id_seq"', 2, true);
+
+
+--
+-- TOC entry 2025 (class 0 OID 16638)
+-- Dependencies: 178
+-- Data for Name: highestid; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+INSERT INTO "highestid" VALUES (8682);
+
+
+--
+-- TOC entry 2026 (class 0 OID 16641)
+-- Dependencies: 179
+-- Data for Name: profanenames; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+INSERT INTO "profanenames" VALUES (1, 'anal');
+INSERT INTO "profanenames" VALUES (2, 'ass');
+INSERT INTO "profanenames" VALUES (3, 'asshole');
+INSERT INTO "profanenames" VALUES (4, 'biatch');
+INSERT INTO "profanenames" VALUES (5, 'bitch');
+INSERT INTO "profanenames" VALUES (6, 'cock');
+INSERT INTO "profanenames" VALUES (7, 'cocksucker');
+INSERT INTO "profanenames" VALUES (8, 'cum');
+INSERT INTO "profanenames" VALUES (9, 'cunt');
+INSERT INTO "profanenames" VALUES (10, 'dick');
+INSERT INTO "profanenames" VALUES (11, 'dumb');
+INSERT INTO "profanenames" VALUES (12, 'dumbass');
+INSERT INTO "profanenames" VALUES (13, 'fag');
+INSERT INTO "profanenames" VALUES (14, 'faggot');
+INSERT INTO "profanenames" VALUES (15, 'fuck');
+INSERT INTO "profanenames" VALUES (16, 'fuk');
+INSERT INTO "profanenames" VALUES (17, 'hater');
+INSERT INTO "profanenames" VALUES (18, 'hooker');
+INSERT INTO "profanenames" VALUES (19, 'jackoff');
+INSERT INTO "profanenames" VALUES (20, 'jizz');
+INSERT INTO "profanenames" VALUES (21, 'kunt');
+INSERT INTO "profanenames" VALUES (22, 'nazi');
+INSERT INTO "profanenames" VALUES (23, 'negro');
+INSERT INTO "profanenames" VALUES (24, 'nigga');
+INSERT INTO "profanenames" VALUES (25, 'nigger');
+INSERT INTO "profanenames" VALUES (26, 'nipple');
+INSERT INTO "profanenames" VALUES (27, 'nude');
+INSERT INTO "profanenames" VALUES (28, 'nudity');
+INSERT INTO "profanenames" VALUES (29, 'penis');
+INSERT INTO "profanenames" VALUES (30, 'pussy');
+INSERT INTO "profanenames" VALUES (31, 'rape');
+INSERT INTO "profanenames" VALUES (32, 'rapist');
+INSERT INTO "profanenames" VALUES (33, 'sex');
+INSERT INTO "profanenames" VALUES (34, 'shit');
+INSERT INTO "profanenames" VALUES (35, 'skank');
+INSERT INTO "profanenames" VALUES (36, 'slut');
+INSERT INTO "profanenames" VALUES (37, 'suck');
+INSERT INTO "profanenames" VALUES (38, 'sucks');
+INSERT INTO "profanenames" VALUES (39, 'sucker');
+INSERT INTO "profanenames" VALUES (40, 'tit');
+INSERT INTO "profanenames" VALUES (41, 'tits');
+INSERT INTO "profanenames" VALUES (42, 'twat');
+INSERT INTO "profanenames" VALUES (43, 'vagina');
+INSERT INTO "profanenames" VALUES (44, 'whore');
+INSERT INTO "profanenames" VALUES (45, 'wtf');
+INSERT INTO "profanenames" VALUES (46, 'piss');
+INSERT INTO "profanenames" VALUES (47, 'damn');
+
+
+--
+-- TOC entry 2061 (class 0 OID 0)
+-- Dependencies: 180
+-- Name: profanenames_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
+--
+
+SELECT pg_catalog.setval('"profanenames_id_seq"', 1, false);
+
+
+--
+-- TOC entry 2032 (class 0 OID 16739)
+-- Dependencies: 185
+-- Data for Name: reservednames; Type: TABLE DATA; Schema: public; Owner: nge
+--
+
+INSERT INTO "reservednames" VALUES (81, 'anal$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (82, '^ass$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (83, '^ass\\s*hole$', 'name_declined_profane', true, true, true);
+INSERT INTO "reservednames" VALUES (84, '^biatch$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (85, '^bitch$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (86, '^cock$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (87, '^cock\\s*sucker$', 'name_declined_profane', true, true, true);
+INSERT INTO "reservednames" VALUES (88, '^cum$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (89, '^cunt$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (90, '^dick$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (91, '^dumb$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (92, '^dum\\s*bass?$', 'name_declined_profane', true, true, true);
+INSERT INTO "reservednames" VALUES (93, '^fag$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (94, '^faggot$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (95, '^fuck$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (96, '^fuk$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (97, '^hater$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (98, '^hooker$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (99, '^jackoff$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (100, '^jizz$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (101, '^kunt$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (102, '^nazi$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (103, '^negro$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (104, '^nigga$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (105, '^nigger$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (106, '^nipple$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (107, '^nude$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (108, '^nudity$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (109, '^penis$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (110, '^pussy$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (111, '^rape$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (112, '^rapist$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (113, '^sex$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (114, '^shit$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (115, '^skank$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (116, '^slut$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (117, '^suck$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (118, '^sucks$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (119, '^sucker$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (120, '^tit$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (121, '^tits$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (122, '^twat$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (123, '^vagina$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (124, '^whore$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (125, '^wtf$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (126, '^piss$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (127, '^damn$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (128, '^luke$', 'name_declined_fictionally_reserved', true, false, false);
+INSERT INTO "reservednames" VALUES (129, '^darth$', 'name_declined_fictionally_reserved', true, false, false);
+INSERT INTO "reservednames" VALUES (130, '^vader$', 'name_declined_fictionally_reserved', false, true, false);
+INSERT INTO "reservednames" VALUES (131, '^han$', 'name_declined_fictionally_reserved', true, false, false);
+INSERT INTO "reservednames" VALUES (132, '^solo$', 'name_declined_fictionally_reserved', false, true, false);
+INSERT INTO "reservednames" VALUES (133, '^leia$', 'name_declined_fictionally_reserved', true, false, false);
+INSERT INTO "reservednames" VALUES (134, '^emperor$ ', 'name_declined_fictionally_reserved', true, false, false);
+INSERT INTO "reservednames" VALUES (135, '^notcho67$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (136, '^mulligan$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (137, '^bitsnbytes$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (138, '^farstar_medic$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (139, '^ilikenwf$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (140, '^joshlarson$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (141, '^sweetcake$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (142, '^skorpios$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (143, '^telsia$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (144, '^fingies$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (145, '^niypi$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (146, '^caelen$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (147, '^light$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (149, '^mcurt$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (150, '^peej$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (151, '^synge$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (152, '^timm$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (153, '^treeku$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (154, '^wefi$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (155, '^royalguard$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (156, '^estouk$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (157, '^atheenah$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (158, '^cable$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (159, '^oblitrator$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (160, '^katarn$ ', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (161, '^boba$ ', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (162, '^fett$ ', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (163, '^sidious$ ', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (164, '^tarkin$ ', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (165, '^dooku$ ', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (166, '^skywalker$ ', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (167, '^organa$ ', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (168, '^windu$ ', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (169, '^yoda$ ', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (170, '^obi\\s*wan$', 'name_declined_fictionally_reserved', true, true, true);
+INSERT INTO "reservednames" VALUES (171, '^mara\\s*jade$', 'name_declined_fictionally_reserved', true, true, true);
+INSERT INTO "reservednames" VALUES (172, '^old\\s*man$', 'name_declined_developer', false, false, true);
+INSERT INTO "reservednames" VALUES (173, '^tit\\s*ties$', 'name_declined_profane', true, true, true);
+INSERT INTO "reservednames" VALUES (174, '^hjal$', 'name_declined_developer', true, true, false);
+INSERT INTO "reservednames" VALUES (175, '^t\\s*squarred$', 'name_declined_developer', true, true, false);
+INSERT INTO "reservednames" VALUES (176, '^pex$', 'name_declined_developer', true, true, false);
+INSERT INTO "reservednames" VALUES (177, '^qui\\s*gon$', 'name_declined_fictionally_reserved', true, true, true);
+INSERT INTO "reservednames" VALUES (178, '^corran\\s*horn$', 'name_declined_fictionally_reserved', true, true, true);
+INSERT INTO "reservednames" VALUES (179, '^Ahsoka$', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (180, '^wat\\s*to$', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (181, '^sunrider$', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (182, '^bondara$', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (183, '^jeff\\s*freeman$', 'name_declined_developer', false, false, true);
+INSERT INTO "reservednames" VALUES (184, '^adept\\s*strain$', 'name_declined_developer', true, true, true);
+INSERT INTO "reservednames" VALUES (185, '^bnar$', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (186, '^revan$', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (187, '^malak$', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (188, '^kreia$', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (189, '^traya$', 'name_declined_fictionally_reserved', true, true, false);
+INSERT INTO "reservednames" VALUES (190, '^schnie\\s*del$', 'name_declined_profane', true, true, true);
+INSERT INTO "reservednames" VALUES (191, '^möp\\s*se$', 'name_declined_profane', true, true, true);
+INSERT INTO "reservednames" VALUES (192, '^schwanz$', 'name_declined_profane', true, true, true);
+INSERT INTO "reservednames" VALUES (193, '^muschi$', 'name_declined_profane', true, true, true);
+INSERT INTO "reservednames" VALUES (194, '^fotze$', 'name_declined_profane', true, true, true);
+INSERT INTO "reservednames" VALUES (195, '^jar\\s*jar$', 'name_declined_fictionally_reserved', true, true, true);
+INSERT INTO "reservednames" VALUES (196, '^arsch\\s*loch$', 'name_declined_profane', true, true, true);
+INSERT INTO "reservednames" VALUES (197, '^fick\\s*en$', 'name_declined_profane', true, true, true);
+INSERT INTO "reservednames" VALUES (198, '^fik\\s*ken$', 'name_declined_profane', true, true, true);
+INSERT INTO "reservednames" VALUES (199, '^fic\\s*ken$', 'name_declined_profane', true, true, true);
+INSERT INTO "reservednames" VALUES (200, '^ja\\s*bba$', 'name_declined_fictionally_reserved', true, true, true);
+INSERT INTO "reservednames" VALUES (201, '^arsch$', 'name_declined_profane', true, true, false);
+INSERT INTO "reservednames" VALUES (202, '^jab\\s*ba$', 'name_declined_fictionally_reserved', true, true, true);
+INSERT INTO "reservednames" VALUES (203, '^jabb\\s*a$', 'name_declined_fictionally_reserved', true, true, true);
+INSERT INTO "reservednames" VALUES (148, '^master\\s*idler$', 'name_declined_developer', false, false, false);
+INSERT INTO "reservednames" VALUES (204, '^gief$', 'name_declined_developer', true, false, false);
+INSERT INTO "reservednames" VALUES (205, '^server$', 'name_declined_developer', true, false, false);
+
+
+--
+-- TOC entry 2062 (class 0 OID 0)
+-- Dependencies: 186
+-- Name: reservednames_id_seq; Type: SEQUENCE SET; Schema: public; Owner: nge
+--
+
+SELECT pg_catalog.setval('"reservednames_id_seq"', 205, true);
+
+
+--
+-- TOC entry 2028 (class 0 OID 16651)
+-- Dependencies: 181
+-- Data for Name: reservedstaffnames; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+INSERT INTO "reservedstaffnames" VALUES (5, 'notcho67');
+INSERT INTO "reservedstaffnames" VALUES (6, 'mulligan');
+INSERT INTO "reservedstaffnames" VALUES (7, 'bitsnbytes');
+INSERT INTO "reservedstaffnames" VALUES (9, 'farstar_medic');
+INSERT INTO "reservedstaffnames" VALUES (10, 'ilikenwf');
+INSERT INTO "reservedstaffnames" VALUES (11, 'joshlarson');
+INSERT INTO "reservedstaffnames" VALUES (25, 'abbs');
+INSERT INTO "reservedstaffnames" VALUES (1, 'skorpios');
+INSERT INTO "reservedstaffnames" VALUES (2, 'telsia');
+INSERT INTO "reservedstaffnames" VALUES (3, 'fingies');
+INSERT INTO "reservedstaffnames" VALUES (4, 'niypi');
+INSERT INTO "reservedstaffnames" VALUES (8, 'caelen');
+INSERT INTO "reservedstaffnames" VALUES (12, 'light');
+INSERT INTO "reservedstaffnames" VALUES (13, 'master idler');
+INSERT INTO "reservedstaffnames" VALUES (14, 'mcurt');
+INSERT INTO "reservedstaffnames" VALUES (15, 'peej');
+INSERT INTO "reservedstaffnames" VALUES (16, 'synge');
+INSERT INTO "reservedstaffnames" VALUES (17, 'timm');
+INSERT INTO "reservedstaffnames" VALUES (18, 'treeku');
+INSERT INTO "reservedstaffnames" VALUES (19, 'wefi');
+INSERT INTO "reservedstaffnames" VALUES (20, 'royalguard');
+INSERT INTO "reservedstaffnames" VALUES (21, 'estouk');
+INSERT INTO "reservedstaffnames" VALUES (22, 'atheenah');
+INSERT INTO "reservedstaffnames" VALUES (23, 'cable');
+INSERT INTO "reservedstaffnames" VALUES (24, 'oblitrator');
+
+
+--
+-- TOC entry 2063 (class 0 OID 0)
+-- Dependencies: 182
+-- Name: reservedstaffnames_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
+--
+
+SELECT pg_catalog.setval('"reservedstaffnames_id_seq"', 1, false);
+
+
+SELECT pg_catalog.setval('"sessions_id_seq"', 1, true);
+
+--
+-- TOC entry 2034 (class 0 OID 16752)
+-- Dependencies: 187
+-- Data for Name: temp_reserved_char_names; Type: TABLE DATA; Schema: public; Owner: nge
+--
+
+INSERT INTO "temp_reserved_char_names" VALUES (2, 'testchar');
+INSERT INTO "temp_reserved_char_names" VALUES (3, 'testchar2');
+
+
+--
+-- TOC entry 1996 (class 2606 OID 16676)
+-- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
+--
+
+ALTER TABLE ONLY "accounts"
+ ADD CONSTRAINT "accounts_pkey" PRIMARY KEY ("id");
+
+
+--
+-- TOC entry 1998 (class 2606 OID 16678)
+-- Name: characters_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
+--
+
+ALTER TABLE ONLY "characters"
+ ADD CONSTRAINT "characters_pkey" PRIMARY KEY ("id");
+
+
+--
+-- TOC entry 2000 (class 2606 OID 16680)
+-- Name: connectionServers_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
+--
+
+ALTER TABLE ONLY "connectionServers"
+ ADD CONSTRAINT "connectionServers_pkey" PRIMARY KEY ("id");
+
+
+--
+-- TOC entry 2002 (class 2606 OID 16682)
+-- Name: fictionallyreservednames_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
+--
+
+ALTER TABLE ONLY "fictionallyreservednames"
+ ADD CONSTRAINT "fictionallyreservednames_pkey" PRIMARY KEY ("id");
+
+
+--
+-- TOC entry 2004 (class 2606 OID 16684)
+-- Name: galaxies_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
+--
+
+ALTER TABLE ONLY "galaxies"
+ ADD CONSTRAINT "galaxies_pkey" PRIMARY KEY ("id");
+
+
+--
+-- TOC entry 2006 (class 2606 OID 16686)
+-- Name: id; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
+--
+
+ALTER TABLE ONLY "highestid"
+ ADD CONSTRAINT "id" PRIMARY KEY ("id");
+
+
+--
+-- TOC entry 2008 (class 2606 OID 16688)
+-- Name: profanenames_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
+--
+
+ALTER TABLE ONLY "profanenames"
+ ADD CONSTRAINT "profanenames_pkey" PRIMARY KEY ("id");
+
+
+--
+-- TOC entry 2010 (class 2606 OID 16690)
+-- Name: reservedstaffnames_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
+--
+
+ALTER TABLE ONLY "reservedstaffnames"
+ ADD CONSTRAINT "reservedstaffnames_pkey" PRIMARY KEY ("id");
+
+
+--
+-- TOC entry 2012 (class 2606 OID 16692)
+-- Name: sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
+--
+
+ALTER TABLE ONLY "sessions"
+ ADD CONSTRAINT "sessions_pkey" PRIMARY KEY ("id");
+
+
+--
+-- TOC entry 2014 (class 2606 OID 16756)
+-- Name: temp_reserved_char_names_primary; Type: CONSTRAINT; Schema: public; Owner: nge; Tablespace:
+--
+
+ALTER TABLE ONLY "temp_reserved_char_names"
+ ADD CONSTRAINT "temp_reserved_char_names_primary" PRIMARY KEY ("accountId");
+
+
+--
+-- TOC entry 2041 (class 0 OID 0)
+-- Dependencies: 6
+-- Name: public; Type: ACL; Schema: -; Owner: postgres
+--
+
+REVOKE ALL ON SCHEMA "public" FROM PUBLIC;
+REVOKE ALL ON SCHEMA "public" FROM "postgres";
+GRANT ALL ON SCHEMA "public" TO "postgres";
+GRANT ALL ON SCHEMA "public" TO PUBLIC;
+
+
+--
+-- TOC entry 2050 (class 0 OID 0)
+-- Dependencies: 185
+-- Name: reservednames; Type: ACL; Schema: public; Owner: nge
+--
+
+REVOKE ALL ON TABLE "reservednames" FROM PUBLIC;
+REVOKE ALL ON TABLE "reservednames" FROM "nge";
+GRANT ALL ON TABLE "reservednames" TO "nge";
+
+
+--
+-- TOC entry 2052 (class 0 OID 0)
+-- Dependencies: 186
+-- Name: reservednames_id_seq; Type: ACL; Schema: public; Owner: nge
+--
+
+REVOKE ALL ON SEQUENCE "reservednames_id_seq" FROM PUBLIC;
+REVOKE ALL ON SEQUENCE "reservednames_id_seq" FROM "nge";
+GRANT ALL ON SEQUENCE "reservednames_id_seq" TO "nge";
+
+
+-- Completed on 2013-11-24 10:56:37
+
+--
+-- PostgreSQL database dump complete
+--
+
diff --git a/nge.backup b/nge.backup
index 049637b4..1a761380 100644
Binary files a/nge.backup and b/nge.backup differ
diff --git a/nge.cfg b/nge.cfg
index 328f9018..b11b4219 100644
--- a/nge.cfg
+++ b/nge.cfg
@@ -11,3 +11,5 @@ DB.URL=localhost
DB.PASS=nge
GALAXY_ID=2
GALAXY_NAME=Local Connection
+XPMULTIPLIER=1.0
+MAXNUMBEROFCHARACTERS=2
diff --git a/ngengine_public.jar b/ngengine_public.jar
index 326b2a85..079df450 100644
Binary files a/ngengine_public.jar and b/ngengine_public.jar differ
diff --git a/odb/WipeAllOdbFolders_ONLY_EXECUTE_IN_ODB_FOLDER.bat b/odb/WipeAllOdbFolders_ONLY_EXECUTE_IN_ODB_FOLDER.bat
new file mode 100644
index 00000000..6fa1c55b
--- /dev/null
+++ b/odb/WipeAllOdbFolders_ONLY_EXECUTE_IN_ODB_FOLDER.bat
@@ -0,0 +1,35 @@
+:: Odb file wiper by Charon
+:: Use at your own risk!
+:: Do NOT execute outside the odb folder
+:: because it deletes files in subfolders!
+
+@echo off
+cls
+setlocal EnableDelayedExpansion
+
+for %%* in (.) do set CurrDirName=%%~n*
+
+if "%CurrDirName%" == "eclipse" (
+ echo You are running this script from inside Eclipse ^^!
+ echo You must execute it via windows in the odb folder ONLY ^^!
+ echo Terminating for your own data safety.
+ pause
+ EXIT
+)
+
+if NOT "%CurrDirName%" == "odb" (
+ echo You are not executing this file from the odb folder^^!
+ echo Terminating for your own data safety.
+ pause
+ EXIT
+)
+
+set /a count=0
+
+for /d %%d in (*) do (
+ set /a count+=1
+ @echo !count!. %%d
+ del "%%d\*.*" /s/q
+ echo. 2>%%d\placeholder.txt
+)
+setlocal DisableDelayedExpansion
\ No newline at end of file
diff --git a/odb/auction/placeholder.txt b/odb/auction/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/odb/bounties/placeholder.txt b/odb/bounties/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/odb/building/placeholder.txt b/odb/building/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/odb/chatRooms/placeholder.txt b/odb/chatRooms/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/odb/doids/placeholder.txt b/odb/doids/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/odb/oids/placeholder.txt b/odb/oids/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/odb/resourcehistory/placeholder.txt b/odb/resourcehistory/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/odb/resourceroots/placeholder.txt b/odb/resourceroots/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/odb/resources/placeholder.txt b/odb/resources/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/odb/swgobjects/placeholder.txt b/odb/swgobjects/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/options.cfg b/options.cfg
index 6b6462d7..03abf4cf 100644
--- a/options.cfg
+++ b/options.cfg
@@ -1 +1,7 @@
LOAD.SNAPSHOT_OBJECTS=1
+LOAD.BUILDOUT_OBJECTS=1
+#LOAD.BUILDOUT_ONLY_FOR="dantooine"
+LOAD.RESOURCE.SYSTEM=1
+
+# Misc
+CLEAN.ODB.FOLDERS=0
\ No newline at end of file
diff --git a/scripts/buffs/armor_break.py b/scripts/buffs/armor_break.py
new file mode 100644
index 00000000..f0a2f58e
--- /dev/null
+++ b/scripts/buffs/armor_break.py
@@ -0,0 +1,14 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ actor.addSkillMod('expertise_innate_reduction_all_player', 6 * buff.getStacks())
+ actor.addSkillMod('expertise_innate_reduction_all_mob', 600 * buff.getStacks())
+ return
+
+def remove(core, actor, buff):
+ actor.deductSkillMod('expertise_innate_reduction_all_mob', 600 * buff.getStacks())
+ actor.deductSkillMod('expertise_innate_reduction_all_player', 6 * buff.getStacks())
+ return
diff --git a/scripts/buffs/bh_armor_sprint_1.py b/scripts/buffs/bh_armor_sprint_1.py
new file mode 100644
index 00000000..5f39a64d
--- /dev/null
+++ b/scripts/buffs/bh_armor_sprint_1.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 6)
+ core.skillModService.addSkillMod(actor, 'movement_resist_snare', 100)
+
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 6)
+ core.skillModService.deductSkillMod(actor, 'movement_resist_snare', 100)
+
+ return
diff --git a/scripts/buffs/bh_cover_1.py b/scripts/buffs/bh_cover_1.py
new file mode 100644
index 00000000..0b7e2859
--- /dev/null
+++ b/scripts/buffs/bh_cover_1.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'expertise_damage_all', 10)
+ core.skillModService.addSkillMod(actor, 'expertise_glancing_blow_ranged', 40)
+ actor.setRadarVisible(False)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'expertise_damage_all', 10)
+ core.skillModService.deductSkillMod(actor, 'expertise_glancing_blow_ranged', 40)
+ actor.setRadarVisible(True)
+ return
+
\ No newline at end of file
diff --git a/scripts/buffs/bh_power_sprint.py b/scripts/buffs/bh_power_sprint.py
new file mode 100644
index 00000000..e7550d0d
--- /dev/null
+++ b/scripts/buffs/bh_power_sprint.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 6)
+ core.skillModService.addSkillMod(actor, 'movement_resist_snare', 100)
+
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 6)
+ core.skillModService.deductSkillMod(actor, 'movement_resist_snare', 100)
+
+ return
\ No newline at end of file
diff --git a/scripts/buffs/bh_prescience.py b/scripts/buffs/bh_prescience.py
index e09c02e5..c60417a0 100644
--- a/scripts/buffs/bh_prescience.py
+++ b/scripts/buffs/bh_prescience.py
@@ -2,7 +2,10 @@ import sys
def setup(core, actor, buff):
return
+
+def add(core, actor, buff):
+ return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
return
\ No newline at end of file
diff --git a/scripts/buffs/bh_return_fire_1.py b/scripts/buffs/bh_return_fire_1.py
new file mode 100644
index 00000000..95612d87
--- /dev/null
+++ b/scripts/buffs/bh_return_fire_1.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, actor, buff):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_bh_return_fire')))
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'expertise_bh_return_fire_1', 1)
+
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'expertise_bh_return_fire_1', 1)
+ return
+
\ No newline at end of file
diff --git a/scripts/buffs/bh_shields.py b/scripts/buffs/bh_shields.py
new file mode 100644
index 00000000..36115d7f
--- /dev/null
+++ b/scripts/buffs/bh_shields.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'combat_divide_damage_taken', 1)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'combat_divide_damage_taken', 1)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/bh_shields_charged.py b/scripts/buffs/bh_shields_charged.py
new file mode 100644
index 00000000..d66644af
--- /dev/null
+++ b/scripts/buffs/bh_shields_charged.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'combat_multiply_damage_given', 1)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'combat_multiply_damage_given', 1)
+ return
+
\ No newline at end of file
diff --git a/scripts/buffs/bleeding.py b/scripts/buffs/bleeding.py
index e09c02e5..c60417a0 100644
--- a/scripts/buffs/bleeding.py
+++ b/scripts/buffs/bleeding.py
@@ -2,7 +2,10 @@ import sys
def setup(core, actor, buff):
return
+
+def add(core, actor, buff):
+ return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
return
\ No newline at end of file
diff --git a/scripts/buffs/buildabuff_inspiration.py b/scripts/buffs/buildabuff_inspiration.py
new file mode 100644
index 00000000..35a49556
--- /dev/null
+++ b/scripts/buffs/buildabuff_inspiration.py
@@ -0,0 +1,30 @@
+from resources.common import BuffBuilder
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+
+ buffWorkshop = actor.getAttachment('buffWorkshop')
+
+ if buffWorkshop is None:
+ return
+
+ attached = actor.getAttachment('inspireDuration')
+
+ buff.setDuration(float(actor.getAttachment('inspireDuration') * 60))
+
+ for BuffItem in buffWorkshop:
+ core.skillModService.addSkillMod(actor, BuffItem.getSkillName(), BuffItem.getAffectAmount())
+
+ return
+
+def remove(core, actor, buff):
+ if actor.getAttachment('buffWorkshop') is not None:
+
+ for BuffItem in actor.getAttachment('buffWorkshop'):
+ core.skillModService.deductSkillMod(actor, BuffItem.getSkillName(), BuffItem.getAffectAmount())
+
+ actor.setAttachment('buffWorkshop', None)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/co_base_of_operations.py b/scripts/buffs/co_base_of_operations.py
new file mode 100644
index 00000000..8c8eb346
--- /dev/null
+++ b/scripts/buffs/co_base_of_operations.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'expertise_innate_protection_all', 1000)
+ core.skillModService.addSkillMod(actor, 'expertise_critical_niche_all', 5)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'expertise_innate_protection_all', 1000)
+ core.skillModService.deductSkillMod(actor, 'expertise_critical_niche_all', 5)
+ return
+
\ No newline at end of file
diff --git a/scripts/buffs/co_first_aid_training.py b/scripts/buffs/co_first_aid_training.py
new file mode 100644
index 00000000..8679678c
--- /dev/null
+++ b/scripts/buffs/co_first_aid_training.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'expertise_healing_all', 20)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'expertise_healing_all', 20)
+ return
+
\ No newline at end of file
diff --git a/scripts/buffs/co_position_secured.py b/scripts/buffs/co_position_secured.py
new file mode 100644
index 00000000..0885ccd9
--- /dev/null
+++ b/scripts/buffs/co_position_secured.py
@@ -0,0 +1,53 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+
+ actor.setSpeedMultiplierMod(0)
+
+ core.skillModService.addSkillMod(actor, 'precision_modified', 200)
+ core.skillModService.addSkillMod(actor, 'strength_modified', 200)
+
+ if actor.getSkillMod('expertise_action_line_co_imp_pos_sec'):
+ core.skillModService.addSkillMod(actor, 'expertise_action_all', actor.getSkillMod('expertise_action_line_co_imp_pos_sec').getBase())
+ #if actor.getSkillMod('expertise_co_pos_secured_line_burst_fire_proc'):
+ if actor.getSkillMod('expertise_co_pos_secured_line_burst_fire_devastation_bonus'):
+ core.skillModService.addSkillMod(actor, 'expertise_devastation_bonus', actor.getSkillMod('expertise_co_pos_secured_line_burst_fire_devastation_bonus').getBase() * 10)
+ if actor.getSkillMod('expertise_co_pos_secured_line_critical'):
+ core.skillModService.addSkillMod(actor, 'display_only_critical', actor.getSkillMod('expertise_co_pos_secured_line_critical').getBase() * 100)
+ if actor.getSkillMod('expertise_co_pos_secured_line_protection'):
+ core.skillModService.addSkillMod(actor, 'display_only_expertise_critical_hit_reduction', actor.getSkillMod('expertise_co_pos_secured_line_protection').getBase() * 100)
+
+ if actor.hasSkill('expertise_co_base_of_operations_1'):
+ core.buffService.addBuffToCreature(actor, 'co_base_of_operations')
+
+ return
+
+def remove(core, actor, buff):
+
+ actor.setSpeedMultiplierMod(1)
+
+ core.skillModService.deductSkillMod(actor, 'precision_modified', 200)
+ core.skillModService.deductSkillMod(actor, 'strength_modified', 200)
+
+ if actor.getSkillMod('expertise_action_line_co_imp_pos_sec'):
+ core.skillModService.deductSkillMod(actor, 'expertise_action_all', actor.getSkillMod('expertise_action_line_co_imp_pos_sec').getBase())
+ #if actor.getSkillMod('expertise_co_pos_secured_line_burst_fire_proc'):
+ if actor.getSkillMod('expertise_co_pos_secured_line_burst_fire_devastation_bonus'):
+ core.skillModService.deductSkillMod(actor, 'expertise_devastation_bonus', actor.getSkillMod('expertise_co_pos_secured_line_burst_fire_devastation_bonus').getBase() * 10)
+ if actor.getSkillMod('expertise_co_pos_secured_line_critical'):
+ core.skillModService.deductSkillMod(actor, 'display_only_critical', actor.getSkillMod('expertise_co_pos_secured_line_critical').getBase() * 100)
+ if actor.getSkillMod('expertise_co_pos_secured_line_protection'):
+ core.skillModService.deductSkillMod(actor, 'display_only_expertise_critical_hit_reduction', actor.getSkillMod('expertise_co_pos_secured_line_protection').getBase() * 100)
+
+ if actor.hasSkill('expertise_co_base_of_operations_1'):
+ if actor.getGroupId() != 0 and core.objectService.getObject(actor.getGroupId()):
+ group = core.objectService.getObject(actor.getGroupId())
+ for member in group.getMemberList():
+ core.buffService.removeBuffFromCreature(member, member.getBuffByName('co_base_of_operations'))
+ else:
+ core.buffService.removeBuffFromCreature(actor, actor.getBuffByName('co_base_of_operations'))
+
+ return
\ No newline at end of file
diff --git a/scripts/buffs/co_stand_fast.py b/scripts/buffs/co_stand_fast.py
new file mode 100644
index 00000000..8f8be535
--- /dev/null
+++ b/scripts/buffs/co_stand_fast.py
@@ -0,0 +1,21 @@
+import sys
+
+def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_co_stand_fast'):
+ buff.setDuration(buff.getDuration() + actor.getSkillMod('expertise_buff_duration_line_co_stand_fast').getBase())
+ return
+
+def add(core, actor, buff):
+ if actor.getSkillMod('expertise_damage_decrease_percentage'):
+ core.skillModService.addSkillMod(actor, 'damage_decrease_percentage', (60 + actor.getSkillMod('expertise_damage_decrease_percentage').getBase()) / 2)
+ else:
+ core.skillModService.addSkillMod(actor, 'damage_decrease_percentage', 60 / 2)
+
+ return
+
+def remove(core, actor, buff):
+ if actor.getSkillMod('expertise_damage_decrease_percentage'):
+ core.skillModService.deductSkillMod(actor, 'damage_decrease_percentage', (60 + actor.getSkillMod('expertise_damage_decrease_percentage').getBase()) / 2)
+ else:
+ core.skillModService.deductSkillMod(actor, 'damage_decrease_percentage', 60 / 2)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/en_action_regen.py b/scripts/buffs/en_action_regen.py
new file mode 100644
index 00000000..850186d0
--- /dev/null
+++ b/scripts/buffs/en_action_regen.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'expertise_action_weapon_melee', 60)
+
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'expertise_action_weapon_melee', 60)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/en_debuff_thrill.py b/scripts/buffs/en_debuff_thrill.py
new file mode 100644
index 00000000..9a25438b
--- /dev/null
+++ b/scripts/buffs/en_debuff_thrill.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'critical_hit_vulnerable', 2)
+
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'critical_hit_vulnerable', 2)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/en_debuff_thrill_1.py b/scripts/buffs/en_debuff_thrill_1.py
new file mode 100644
index 00000000..cbcb2ac4
--- /dev/null
+++ b/scripts/buffs/en_debuff_thrill_1.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'critical_hit_vulnerable', 4)
+
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'critical_hit_vulnerable', 4)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/en_debuff_thrill_2.py b/scripts/buffs/en_debuff_thrill_2.py
new file mode 100644
index 00000000..6b887e82
--- /dev/null
+++ b/scripts/buffs/en_debuff_thrill_2.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'critical_hit_vulnerable', 6)
+
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'critical_hit_vulnerable', 6)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/en_spiral_kick_snare.py b/scripts/buffs/en_spiral_kick_snare.py
new file mode 100644
index 00000000..2ee81fe9
--- /dev/null
+++ b/scripts/buffs/en_spiral_kick_snare.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/en_sprint.py b/scripts/buffs/en_sprint.py
new file mode 100644
index 00000000..288b25b1
--- /dev/null
+++ b/scripts/buffs/en_sprint.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement_resist_snare', 100)
+ core.skillModService.addSkillMod(actor, 'movement', 5)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
+ core.skillModService.deductSkillMod(actor, 'movement_resist_snare', 100)
+ return
+
\ No newline at end of file
diff --git a/scripts/buffs/en_sweeping_pirouette_root.py b/scripts/buffs/en_sweeping_pirouette_root.py
new file mode 100644
index 00000000..42418564
--- /dev/null
+++ b/scripts/buffs/en_sweeping_pirouette_root.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 10)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 10)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/en_unhealthy_fixation_debuff.py b/scripts/buffs/en_unhealthy_fixation_debuff.py
new file mode 100644
index 00000000..7dfe77af
--- /dev/null
+++ b/scripts/buffs/en_unhealthy_fixation_debuff.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'en_unhealthy_stun', 1)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'en_unhealthy_stun', 1)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/en_void_dance_buff.py b/scripts/buffs/en_void_dance_buff.py
new file mode 100644
index 00000000..3197e246
--- /dev/null
+++ b/scripts/buffs/en_void_dance_buff.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'expertise_glancing_blow_all', 60)
+
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'expertise_glancing_blow_all', 60)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/en_void_dance_buff_1.py b/scripts/buffs/en_void_dance_buff_1.py
new file mode 100644
index 00000000..6a37025d
--- /dev/null
+++ b/scripts/buffs/en_void_dance_buff_1.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'expertise_glancing_blow_all', 65)
+
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'expertise_glancing_blow_all', 65)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/en_void_dance_buff_2.py b/scripts/buffs/en_void_dance_buff_2.py
new file mode 100644
index 00000000..bcd31db8
--- /dev/null
+++ b/scripts/buffs/en_void_dance_buff_2.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'expertise_glancing_blow_all', 70)
+
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'expertise_glancing_blow_all', 70)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/en_void_dance_buff_3.py b/scripts/buffs/en_void_dance_buff_3.py
new file mode 100644
index 00000000..e2d98d20
--- /dev/null
+++ b/scripts/buffs/en_void_dance_buff_3.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'expertise_glancing_blow_all', 75)
+
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'expertise_glancing_blow_all', 75)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/flawless_bead_1.py b/scripts/buffs/flawless_bead_1.py
index 84123a88..9d402987 100644
--- a/scripts/buffs/flawless_bead_1.py
+++ b/scripts/buffs/flawless_bead_1.py
@@ -2,6 +2,9 @@ import sys
def setup(core, actor, buff):
return
+
+def add(core, actor, buff):
+ return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
return
\ No newline at end of file
diff --git a/scripts/buffs/flawless_bead_2.py b/scripts/buffs/flawless_bead_2.py
index 84123a88..9d402987 100644
--- a/scripts/buffs/flawless_bead_2.py
+++ b/scripts/buffs/flawless_bead_2.py
@@ -2,6 +2,9 @@ import sys
def setup(core, actor, buff):
return
+
+def add(core, actor, buff):
+ return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
return
\ No newline at end of file
diff --git a/scripts/buffs/flawless_bead_3.py b/scripts/buffs/flawless_bead_3.py
index 84123a88..9d402987 100644
--- a/scripts/buffs/flawless_bead_3.py
+++ b/scripts/buffs/flawless_bead_3.py
@@ -2,6 +2,9 @@ import sys
def setup(core, actor, buff):
return
+
+def add(core, actor, buff):
+ return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
return
\ No newline at end of file
diff --git a/scripts/buffs/fs_ae_dm_cc_0.py b/scripts/buffs/fs_ae_dm_cc_0.py
index 493481d7..2ee81fe9 100644
--- a/scripts/buffs/fs_ae_dm_cc_0.py
+++ b/scripts/buffs/fs_ae_dm_cc_0.py
@@ -1,10 +1,12 @@
import sys
def setup(core, actor, buff):
- actor.setSpeedMultiplierBase(0.5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
- return
-
\ No newline at end of file
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/fs_ae_dm_cc_1.py b/scripts/buffs/fs_ae_dm_cc_1.py
index 493481d7..2ee81fe9 100644
--- a/scripts/buffs/fs_ae_dm_cc_1.py
+++ b/scripts/buffs/fs_ae_dm_cc_1.py
@@ -1,10 +1,12 @@
import sys
def setup(core, actor, buff):
- actor.setSpeedMultiplierBase(0.5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
- return
-
\ No newline at end of file
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/fs_ae_dm_cc_2.py b/scripts/buffs/fs_ae_dm_cc_2.py
index 493481d7..2ee81fe9 100644
--- a/scripts/buffs/fs_ae_dm_cc_2.py
+++ b/scripts/buffs/fs_ae_dm_cc_2.py
@@ -1,10 +1,12 @@
import sys
def setup(core, actor, buff):
- actor.setSpeedMultiplierBase(0.5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
- return
-
\ No newline at end of file
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/fs_ae_dm_cc_3.py b/scripts/buffs/fs_ae_dm_cc_3.py
index 493481d7..2ee81fe9 100644
--- a/scripts/buffs/fs_ae_dm_cc_3.py
+++ b/scripts/buffs/fs_ae_dm_cc_3.py
@@ -1,10 +1,12 @@
import sys
def setup(core, actor, buff):
- actor.setSpeedMultiplierBase(0.5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
- return
-
\ No newline at end of file
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/fs_ae_dm_cc_4.py b/scripts/buffs/fs_ae_dm_cc_4.py
index 493481d7..2ee81fe9 100644
--- a/scripts/buffs/fs_ae_dm_cc_4.py
+++ b/scripts/buffs/fs_ae_dm_cc_4.py
@@ -1,10 +1,12 @@
import sys
def setup(core, actor, buff):
- actor.setSpeedMultiplierBase(0.5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
- return
-
\ No newline at end of file
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/fs_ae_dm_cc_5.py b/scripts/buffs/fs_ae_dm_cc_5.py
index 493481d7..2ee81fe9 100644
--- a/scripts/buffs/fs_ae_dm_cc_5.py
+++ b/scripts/buffs/fs_ae_dm_cc_5.py
@@ -1,10 +1,12 @@
import sys
def setup(core, actor, buff):
- actor.setSpeedMultiplierBase(0.5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
- return
-
\ No newline at end of file
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/fs_ae_dm_cc_6.py b/scripts/buffs/fs_ae_dm_cc_6.py
index 493481d7..2ee81fe9 100644
--- a/scripts/buffs/fs_ae_dm_cc_6.py
+++ b/scripts/buffs/fs_ae_dm_cc_6.py
@@ -1,10 +1,12 @@
import sys
def setup(core, actor, buff):
- actor.setSpeedMultiplierBase(0.5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
- return
-
\ No newline at end of file
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/fs_buff_ca_1.py b/scripts/buffs/fs_buff_ca_1.py
index 5fb1239f..837e11f7 100644
--- a/scripts/buffs/fs_buff_ca_1.py
+++ b/scripts/buffs/fs_buff_ca_1.py
@@ -1,12 +1,15 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
actor.playEffectObject('appearance/pt_sokan_focus.prt', 'fs_buff_ca_1')
core.skillModService.addSkillMod(actor, 'expertise_focus', 1)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_focus', 1)
return
\ No newline at end of file
diff --git a/scripts/buffs/fs_buff_def_1_1.py b/scripts/buffs/fs_buff_def_1_1.py
index 0d7ad4dd..743dc69b 100644
--- a/scripts/buffs/fs_buff_def_1_1.py
+++ b/scripts/buffs/fs_buff_def_1_1.py
@@ -1,12 +1,15 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
actor.playEffectObject('appearance/pt_force_avoid_incapacitation.prt', 'fs_buff_def_1_1')
core.skillModService.addSkillMod(actor, 'expertise_stance', 1)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_stance', 1)
return
\ No newline at end of file
diff --git a/scripts/buffs/fs_dm_cc_crit_1.py b/scripts/buffs/fs_dm_cc_crit_1.py
index 493481d7..df2109d8 100644
--- a/scripts/buffs/fs_dm_cc_crit_1.py
+++ b/scripts/buffs/fs_dm_cc_crit_1.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
actor.setSpeedMultiplierBase(0.5)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
actor.setSpeedMultiplierBase(1)
return
\ No newline at end of file
diff --git a/scripts/buffs/fs_dm_cc_crit_2.py b/scripts/buffs/fs_dm_cc_crit_2.py
index 493481d7..df2109d8 100644
--- a/scripts/buffs/fs_dm_cc_crit_2.py
+++ b/scripts/buffs/fs_dm_cc_crit_2.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
actor.setSpeedMultiplierBase(0.5)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
actor.setSpeedMultiplierBase(1)
return
\ No newline at end of file
diff --git a/scripts/buffs/fs_dm_cc_crit_3.py b/scripts/buffs/fs_dm_cc_crit_3.py
index 493481d7..df2109d8 100644
--- a/scripts/buffs/fs_dm_cc_crit_3.py
+++ b/scripts/buffs/fs_dm_cc_crit_3.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
actor.setSpeedMultiplierBase(0.5)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
actor.setSpeedMultiplierBase(1)
return
\ No newline at end of file
diff --git a/scripts/buffs/fs_dm_cc_crit_4.py b/scripts/buffs/fs_dm_cc_crit_4.py
index 493481d7..df2109d8 100644
--- a/scripts/buffs/fs_dm_cc_crit_4.py
+++ b/scripts/buffs/fs_dm_cc_crit_4.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
actor.setSpeedMultiplierBase(0.5)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
actor.setSpeedMultiplierBase(1)
return
\ No newline at end of file
diff --git a/scripts/buffs/fs_dm_cc_crit_5.py b/scripts/buffs/fs_dm_cc_crit_5.py
index 493481d7..df2109d8 100644
--- a/scripts/buffs/fs_dm_cc_crit_5.py
+++ b/scripts/buffs/fs_dm_cc_crit_5.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
actor.setSpeedMultiplierBase(0.5)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
actor.setSpeedMultiplierBase(1)
return
\ No newline at end of file
diff --git a/scripts/buffs/fs_force_run.py b/scripts/buffs/fs_force_run.py
index f691d76f..52fa68f4 100644
--- a/scripts/buffs/fs_force_run.py
+++ b/scripts/buffs/fs_force_run.py
@@ -1,9 +1,11 @@
import sys
-def setup(core, actor, buff):
+def setup(core, actor, buff):
buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_fs_force_run')))
- actor.playEffectObject('clienteffect/pl_force_run.cef', 'fs_force_run')
- actor.playEffectObject('appearance/pt_force_speed.prt', 'fs_force_run')
+ return
+
+def add(core, actor, buff):
+ actor.playEffectObject('clienteffect/pl_force_run.cef', '')
actor.setSpeedMultiplierBase(actor.getSpeedMultiplierBase() + 2.5 + (2.5 * (actor.getSkillModBase('expertise_movement_buff_fs_force_run')) / 100))
core.skillModService.addSkillMod(actor, 'slope_move', 5)
core.skillModService.addSkillMod(actor, 'movement_resist_snare', 100)
@@ -14,7 +16,7 @@ def setup(core, actor, buff):
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
actor.stopEffectObject('fs_force_run')
actor.setSpeedMultiplierBase(actor.getSpeedMultiplierBase() - 2.5 - (2.5 * (actor.getSkillModBase('expertise_movement_buff_fs_force_run')) / 100))
core.skillModService.deductSkillMod(actor, 'slope_move', 5)
diff --git a/scripts/buffs/fs_force_throw.py b/scripts/buffs/fs_force_throw.py
index f20ef882..2ee81fe9 100644
--- a/scripts/buffs/fs_force_throw.py
+++ b/scripts/buffs/fs_force_throw.py
@@ -1,11 +1,12 @@
import sys
def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'movement', float(-0.5))
-
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'movement', float(-0.5))
- return
-
\ No newline at end of file
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/fs_saber_reflect.py b/scripts/buffs/fs_saber_reflect.py
index cba5694e..815b8b7d 100644
--- a/scripts/buffs/fs_saber_reflect.py
+++ b/scripts/buffs/fs_saber_reflect.py
@@ -1,11 +1,14 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_saber_block', 1)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_saber_block', 1)
return
\ No newline at end of file
diff --git a/scripts/buffs/invis_fs_buff_invis_1.py b/scripts/buffs/invis_fs_buff_invis_1.py
index e09c02e5..84ef0058 100644
--- a/scripts/buffs/invis_fs_buff_invis_1.py
+++ b/scripts/buffs/invis_fs_buff_invis_1.py
@@ -2,7 +2,14 @@ import sys
def setup(core, actor, buff):
return
-
-def removeBuff(core, actor, buff):
+
+def add(core, actor, buff):
+ actor.setInStealth(True)
+ actor.setRadarVisible(False)
return
-
\ No newline at end of file
+
+def remove(core, actor, buff):
+ actor.setInStealth(False)
+ actor.setRadarVisible(True)
+ return
+
diff --git a/scripts/buffs/invis_sp_buff_invis_1.py b/scripts/buffs/invis_sp_buff_invis_1.py
new file mode 100644
index 00000000..9192dba7
--- /dev/null
+++ b/scripts/buffs/invis_sp_buff_invis_1.py
@@ -0,0 +1,26 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ actor.playEffectObject('clienteffect/npe_smoke_bomb.cef', '')
+ actor.setInStealth(True)
+ actor.setRadarVisible(False)
+
+ core.combatService.endCombat(actor)
+
+ if actor.getSkillMod('expertise_sp_without_a_trace_1'):
+ core.buffService.addBuffToCreature(actor, 'invis_sp_buff_invis_notrace_1')
+
+ return
+
+def remove(core, actor, buff):
+ actor.setInStealth(False)
+ actor.setRadarVisible(True)
+
+ if actor.getSkillMod('expertise_sp_without_a_trace_1'):
+ core.buffService.removeBuffFromCreature(actor, 'invis_sp_buff_invis_notrace_1')
+
+ return
+
diff --git a/scripts/buffs/invis_sp_buff_invis_notrace_1.py b/scripts/buffs/invis_sp_buff_invis_notrace_1.py
new file mode 100644
index 00000000..11b5dbd0
--- /dev/null
+++ b/scripts/buffs/invis_sp_buff_invis_notrace_1.py
@@ -0,0 +1,22 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ actor.setInStealth(True)
+ actor.setRadarVisible(False)
+
+ if actor.getSkillMod('expertise_sp_covert_mastery_1'):
+ core.skillModService.addSkillMod(actor, 'sp_covert_mastery')
+
+ return
+
+def remove(core, actor, buff):
+ actor.setInStealth(False)
+ actor.setRadarVisible(True)
+
+ if actor.getSkillMod('expertise_sp_covert_mastery_1'):
+ core.skillModService.deductSkillMod(actor, 'sp_covert_mastery')
+
+ return
diff --git a/scripts/buffs/invis_sp_buff_stealth_1.py b/scripts/buffs/invis_sp_buff_stealth_1.py
new file mode 100644
index 00000000..1b30ee83
--- /dev/null
+++ b/scripts/buffs/invis_sp_buff_stealth_1.py
@@ -0,0 +1,14 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ actor.setInStealth(True)
+ actor.setRadarVisible(False)
+ return
+
+def remove(core, actor, buff):
+ actor.setInStealth(False)
+ actor.setRadarVisible(True)
+ return
diff --git a/scripts/buffs/me_buff_action_1.py b/scripts/buffs/me_buff_action_1.py
index 32ae828b..7cd3cf3c 100644
--- a/scripts/buffs/me_buff_action_1.py
+++ b/scripts/buffs/me_buff_action_1.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'stamina_modified', 35)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'stamina_modified', 35)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_buff_action_2.py b/scripts/buffs/me_buff_action_2.py
index e49831fc..0d1a1718 100644
--- a/scripts/buffs/me_buff_action_2.py
+++ b/scripts/buffs/me_buff_action_2.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'stamina_modified', 80)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'stamina_modified', 80)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_buff_action_3.py b/scripts/buffs/me_buff_action_3.py
index ce6d1523..625808f2 100644
--- a/scripts/buffs/me_buff_action_3.py
+++ b/scripts/buffs/me_buff_action_3.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'stamina_modified', 250)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'stamina_modified', 250)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_buff_agility_1.py b/scripts/buffs/me_buff_agility_1.py
index f050bc50..cc0368a7 100644
--- a/scripts/buffs/me_buff_agility_1.py
+++ b/scripts/buffs/me_buff_agility_1.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'agility_modified', 15)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'agility_modified', 15)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_buff_agility_2.py b/scripts/buffs/me_buff_agility_2.py
index 780c1277..47ae13c6 100644
--- a/scripts/buffs/me_buff_agility_2.py
+++ b/scripts/buffs/me_buff_agility_2.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'agility_modified', 45)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'agility_modified', 45)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_buff_agility_3.py b/scripts/buffs/me_buff_agility_3.py
index d33b9f7a..83686069 100644
--- a/scripts/buffs/me_buff_agility_3.py
+++ b/scripts/buffs/me_buff_agility_3.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'agility_modified', 80)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'agility_modified', 80)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_buff_health.py b/scripts/buffs/me_buff_health.py
index 7a5a8676..f5396585 100644
--- a/scripts/buffs/me_buff_health.py
+++ b/scripts/buffs/me_buff_health.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'constitution_modified', 80)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'constitution_modified', 80)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_buff_health_0.py b/scripts/buffs/me_buff_health_0.py
index 7a850d74..513dabb4 100644
--- a/scripts/buffs/me_buff_health_0.py
+++ b/scripts/buffs/me_buff_health_0.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'constitution_modified', 35)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'constitution_modified', 35)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_buff_health_2.py b/scripts/buffs/me_buff_health_2.py
index a6e1381b..4c0a9502 100644
--- a/scripts/buffs/me_buff_health_2.py
+++ b/scripts/buffs/me_buff_health_2.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'constitution_modified', 250)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'constitution_modified', 250)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_buff_melee_gb_1.py b/scripts/buffs/me_buff_melee_gb_1.py
index 69c881a6..9819dcb3 100644
--- a/scripts/buffs/me_buff_melee_gb_1.py
+++ b/scripts/buffs/me_buff_melee_gb_1.py
@@ -1,11 +1,16 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'display_only_block', 1000)
core.skillModService.addSkillMod(actor, 'combat_block_value', 200)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'display_only_block', 1000)
core.skillModService.deductSkillMod(actor, 'combat_block_value', 200)
return
diff --git a/scripts/buffs/me_buff_precision_1.py b/scripts/buffs/me_buff_precision_1.py
index 6e0b34c6..6b24b151 100644
--- a/scripts/buffs/me_buff_precision_1.py
+++ b/scripts/buffs/me_buff_precision_1.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'precision_modified', 15)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'precision_modified', 15)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_buff_precision_2.py b/scripts/buffs/me_buff_precision_2.py
index 38bb1839..b3c2aab5 100644
--- a/scripts/buffs/me_buff_precision_2.py
+++ b/scripts/buffs/me_buff_precision_2.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'precision_modified', 45)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'precision_modified', 45)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_buff_precision_3.py b/scripts/buffs/me_buff_precision_3.py
index 19d4b742..40899ffb 100644
--- a/scripts/buffs/me_buff_precision_3.py
+++ b/scripts/buffs/me_buff_precision_3.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'precision_modified', 80)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'precision_modified', 80)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_buff_ranged_gb_1.py b/scripts/buffs/me_buff_ranged_gb_1.py
index 2bde9ec4..ce5770a8 100644
--- a/scripts/buffs/me_buff_ranged_gb_1.py
+++ b/scripts/buffs/me_buff_ranged_gb_1.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'display_only_dodge', 500)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'display_only_dodge', 500)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_buff_strength_1.py b/scripts/buffs/me_buff_strength_1.py
index df521dbc..fa50d073 100644
--- a/scripts/buffs/me_buff_strength_1.py
+++ b/scripts/buffs/me_buff_strength_1.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'strength_modified', 15)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'strength_modified', 15)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_buff_strength_2.py b/scripts/buffs/me_buff_strength_2.py
index 26b3b2cd..5f8f02d2 100644
--- a/scripts/buffs/me_buff_strength_2.py
+++ b/scripts/buffs/me_buff_strength_2.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'strength_modified', 45)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'strength_modified', 45)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_buff_strength_3.py b/scripts/buffs/me_buff_strength_3.py
index 7eb580c9..fcba94f9 100644
--- a/scripts/buffs/me_buff_strength_3.py
+++ b/scripts/buffs/me_buff_strength_3.py
@@ -1,10 +1,15 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_me_enhance'):
+ buff.setDuration(buff.getDuration()+(actor.getSkillModBase('expertise_buff_duration_line_me_enhance')))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'strength_modified', 80)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'strength_modified', 80)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_burst_1.py b/scripts/buffs/me_burst_1.py
new file mode 100644
index 00000000..82f6065b
--- /dev/null
+++ b/scripts/buffs/me_burst_1.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'expertise_critical_niche_all', 3)
+ core.skillModService.addSkillMod(actor, 'strikethrough_vulnerable', 5)
+ core.skillModService.addSkillMod(actor, 'critical_hit_vulnerable', 5)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'expertise_critical_niche_all', 3)
+ core.skillModService.deductSkillMod(actor, 'strikethrough_vulnerable', 5)
+ core.skillModService.deductSkillMod(actor, 'critical_hit_vulnerable', 5)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/me_cranial_smash_1.py b/scripts/buffs/me_cranial_smash_1.py
new file mode 100644
index 00000000..3daa6068
--- /dev/null
+++ b/scripts/buffs/me_cranial_smash_1.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'combat_divide_damage_dealt', 10)
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
+ core.skillModService.deductSkillMod(actor, 'combat_divide_damage_dealt', 10)
+ return
+
\ No newline at end of file
diff --git a/scripts/buffs/me_cure_affliction_1.py b/scripts/buffs/me_cure_affliction_1.py
new file mode 100644
index 00000000..b071a958
--- /dev/null
+++ b/scripts/buffs/me_cure_affliction_1.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'dot_reduction_all', 5)
+ core.skillModService.addSkillMod(actor, 'dot_resist_all', 100)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'dot_reduction_all', 5)
+ core.skillModService.deductSkillMod(actor, 'dot_resist_all', 100)
+ return
+
\ No newline at end of file
diff --git a/scripts/buffs/me_doom.py b/scripts/buffs/me_doom.py
new file mode 100644
index 00000000..fe90deb5
--- /dev/null
+++ b/scripts/buffs/me_doom.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'me_doom', 1)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'me_doom', 1)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/me_electrolyte_drain_1.py b/scripts/buffs/me_electrolyte_drain_1.py
new file mode 100644
index 00000000..2ee81fe9
--- /dev/null
+++ b/scripts/buffs/me_electrolyte_drain_1.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/me_evasion_1.py b/scripts/buffs/me_evasion_1.py
new file mode 100644
index 00000000..723b5ad5
--- /dev/null
+++ b/scripts/buffs/me_evasion_1.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'expertise_dodge', 35)
+ core.skillModService.addSkillMod(actor, 'display_only_evasion', 5000)
+ core.skillModService.addSkillMod(actor, 'combat_evasion_value', 50)
+
+ core.combatService.endCombat(actor)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'expertise_dodge', 35)
+ core.skillModService.deductSkillMod(actor, 'display_only_evasion', 5000)
+ core.skillModService.deductSkillMod(actor, 'combat_evasion_value', 50)
+ return
+
\ No newline at end of file
diff --git a/scripts/buffs/me_rheumatic_calamity_1.py b/scripts/buffs/me_rheumatic_calamity_1.py
index e09c02e5..8870a12b 100644
--- a/scripts/buffs/me_rheumatic_calamity_1.py
+++ b/scripts/buffs/me_rheumatic_calamity_1.py
@@ -2,7 +2,12 @@ import sys
def setup(core, actor, buff):
return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'action_burn', 65)
+ return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'action_burn', 65)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_serotonin_boost_1.py b/scripts/buffs/me_serotonin_boost_1.py
new file mode 100644
index 00000000..2c931a78
--- /dev/null
+++ b/scripts/buffs/me_serotonin_boost_1.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'debuff_purge', 1)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'debuff_purge', 1)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/me_serotonin_purge_1.py b/scripts/buffs/me_serotonin_purge_1.py
new file mode 100644
index 00000000..c5540781
--- /dev/null
+++ b/scripts/buffs/me_serotonin_purge_1.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'buff_purge', 1)
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'buff_purge', 1)
+ return
\ No newline at end of file
diff --git a/scripts/buffs/me_stasis_1.py b/scripts/buffs/me_stasis_1.py
index 1539e280..ad96199e 100644
--- a/scripts/buffs/me_stasis_1.py
+++ b/scripts/buffs/me_stasis_1.py
@@ -1,11 +1,14 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
actor.playEffectObject('clienteffect/medic_stasis.cef', 'me_stasis_1')
- actor.setSpeedMultiplierBase(0.2)
+ core.skillModService.deductSkillMod(actor, 'movement', 8)
return
-def removeBuff(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 8)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_stasis_self_1.py b/scripts/buffs/me_stasis_self_1.py
index 6341cb4c..cfb0b3f3 100644
--- a/scripts/buffs/me_stasis_self_1.py
+++ b/scripts/buffs/me_stasis_self_1.py
@@ -1,11 +1,14 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
actor.playEffectObject('clienteffect/medic_stasis.cef', 'me_stasis_self_1')
actor.setSpeedMultiplierBase(0.2)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
actor.setSpeedMultiplierBase(1)
return
\ No newline at end of file
diff --git a/scripts/buffs/me_thyroid_rupture_1.py b/scripts/buffs/me_thyroid_rupture_1.py
index 03b1fba8..fcafd14c 100644
--- a/scripts/buffs/me_thyroid_rupture_1.py
+++ b/scripts/buffs/me_thyroid_rupture_1.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'combat_divide_damage_dealt', 25)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'combat_divide_damage_dealt', 25)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_adv_paint_debuff_1.py b/scripts/buffs/of_adv_paint_debuff_1.py
index 7f6894de..54bbaa4e 100644
--- a/scripts/buffs/of_adv_paint_debuff_1.py
+++ b/scripts/buffs/of_adv_paint_debuff_1.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'critical_damage_vulnerability', 3)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'critical_damage_vulnerability', 3)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_adv_paint_debuff_2.py b/scripts/buffs/of_adv_paint_debuff_2.py
index 92f239c0..2a7c28ce 100644
--- a/scripts/buffs/of_adv_paint_debuff_2.py
+++ b/scripts/buffs/of_adv_paint_debuff_2.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'critical_damage_vulnerability', 4)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'critical_damage_vulnerability', 4)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_adv_paint_debuff_3.py b/scripts/buffs/of_adv_paint_debuff_3.py
index 58fe704f..18dc8a8c 100644
--- a/scripts/buffs/of_adv_paint_debuff_3.py
+++ b/scripts/buffs/of_adv_paint_debuff_3.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'critical_damage_vulnerability', 5)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'critical_damage_vulnerability', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_adv_paint_debuff_4.py b/scripts/buffs/of_adv_paint_debuff_4.py
index f41ae124..ec98f8ea 100644
--- a/scripts/buffs/of_adv_paint_debuff_4.py
+++ b/scripts/buffs/of_adv_paint_debuff_4.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'critical_damage_vulnerability', 6)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'critical_damage_vulnerability', 6)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_adv_paint_debuff_5.py b/scripts/buffs/of_adv_paint_debuff_5.py
index d31be060..e8fc48e0 100644
--- a/scripts/buffs/of_adv_paint_debuff_5.py
+++ b/scripts/buffs/of_adv_paint_debuff_5.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'critical_damage_vulnerability', 7)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'critical_damage_vulnerability', 7)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_adv_paint_debuff_6.py b/scripts/buffs/of_adv_paint_debuff_6.py
index 84ffe9ed..739acd40 100644
--- a/scripts/buffs/of_adv_paint_debuff_6.py
+++ b/scripts/buffs/of_adv_paint_debuff_6.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'critical_damage_vulnerability', 8)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'critical_damage_vulnerability', 8)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_adv_paint_debuff_7.py b/scripts/buffs/of_adv_paint_debuff_7.py
index 231f4a1b..32276a5f 100644
--- a/scripts/buffs/of_adv_paint_debuff_7.py
+++ b/scripts/buffs/of_adv_paint_debuff_7.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'critical_damage_vulnerability', 9)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'critical_damage_vulnerability', 9)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_adv_paint_debuff_8.py b/scripts/buffs/of_adv_paint_debuff_8.py
index 65e1c826..7af4032c 100644
--- a/scripts/buffs/of_adv_paint_debuff_8.py
+++ b/scripts/buffs/of_adv_paint_debuff_8.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'critical_damage_vulnerability', 10)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'critical_damage_vulnerability', 10)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_adv_paint_expose_1.py b/scripts/buffs/of_adv_paint_expose_1.py
index e3583535..cf3db901 100644
--- a/scripts/buffs/of_adv_paint_expose_1.py
+++ b/scripts/buffs/of_adv_paint_expose_1.py
@@ -1,12 +1,15 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'stealth_divisor', 15)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 3)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 3)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'stealth_divisor', 15)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 3)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 3)
diff --git a/scripts/buffs/of_adv_paint_expose_2.py b/scripts/buffs/of_adv_paint_expose_2.py
index 07ed0966..cb86a0d8 100644
--- a/scripts/buffs/of_adv_paint_expose_2.py
+++ b/scripts/buffs/of_adv_paint_expose_2.py
@@ -1,12 +1,15 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'stealth_divisor', 20)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 4)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 4)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'stealth_divisor', 20)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 4)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 4)
diff --git a/scripts/buffs/of_adv_paint_expose_3.py b/scripts/buffs/of_adv_paint_expose_3.py
index 4ab6e431..7a7d18af 100644
--- a/scripts/buffs/of_adv_paint_expose_3.py
+++ b/scripts/buffs/of_adv_paint_expose_3.py
@@ -1,12 +1,15 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'stealth_divisor', 25)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 5)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 5)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'stealth_divisor', 25)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 5)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 5)
diff --git a/scripts/buffs/of_adv_paint_expose_4.py b/scripts/buffs/of_adv_paint_expose_4.py
index df8fae5c..3716ee92 100644
--- a/scripts/buffs/of_adv_paint_expose_4.py
+++ b/scripts/buffs/of_adv_paint_expose_4.py
@@ -1,12 +1,15 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'stealth_divisor', 30)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 6)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 6)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'stealth_divisor', 30)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 6)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 6)
diff --git a/scripts/buffs/of_adv_paint_expose_5.py b/scripts/buffs/of_adv_paint_expose_5.py
index d22f46f0..210f262d 100644
--- a/scripts/buffs/of_adv_paint_expose_5.py
+++ b/scripts/buffs/of_adv_paint_expose_5.py
@@ -1,12 +1,15 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'stealth_divisor', 35)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 7)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 7)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'stealth_divisor', 35)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 7)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 7)
diff --git a/scripts/buffs/of_adv_paint_expose_6.py b/scripts/buffs/of_adv_paint_expose_6.py
index 4e3af368..d58904ce 100644
--- a/scripts/buffs/of_adv_paint_expose_6.py
+++ b/scripts/buffs/of_adv_paint_expose_6.py
@@ -1,12 +1,15 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'stealth_divisor', 40)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 8)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 8)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'stealth_divisor', 40)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 8)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 8)
diff --git a/scripts/buffs/of_adv_paint_expose_7.py b/scripts/buffs/of_adv_paint_expose_7.py
index 46e42ba4..c83c4950 100644
--- a/scripts/buffs/of_adv_paint_expose_7.py
+++ b/scripts/buffs/of_adv_paint_expose_7.py
@@ -1,12 +1,15 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'stealth_divisor', 45)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 9)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 9)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'stealth_divisor', 45)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 9)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 9)
diff --git a/scripts/buffs/of_adv_paint_expose_8.py b/scripts/buffs/of_adv_paint_expose_8.py
index ff43fe6c..38a00bf2 100644
--- a/scripts/buffs/of_adv_paint_expose_8.py
+++ b/scripts/buffs/of_adv_paint_expose_8.py
@@ -1,12 +1,15 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'stealth_divisor', 50)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 10)
core.skillModService.addSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 10)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'stealth_divisor', 50)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_buff_def', 10)
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_vulnerability_of_dm', 10)
diff --git a/scripts/buffs/of_ae_dm_cc_1.py b/scripts/buffs/of_ae_dm_cc_1.py
index 620bbaaa..2ee81fe9 100644
--- a/scripts/buffs/of_ae_dm_cc_1.py
+++ b/scripts/buffs/of_ae_dm_cc_1.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'movement', -5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'movement', 15)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_ae_dm_cc_2.py b/scripts/buffs/of_ae_dm_cc_2.py
index 620bbaaa..2ee81fe9 100644
--- a/scripts/buffs/of_ae_dm_cc_2.py
+++ b/scripts/buffs/of_ae_dm_cc_2.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'movement', -5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'movement', 15)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_ae_dm_cc_3.py b/scripts/buffs/of_ae_dm_cc_3.py
index 620bbaaa..2ee81fe9 100644
--- a/scripts/buffs/of_ae_dm_cc_3.py
+++ b/scripts/buffs/of_ae_dm_cc_3.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'movement', -5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'movement', 15)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_buff_def_1.py b/scripts/buffs/of_buff_def_1.py
index dd15adaf..01f17ada 100644
--- a/scripts/buffs/of_buff_def_1.py
+++ b/scripts/buffs/of_buff_def_1.py
@@ -1,11 +1,17 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ buff.setDuration(-1)
+
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', 1)
core.skillModService.addSkillMod(actor, 'constitution_modified', 5)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', 1)
core.skillModService.deductSkillMod(actor, 'constitution_modified', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_buff_def_2.py b/scripts/buffs/of_buff_def_2.py
index d819404b..7536841f 100644
--- a/scripts/buffs/of_buff_def_2.py
+++ b/scripts/buffs/of_buff_def_2.py
@@ -1,11 +1,17 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ buff.setDuration(-1)
+
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', 2)
core.skillModService.addSkillMod(actor, 'constitution_modified', 10)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', 2)
core.skillModService.deductSkillMod(actor, 'constitution_modified', 10)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_buff_def_3.py b/scripts/buffs/of_buff_def_3.py
index d18a3633..dd577237 100644
--- a/scripts/buffs/of_buff_def_3.py
+++ b/scripts/buffs/of_buff_def_3.py
@@ -1,11 +1,17 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ buff.setDuration(-1)
+
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', 2)
core.skillModService.addSkillMod(actor, 'constitution_modified', 20)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', 2)
core.skillModService.deductSkillMod(actor, 'constitution_modified', 20)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_buff_def_4.py b/scripts/buffs/of_buff_def_4.py
index b115ce6b..6a650b41 100644
--- a/scripts/buffs/of_buff_def_4.py
+++ b/scripts/buffs/of_buff_def_4.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ buff.setDuration(-1)
+
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', 2)
core.skillModService.addSkillMod(actor, 'constitution_modified', 20)
core.skillModService.addSkillMod(actor, 'combat_critical_hit_reduction', 5)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', 2)
core.skillModService.deductSkillMod(actor, 'constitution_modified', 20)
core.skillModService.deductSkillMod(actor, 'combat_critical_hit_reduction', 5)
diff --git a/scripts/buffs/of_buff_def_5.py b/scripts/buffs/of_buff_def_5.py
index 5c6ff8eb..0dfd361a 100644
--- a/scripts/buffs/of_buff_def_5.py
+++ b/scripts/buffs/of_buff_def_5.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ buff.setDuration(-1)
+
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', 3)
core.skillModService.addSkillMod(actor, 'constitution_modified', 25)
core.skillModService.addSkillMod(actor, 'combat_critical_hit_reduction', 6)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', 3)
core.skillModService.deductSkillMod(actor, 'constitution_modified', 25)
core.skillModService.deductSkillMod(actor, 'combat_critical_hit_reduction', 6)
diff --git a/scripts/buffs/of_buff_def_6.py b/scripts/buffs/of_buff_def_6.py
index b8a4b168..06dac062 100644
--- a/scripts/buffs/of_buff_def_6.py
+++ b/scripts/buffs/of_buff_def_6.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ buff.setDuration(-1)
+
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', 3)
core.skillModService.addSkillMod(actor, 'constitution_modified', 35)
core.skillModService.addSkillMod(actor, 'combat_critical_hit_reduction', 7)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', 3)
core.skillModService.deductSkillMod(actor, 'constitution_modified', 35)
core.skillModService.deductSkillMod(actor, 'combat_critical_hit_reduction', 7)
diff --git a/scripts/buffs/of_buff_def_7.py b/scripts/buffs/of_buff_def_7.py
index 77bdd6b4..b18cd574 100644
--- a/scripts/buffs/of_buff_def_7.py
+++ b/scripts/buffs/of_buff_def_7.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ buff.setDuration(-1)
+
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', 4)
core.skillModService.addSkillMod(actor, 'constitution_modified', 50)
core.skillModService.addSkillMod(actor, 'combat_critical_hit_reduction', 8)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', 4)
core.skillModService.deductSkillMod(actor, 'constitution_modified', 50)
core.skillModService.deductSkillMod(actor, 'combat_critical_hit_reduction', 8)
diff --git a/scripts/buffs/of_buff_def_8.py b/scripts/buffs/of_buff_def_8.py
index e4b5ba0c..1b16cad6 100644
--- a/scripts/buffs/of_buff_def_8.py
+++ b/scripts/buffs/of_buff_def_8.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ buff.setDuration(-1)
+
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', 4)
core.skillModService.addSkillMod(actor, 'constitution_modified', 60)
core.skillModService.addSkillMod(actor, 'combat_critical_hit_reduction', 9)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', 4)
core.skillModService.deductSkillMod(actor, 'constitution_modified', 60)
core.skillModService.deductSkillMod(actor, 'combat_critical_hit_reduction', 9)
diff --git a/scripts/buffs/of_buff_def_9.py b/scripts/buffs/of_buff_def_9.py
index 6f5e35e7..ac342f70 100644
--- a/scripts/buffs/of_buff_def_9.py
+++ b/scripts/buffs/of_buff_def_9.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ buff.setDuration(-1)
+
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', 5)
core.skillModService.addSkillMod(actor, 'constitution_modified', 70)
core.skillModService.addSkillMod(actor, 'combat_critical_hit_reduction', 10)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', 5)
core.skillModService.deductSkillMod(actor, 'constitution_modified', 70)
core.skillModService.deductSkillMod(actor, 'combat_critical_hit_reduction', 10)
diff --git a/scripts/buffs/of_cc_melee_1.py b/scripts/buffs/of_cc_melee_1.py
index 620bbaaa..2ee81fe9 100644
--- a/scripts/buffs/of_cc_melee_1.py
+++ b/scripts/buffs/of_cc_melee_1.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'movement', -5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'movement', 15)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_cc_melee_2.py b/scripts/buffs/of_cc_melee_2.py
index 620bbaaa..2ee81fe9 100644
--- a/scripts/buffs/of_cc_melee_2.py
+++ b/scripts/buffs/of_cc_melee_2.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'movement', -5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'movement', 15)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_cc_melee_3.py b/scripts/buffs/of_cc_melee_3.py
index 620bbaaa..2ee81fe9 100644
--- a/scripts/buffs/of_cc_melee_3.py
+++ b/scripts/buffs/of_cc_melee_3.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'movement', -5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'movement', 15)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_cc_melee_4.py b/scripts/buffs/of_cc_melee_4.py
index 620bbaaa..2ee81fe9 100644
--- a/scripts/buffs/of_cc_melee_4.py
+++ b/scripts/buffs/of_cc_melee_4.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'movement', -5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'movement', 15)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_cc_melee_5.py b/scripts/buffs/of_cc_melee_5.py
index 620bbaaa..2ee81fe9 100644
--- a/scripts/buffs/of_cc_melee_5.py
+++ b/scripts/buffs/of_cc_melee_5.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'movement', -5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'movement', 15)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_cc_melee_6.py b/scripts/buffs/of_cc_melee_6.py
index 620bbaaa..2ee81fe9 100644
--- a/scripts/buffs/of_cc_melee_6.py
+++ b/scripts/buffs/of_cc_melee_6.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'movement', -5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'movement', 15)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_cc_melee_7.py b/scripts/buffs/of_cc_melee_7.py
index 620bbaaa..2ee81fe9 100644
--- a/scripts/buffs/of_cc_melee_7.py
+++ b/scripts/buffs/of_cc_melee_7.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'movement', -5)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'movement', 15)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_charge_1.py b/scripts/buffs/of_charge_1.py
index 1edd38b5..104612e7 100644
--- a/scripts/buffs/of_charge_1.py
+++ b/scripts/buffs/of_charge_1.py
@@ -1,13 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_of_group_buff'):
+ buff.setDuration(buff.getDuration() + actor.getSkillModBase('expertise_buff_duration_line_of_group_buff'))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_damage_all', 10)
core.skillModService.addSkillMod(actor, 'expertise_action_all', 10)
core.skillModService.addSkillMod(actor, 'movement_resist_snare', 100)
core.skillModService.addSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'movement', 5)
core.skillModService.deductSkillMod(actor, 'expertise_damage_all', 10)
core.skillModService.deductSkillMod(actor, 'expertise_action_all', 10)
diff --git a/scripts/buffs/of_deadeye_debuff.py b/scripts/buffs/of_deadeye_debuff.py
index 533e3262..be22ec3e 100644
--- a/scripts/buffs/of_deadeye_debuff.py
+++ b/scripts/buffs/of_deadeye_debuff.py
@@ -1,11 +1,14 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'action_burn', 50)
core.skillModService.addSkillMod(actor, 'glancing_blow_vulnerable', 30)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'action_burn', 50)
core.skillModService.deductSkillMod(actor, 'glancing_blow_vulnerable', 30)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_deb_def_1.py b/scripts/buffs/of_deb_def_1.py
index 5a4b5cff..13cdab58 100644
--- a/scripts/buffs/of_deb_def_1.py
+++ b/scripts/buffs/of_deb_def_1.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ if actor.getSkillModBase('expertise_aura_maintain') > 0:
+ buff.setDuration(-1)
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', -2)
core.skillModService.addSkillMod(actor, 'expertise_parry', -2)
core.skillModService.addSkillMod(actor, 'critical_hit_vulnerable', 3)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', -2)
core.skillModService.deductSkillMod(actor, 'expertise_parry', -2)
core.skillModService.deductSkillMod(actor, 'critical_hit_vulnerable', 3)
diff --git a/scripts/buffs/of_deb_def_2.py b/scripts/buffs/of_deb_def_2.py
index 75c97f71..097ffe2b 100644
--- a/scripts/buffs/of_deb_def_2.py
+++ b/scripts/buffs/of_deb_def_2.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ if actor.getSkillModBase('expertise_aura_maintain') > 0:
+ buff.setDuration(-1)
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', -3)
core.skillModService.addSkillMod(actor, 'expertise_parry', -3)
core.skillModService.addSkillMod(actor, 'critical_hit_vulnerable', 4)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', -3)
core.skillModService.deductSkillMod(actor, 'expertise_parry', -3)
core.skillModService.deductSkillMod(actor, 'critical_hit_vulnerable', 4)
diff --git a/scripts/buffs/of_deb_def_3.py b/scripts/buffs/of_deb_def_3.py
index 5b125b31..c3b28b0b 100644
--- a/scripts/buffs/of_deb_def_3.py
+++ b/scripts/buffs/of_deb_def_3.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ if actor.getSkillModBase('expertise_aura_maintain') > 0:
+ buff.setDuration(-1)
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', -3)
core.skillModService.addSkillMod(actor, 'expertise_parry', -3)
core.skillModService.addSkillMod(actor, 'critical_hit_vulnerable', 5)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', -3)
core.skillModService.deductSkillMod(actor, 'expertise_parry', -3)
core.skillModService.deductSkillMod(actor, 'critical_hit_vulnerable', 5)
diff --git a/scripts/buffs/of_deb_def_4.py b/scripts/buffs/of_deb_def_4.py
index 056db66a..e93dde70 100644
--- a/scripts/buffs/of_deb_def_4.py
+++ b/scripts/buffs/of_deb_def_4.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ if actor.getSkillModBase('expertise_aura_maintain') > 0:
+ buff.setDuration(-1)
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', -4)
core.skillModService.addSkillMod(actor, 'expertise_parry', -4)
core.skillModService.addSkillMod(actor, 'critical_hit_vulnerable', 4)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', -4)
core.skillModService.deductSkillMod(actor, 'expertise_parry', -4)
core.skillModService.deductSkillMod(actor, 'critical_hit_vulnerable', 4)
diff --git a/scripts/buffs/of_deb_def_5.py b/scripts/buffs/of_deb_def_5.py
index ec243e5b..233ec4dd 100644
--- a/scripts/buffs/of_deb_def_5.py
+++ b/scripts/buffs/of_deb_def_5.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ if actor.getSkillModBase('expertise_aura_maintain') > 0:
+ buff.setDuration(-1)
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', -4)
core.skillModService.addSkillMod(actor, 'expertise_parry', -4)
core.skillModService.addSkillMod(actor, 'critical_hit_vulnerable', 5)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', -4)
core.skillModService.deductSkillMod(actor, 'expertise_parry', -4)
core.skillModService.deductSkillMod(actor, 'critical_hit_vulnerable', 5)
diff --git a/scripts/buffs/of_deb_def_6.py b/scripts/buffs/of_deb_def_6.py
index 3ebd39ea..cdb29995 100644
--- a/scripts/buffs/of_deb_def_6.py
+++ b/scripts/buffs/of_deb_def_6.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ if actor.getSkillModBase('expertise_aura_maintain') > 0:
+ buff.setDuration(-1)
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', -5)
core.skillModService.addSkillMod(actor, 'expertise_parry', -5)
core.skillModService.addSkillMod(actor, 'critical_hit_vulnerable', 6)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', -5)
core.skillModService.deductSkillMod(actor, 'expertise_parry', -5)
core.skillModService.deductSkillMod(actor, 'critical_hit_vulnerable', 6)
diff --git a/scripts/buffs/of_deb_def_7.py b/scripts/buffs/of_deb_def_7.py
index 7503918d..9e9fedf5 100644
--- a/scripts/buffs/of_deb_def_7.py
+++ b/scripts/buffs/of_deb_def_7.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ if actor.getSkillModBase('expertise_aura_maintain') > 0:
+ buff.setDuration(-1)
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', -6)
core.skillModService.addSkillMod(actor, 'expertise_parry', -6)
core.skillModService.addSkillMod(actor, 'critical_hit_vulnerable', 7)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', -6)
core.skillModService.deductSkillMod(actor, 'expertise_parry', -6)
core.skillModService.deductSkillMod(actor, 'critical_hit_vulnerable', 7)
diff --git a/scripts/buffs/of_deb_def_8.py b/scripts/buffs/of_deb_def_8.py
index bc8e5334..6016ba0d 100644
--- a/scripts/buffs/of_deb_def_8.py
+++ b/scripts/buffs/of_deb_def_8.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ if actor.getSkillModBase('expertise_aura_maintain') > 0:
+ buff.setDuration(-1)
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_dodge', -7)
core.skillModService.addSkillMod(actor, 'expertise_parry', -7)
core.skillModService.addSkillMod(actor, 'critical_hit_vulnerable', 8)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_dodge', -7)
core.skillModService.deductSkillMod(actor, 'expertise_parry', -7)
core.skillModService.deductSkillMod(actor, 'critical_hit_vulnerable', 8)
diff --git a/scripts/buffs/of_decap_bleed_1.py b/scripts/buffs/of_decap_bleed_1.py
index 16152e90..ff8b7fcf 100644
--- a/scripts/buffs/of_decap_bleed_1.py
+++ b/scripts/buffs/of_decap_bleed_1.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'dot_bleed', 18)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'dot_bleed', 18)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_decap_bleed_2.py b/scripts/buffs/of_decap_bleed_2.py
index f34171fc..1cdbd89d 100644
--- a/scripts/buffs/of_decap_bleed_2.py
+++ b/scripts/buffs/of_decap_bleed_2.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'dot_bleed', 25)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'dot_bleed', 25)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_decap_bleed_3.py b/scripts/buffs/of_decap_bleed_3.py
index 01d777ca..13629ef6 100644
--- a/scripts/buffs/of_decap_bleed_3.py
+++ b/scripts/buffs/of_decap_bleed_3.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'dot_bleed', 32)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'dot_bleed', 32)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_decap_bleed_4.py b/scripts/buffs/of_decap_bleed_4.py
index 1e847dea..3e266371 100644
--- a/scripts/buffs/of_decap_bleed_4.py
+++ b/scripts/buffs/of_decap_bleed_4.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'dot_bleed', 42)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'dot_bleed', 42)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_decap_bleed_5.py b/scripts/buffs/of_decap_bleed_5.py
index 596a9457..22db45c2 100644
--- a/scripts/buffs/of_decap_bleed_5.py
+++ b/scripts/buffs/of_decap_bleed_5.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'dot_bleed', 50)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'dot_bleed', 50)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_decap_bleed_6.py b/scripts/buffs/of_decap_bleed_6.py
index 1e96e637..8bbabdd6 100644
--- a/scripts/buffs/of_decap_bleed_6.py
+++ b/scripts/buffs/of_decap_bleed_6.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'dot_bleed', 60)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'dot_bleed', 60)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_dot_bomb_1.py b/scripts/buffs/of_dot_bomb_1.py
index 9ab3d9f7..1534cc2e 100644
--- a/scripts/buffs/of_dot_bomb_1.py
+++ b/scripts/buffs/of_dot_bomb_1.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'dot_fire', 200)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'dot_fire', 200)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_drillmaster_1.py b/scripts/buffs/of_drillmaster_1.py
index 9dd26849..233744a6 100644
--- a/scripts/buffs/of_drillmaster_1.py
+++ b/scripts/buffs/of_drillmaster_1.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ if actor.getSkillModBase('expertise_aura_maintain') > 2:
+ buff.setDuration(-1)
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_damage_all', 5)
core.skillModService.addSkillMod(actor, 'expertise_action_all', 5)
core.skillModService.addSkillMod(actor, 'expertise_damage_weapon_2', 5)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_damage_all', 5)
core.skillModService.deductSkillMod(actor, 'expertise_action_all', 5)
core.skillModService.deductSkillMod(actor, 'expertise_damage_weapon_2', 5)
diff --git a/scripts/buffs/of_emergency_shield.py b/scripts/buffs/of_emergency_shield.py
index 8b27d418..e4f367c3 100644
--- a/scripts/buffs/of_emergency_shield.py
+++ b/scripts/buffs/of_emergency_shield.py
@@ -1,11 +1,14 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'combat_divide_damage_taken', 75)
core.skillModService.addSkillMod(actor, 'combat_divide_damage_dealt', 75)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'combat_divide_damage_taken', 75)
core.skillModService.deductSkillMod(actor, 'combat_divide_damage_dealt', 75)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_firepower.py b/scripts/buffs/of_firepower.py
index e7b0b129..9bf1f1fe 100644
--- a/scripts/buffs/of_firepower.py
+++ b/scripts/buffs/of_firepower.py
@@ -1,11 +1,14 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_damage_line_of_aoe', 125)
core.skillModService.addSkillMod(actor, 'expertise_critical_line_of_aoe', 50)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_damage_line_of_aoe', 125)
core.skillModService.deductSkillMod(actor, 'expertise_critical_line_of_aoe', 50)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_focus_fire_1.py b/scripts/buffs/of_focus_fire_1.py
index c8e0d364..4e191992 100644
--- a/scripts/buffs/of_focus_fire_1.py
+++ b/scripts/buffs/of_focus_fire_1.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ if actor.getSkillModBase('expertise_aura_maintain') > 1:
+ buff.setDuration(-1)
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'combat_strikethrough_value', 2)
core.skillModService.addSkillMod(actor, 'expertise_critical_niche_all', 15)
core.skillModService.addSkillMod(actor, 'expertise_strikethrough_chance', 2)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'combat_strikethrough_value', 2)
core.skillModService.deductSkillMod(actor, 'expertise_critical_niche_all', 15)
core.skillModService.deductSkillMod(actor, 'expertise_strikethrough_chance', 2)
diff --git a/scripts/buffs/of_focus_fire_2.py b/scripts/buffs/of_focus_fire_2.py
index 7803b873..60404f53 100644
--- a/scripts/buffs/of_focus_fire_2.py
+++ b/scripts/buffs/of_focus_fire_2.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ if actor.getSkillModBase('expertise_aura_maintain') > 1:
+ buff.setDuration(-1)
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'combat_strikethrough_value', 3)
core.skillModService.addSkillMod(actor, 'expertise_critical_niche_all', 20)
core.skillModService.addSkillMod(actor, 'expertise_strikethrough_chance', 2)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'combat_strikethrough_value', 3)
core.skillModService.deductSkillMod(actor, 'expertise_critical_niche_all', 20)
core.skillModService.deductSkillMod(actor, 'expertise_strikethrough_chance', 2)
diff --git a/scripts/buffs/of_focus_fire_3.py b/scripts/buffs/of_focus_fire_3.py
index a4084512..3420c94c 100644
--- a/scripts/buffs/of_focus_fire_3.py
+++ b/scripts/buffs/of_focus_fire_3.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ if actor.getSkillModBase('expertise_aura_maintain') > 1:
+ buff.setDuration(-1)
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'combat_strikethrough_value', 3)
core.skillModService.addSkillMod(actor, 'expertise_critical_niche_all', 23)
core.skillModService.addSkillMod(actor, 'expertise_strikethrough_chance', 3)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'combat_strikethrough_value', 3)
core.skillModService.deductSkillMod(actor, 'expertise_critical_niche_all', 23)
core.skillModService.deductSkillMod(actor, 'expertise_strikethrough_chance', 3)
diff --git a/scripts/buffs/of_focus_fire_4.py b/scripts/buffs/of_focus_fire_4.py
index 27402933..a95fb77f 100644
--- a/scripts/buffs/of_focus_fire_4.py
+++ b/scripts/buffs/of_focus_fire_4.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ if actor.getSkillModBase('expertise_aura_maintain') > 1:
+ buff.setDuration(-1)
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'combat_strikethrough_value', 4)
core.skillModService.addSkillMod(actor, 'expertise_critical_niche_all', 26)
core.skillModService.addSkillMod(actor, 'expertise_strikethrough_chance', 3)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'combat_strikethrough_value', 4)
core.skillModService.deductSkillMod(actor, 'expertise_critical_niche_all', 26)
core.skillModService.deductSkillMod(actor, 'expertise_strikethrough_chance', 4)
diff --git a/scripts/buffs/of_focus_fire_5.py b/scripts/buffs/of_focus_fire_5.py
index 9cc90e8d..4d084789 100644
--- a/scripts/buffs/of_focus_fire_5.py
+++ b/scripts/buffs/of_focus_fire_5.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ if actor.getSkillModBase('expertise_aura_maintain') > 1:
+ buff.setDuration(-1)
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'combat_strikethrough_value', 4)
core.skillModService.addSkillMod(actor, 'expertise_critical_niche_all', 29)
core.skillModService.addSkillMod(actor, 'expertise_strikethrough_chance', 4)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'combat_strikethrough_value', 4)
core.skillModService.deductSkillMod(actor, 'expertise_critical_niche_all', 29)
core.skillModService.deductSkillMod(actor, 'expertise_strikethrough_chance', 4)
diff --git a/scripts/buffs/of_focus_fire_6.py b/scripts/buffs/of_focus_fire_6.py
index 58879cbe..e091b13f 100644
--- a/scripts/buffs/of_focus_fire_6.py
+++ b/scripts/buffs/of_focus_fire_6.py
@@ -1,12 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_aura_maintain'):
+ if actor.getSkillModBase('expertise_aura_maintain') > 1:
+ buff.setDuration(-1)
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'combat_strikethrough_value', 5)
core.skillModService.addSkillMod(actor, 'expertise_critical_niche_all', 32)
core.skillModService.addSkillMod(actor, 'expertise_strikethrough_chance', 5)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'combat_strikethrough_value', 5)
core.skillModService.deductSkillMod(actor, 'expertise_critical_niche_all', 32)
core.skillModService.deductSkillMod(actor, 'expertise_strikethrough_chance', 5)
diff --git a/scripts/buffs/of_inspiration_1.py b/scripts/buffs/of_inspiration_1.py
index 6cd2da65..cbf0963e 100644
--- a/scripts/buffs/of_inspiration_1.py
+++ b/scripts/buffs/of_inspiration_1.py
@@ -1,11 +1,14 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_action_all', 5)
core.skillModService.addSkillMod(actor, 'healing_action', 870)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_action_all', 870)
core.skillModService.deductSkillMod(actor, 'healing_action', 870)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_inspiration_2.py b/scripts/buffs/of_inspiration_2.py
index a26bbe86..1cf07e9c 100644
--- a/scripts/buffs/of_inspiration_2.py
+++ b/scripts/buffs/of_inspiration_2.py
@@ -1,11 +1,14 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_action_all', 5)
core.skillModService.addSkillMod(actor, 'healing_action', 1111)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_action_all', 5)
core.skillModService.deductSkillMod(actor, 'healing_action', 1111)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_inspiration_3.py b/scripts/buffs/of_inspiration_3.py
index 337108a6..1162d3b3 100644
--- a/scripts/buffs/of_inspiration_3.py
+++ b/scripts/buffs/of_inspiration_3.py
@@ -1,11 +1,14 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_action_all', 5)
core.skillModService.addSkillMod(actor, 'healing_action', 1532)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_action_all', 5)
core.skillModService.deductSkillMod(actor, 'healing_action', 1532)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_inspiration_4.py b/scripts/buffs/of_inspiration_4.py
index 5738cd3d..67879833 100644
--- a/scripts/buffs/of_inspiration_4.py
+++ b/scripts/buffs/of_inspiration_4.py
@@ -1,11 +1,14 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_action_all', 5)
core.skillModService.addSkillMod(actor, 'healing_action', 1954)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_action_all', 5)
core.skillModService.deductSkillMod(actor, 'healing_action', 1954)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_inspiration_5.py b/scripts/buffs/of_inspiration_5.py
index 6ab7d9d3..f566e44a 100644
--- a/scripts/buffs/of_inspiration_5.py
+++ b/scripts/buffs/of_inspiration_5.py
@@ -1,11 +1,14 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_action_all', 5)
core.skillModService.addSkillMod(actor, 'healing_action', 2374)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_action_all', 5)
core.skillModService.deductSkillMod(actor, 'healing_action', 2374)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_inspiration_6.py b/scripts/buffs/of_inspiration_6.py
index 9e7e9def..31bcc7df 100644
--- a/scripts/buffs/of_inspiration_6.py
+++ b/scripts/buffs/of_inspiration_6.py
@@ -1,11 +1,14 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_action_all', 5)
core.skillModService.addSkillMod(actor, 'healing_action', 2800)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'expertise_action_all', 5)
core.skillModService.deductSkillMod(actor, 'healing_action', 2800)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_last_words.py b/scripts/buffs/of_last_words.py
index 9611d588..49c70490 100644
--- a/scripts/buffs/of_last_words.py
+++ b/scripts/buffs/of_last_words.py
@@ -1,13 +1,16 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'healing_health', 3500)
core.skillModService.addSkillMod(actor, 'healing_action', 6000)
core.skillModService.addSkillMod(actor, 'expertise_damage_all', 10)
core.skillModService.addSkillMod(actor, 'expertise_action_all', 10)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'healing_health', 125)
core.skillModService.deductSkillMod(actor, 'healing_action', 50)
core.skillModService.deductSkillMod(actor, 'expertise_damage_all', 50)
diff --git a/scripts/buffs/of_pistol_bleed.py b/scripts/buffs/of_pistol_bleed.py
index 1e96e637..8bbabdd6 100644
--- a/scripts/buffs/of_pistol_bleed.py
+++ b/scripts/buffs/of_pistol_bleed.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'dot_bleed', 60)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'dot_bleed', 60)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_purge_1.py b/scripts/buffs/of_purge_1.py
index c41e52e8..21dd70e7 100644
--- a/scripts/buffs/of_purge_1.py
+++ b/scripts/buffs/of_purge_1.py
@@ -1,12 +1,15 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'dot_divisor_all', 50)
core.skillModService.addSkillMod(actor, 'dot_resist_all', 100)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'dot_divisor_all', 50)
core.skillModService.deductSkillMod(actor, 'dot_resist_all', 100)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_scatter_1.py b/scripts/buffs/of_scatter_1.py
index ed252b06..8309302a 100644
--- a/scripts/buffs/of_scatter_1.py
+++ b/scripts/buffs/of_scatter_1.py
@@ -1,13 +1,18 @@
import sys
def setup(core, actor, buff):
+ if actor.getSkillMod('expertise_buff_duration_line_of_group_buff'):
+ buff.setDuration(buff.getDuration() + actor.getSkillModBase('expertise_buff_duration_line_of_group_buff'))
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'expertise_glancing_blow_all', 2)
core.skillModService.addSkillMod(actor, 'movement_resist_snare', 15)
core.skillModService.addSkillMod(actor, 'movement_resist_root', 2)
core.skillModService.addSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'movement', 5)
core.skillModService.deductSkillMod(actor, 'expertise_glancing_blow_all', 2)
core.skillModService.deductSkillMod(actor, 'movement_resist_snare', 15)
diff --git a/scripts/buffs/of_stimulator_1.py b/scripts/buffs/of_stimulator_1.py
index f28888e7..492e64d7 100644
--- a/scripts/buffs/of_stimulator_1.py
+++ b/scripts/buffs/of_stimulator_1.py
@@ -1,9 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'debuff_purge', 2)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'debuff_purge', 2)
+
return
\ No newline at end of file
diff --git a/scripts/buffs/of_vortex_bleed_1.py b/scripts/buffs/of_vortex_bleed_1.py
index e1095bbc..188e61a7 100644
--- a/scripts/buffs/of_vortex_bleed_1.py
+++ b/scripts/buffs/of_vortex_bleed_1.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'dot_bleed', 30)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'dot_bleed', 30)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_vortex_bleed_2.py b/scripts/buffs/of_vortex_bleed_2.py
index cc0b1590..9a2bb14b 100644
--- a/scripts/buffs/of_vortex_bleed_2.py
+++ b/scripts/buffs/of_vortex_bleed_2.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'dot_bleed', 44)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'dot_bleed', 44)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_vortex_bleed_3.py b/scripts/buffs/of_vortex_bleed_3.py
index 12c3f4cd..711ac6ef 100644
--- a/scripts/buffs/of_vortex_bleed_3.py
+++ b/scripts/buffs/of_vortex_bleed_3.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'dot_bleed', 58)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'dot_bleed', 58)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_vortex_bleed_4.py b/scripts/buffs/of_vortex_bleed_4.py
index 9d2c2648..a6b25916 100644
--- a/scripts/buffs/of_vortex_bleed_4.py
+++ b/scripts/buffs/of_vortex_bleed_4.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'dot_bleed', 72)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'dot_bleed', 72)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_vortex_bleed_5.py b/scripts/buffs/of_vortex_bleed_5.py
index 760cc493..20f90a7f 100644
--- a/scripts/buffs/of_vortex_bleed_5.py
+++ b/scripts/buffs/of_vortex_bleed_5.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'dot_bleed', 90)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'dot_bleed', 90)
return
\ No newline at end of file
diff --git a/scripts/buffs/of_vortex_root.py b/scripts/buffs/of_vortex_root.py
index 5048a0be..42418564 100644
--- a/scripts/buffs/of_vortex_root.py
+++ b/scripts/buffs/of_vortex_root.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'movement', 0)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 10)
return
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'movement', 10)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 10)
return
\ No newline at end of file
diff --git a/scripts/buffs/poisoned.py b/scripts/buffs/poisoned.py
index e09c02e5..c60417a0 100644
--- a/scripts/buffs/poisoned.py
+++ b/scripts/buffs/poisoned.py
@@ -2,7 +2,10 @@ import sys
def setup(core, actor, buff):
return
+
+def add(core, actor, buff):
+ return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
return
\ No newline at end of file
diff --git a/scripts/buffs/proc_old_dark_jedi_gift.py b/scripts/buffs/proc_old_dark_jedi_gift.py
index e09c02e5..c60417a0 100644
--- a/scripts/buffs/proc_old_dark_jedi_gift.py
+++ b/scripts/buffs/proc_old_dark_jedi_gift.py
@@ -2,7 +2,10 @@ import sys
def setup(core, actor, buff):
return
+
+def add(core, actor, buff):
+ return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
return
\ No newline at end of file
diff --git a/scripts/buffs/proc_old_light_jedi_gift.py b/scripts/buffs/proc_old_light_jedi_gift.py
new file mode 100644
index 00000000..c60417a0
--- /dev/null
+++ b/scripts/buffs/proc_old_light_jedi_gift.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ return
+
+def remove(core, actor, buff):
+ return
+
\ No newline at end of file
diff --git a/scripts/buffs/saberblock.py b/scripts/buffs/saberblock.py
index 15962ce9..3386a66a 100644
--- a/scripts/buffs/saberblock.py
+++ b/scripts/buffs/saberblock.py
@@ -1,10 +1,13 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'display_only_parry', 1000 + (actor.getSkillModBase('expertise_saber_block') * 100))
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'display_only_parry', 1000 + (actor.getSkillModBase('expertise_saber_block') * 100))
return
\ No newline at end of file
diff --git a/scripts/buffs/set_bonus_bh_dps_1.py b/scripts/buffs/set_bonus_bh_dps_1.py
deleted file mode 100644
index 58d3ed08..00000000
--- a/scripts/buffs/set_bonus_bh_dps_1.py
+++ /dev/null
@@ -1,9 +0,0 @@
-import sys
-
-def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'expertise_action_line_dm', 5)
- return
-
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'expertise_action_line_dm', 5)
- return
\ No newline at end of file
diff --git a/scripts/buffs/set_bonus_bh_dps_2.py b/scripts/buffs/set_bonus_bh_dps_2.py
deleted file mode 100644
index cf463a7a..00000000
--- a/scripts/buffs/set_bonus_bh_dps_2.py
+++ /dev/null
@@ -1,11 +0,0 @@
-import sys
-
-def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'expertise_action_line_dm', 5)
- core.skillModService.addSkillMod(actor, 'expertise_buff_duration_line_bh_return_fire' , 5)
- return
-
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'expertise_action_line_dm', 5)
- core.skillModService.deductSkillMod(actor, 'expertise_buff_duration_line_bh_return_fire' , 5)
- return
\ No newline at end of file
diff --git a/scripts/buffs/set_bonus_bh_dps_3.py b/scripts/buffs/set_bonus_bh_dps_3.py
deleted file mode 100644
index 06bcee28..00000000
--- a/scripts/buffs/set_bonus_bh_dps_3.py
+++ /dev/null
@@ -1,17 +0,0 @@
-import sys
-
-def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'expertise_action_line_dm', 10)
- core.skillModService.addSkillMod(actor, 'expertise_action_line_dm_crit', 10)
- core.skillModService.addSkillMod(actor, 'expertise_buff_duration_line_bh_return_fire' , 10)
- core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_dm' , 10)
- core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_bh_return_fire' , 750)
- return
-
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'expertise_action_line_dm', 10)
- core.skillModService.deductSkillMod(actor, 'expertise_action_line_dm_crit', 10)
- core.skillModService.deductSkillMod(actor, 'expertise_buff_duration_line_bh_return_fire' , 10)
- core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_dm' , 10)
- core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_bh_return_fire' , 750)
- return
\ No newline at end of file
diff --git a/scripts/buffs/set_bonus_bh_utility_a_1.py b/scripts/buffs/set_bonus_bh_utility_a_1.py
deleted file mode 100644
index 4f9e42e4..00000000
--- a/scripts/buffs/set_bonus_bh_utility_a_1.py
+++ /dev/null
@@ -1,9 +0,0 @@
-import sys
-
-def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_bh_flawless_strike', 15)
- return
-
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_bh_flawless_strike', 15)
- return
\ No newline at end of file
diff --git a/scripts/buffs/set_bonus_bh_utility_a_2.py b/scripts/buffs/set_bonus_bh_utility_a_2.py
deleted file mode 100644
index 4f9e42e4..00000000
--- a/scripts/buffs/set_bonus_bh_utility_a_2.py
+++ /dev/null
@@ -1,9 +0,0 @@
-import sys
-
-def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_bh_flawless_strike', 15)
- return
-
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_bh_flawless_strike', 15)
- return
\ No newline at end of file
diff --git a/scripts/buffs/set_bonus_bh_utility_a_3.py b/scripts/buffs/set_bonus_bh_utility_a_3.py
deleted file mode 100644
index e98992f3..00000000
--- a/scripts/buffs/set_bonus_bh_utility_a_3.py
+++ /dev/null
@@ -1,10 +0,0 @@
-import sys
-
-def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_bh_flawless_strike', 30)
- return
-
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_bh_flawless_strike', 30)
- return
-
\ No newline at end of file
diff --git a/scripts/buffs/set_bonus_bh_utility_b_1.py b/scripts/buffs/set_bonus_bh_utility_b_1.py
deleted file mode 100644
index 0f4597fe..00000000
--- a/scripts/buffs/set_bonus_bh_utility_b_1.py
+++ /dev/null
@@ -1,9 +0,0 @@
-import sys
-
-def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'fast_attack_line_dm_cc', 5)
- return
-
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'fast_attack_line_dm_cc', 5)
- return
\ No newline at end of file
diff --git a/scripts/buffs/set_bonus_bh_utility_b_2.py b/scripts/buffs/set_bonus_bh_utility_b_2.py
deleted file mode 100644
index 945c2883..00000000
--- a/scripts/buffs/set_bonus_bh_utility_b_2.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import sys
-
-def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'fast_attack_line_dm_cc', 10)
- core.skillModService.addSkillMod(actor, 'bh_dire_root', 20)
- core.skillModService.addSkillMod(actor, 'bh_dire_snare', 20)
- return
-
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'fast_attack_line_dm_cc', 10)
- core.skillModService.deductSkillMod(actor, 'bh_dire_root', 20)
- core.skillModService.deductSkillMod(actor, 'bh_dire_snare', 20)
- return
\ No newline at end of file
diff --git a/scripts/buffs/set_bonus_bh_utility_b_3.py b/scripts/buffs/set_bonus_bh_utility_b_3.py
deleted file mode 100644
index d136c4ec..00000000
--- a/scripts/buffs/set_bonus_bh_utility_b_3.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import sys
-
-def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'fast_attack_line_dm_cc', 35)
- core.skillModService.addSkillMod(actor, 'bh_dire_root', 45)
- core.skillModService.addSkillMod(actor, 'bh_dire_snare', 45)
- return
-
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'fast_attack_line_dm_cc', 35)
- core.skillModService.deductSkillMod(actor, 'bh_dire_root', 45)
- core.skillModService.deductSkillMod(actor, 'bh_dire_snare', 45)
- return
\ No newline at end of file
diff --git a/scripts/buffs/set_bonus_hero_1.py b/scripts/buffs/set_bonus_hero_1.py
deleted file mode 100644
index d84a60fc..00000000
--- a/scripts/buffs/set_bonus_hero_1.py
+++ /dev/null
@@ -1,9 +0,0 @@
-import sys
-
-def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'stamina_modified', 60)
- return
-
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'stamina_modified', 60)
- return
\ No newline at end of file
diff --git a/scripts/buffs/set_bonus_hero_2.py b/scripts/buffs/set_bonus_hero_2.py
deleted file mode 100644
index 6c87d81e..00000000
--- a/scripts/buffs/set_bonus_hero_2.py
+++ /dev/null
@@ -1,11 +0,0 @@
-import sys
-
-def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'stamina_modified', 90)
- core.skillModService.addSkillMod(actor, 'agility_modified', 90)
- return
-
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'stamina_modified', 90)
- core.skillModService.deductSkillMod(actor, 'agility_modified', 90)
- return
\ No newline at end of file
diff --git a/scripts/buffs/set_bonus_hero_3.py b/scripts/buffs/set_bonus_hero_3.py
deleted file mode 100644
index 11c03f31..00000000
--- a/scripts/buffs/set_bonus_hero_3.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import sys
-
-def setup(core, actor, buff):
- core.skillModService.addSkillMod(actor, 'stamina_modified', 150)
- core.skillModService.addSkillMod(actor, 'agility_modified', 150)
- core.skillModService.addSkillMod(actor, 'constitution_modified', 150)
- return
-
-def removeBuff(core, actor, buff):
- core.skillModService.deductSkillMod(actor, 'stamina_modified', 150)
- core.skillModService.deductSkillMod(actor, 'agility_modified', 150)
- core.skillModService.deductSkillMod(actor, 'constitution_modified', 150)
- return
\ No newline at end of file
diff --git a/scripts/buffs/sm_ae_dm_cc_1.py b/scripts/buffs/sm_ae_dm_cc_1.py
index 18da7f78..2ee81fe9 100644
--- a/scripts/buffs/sm_ae_dm_cc_1.py
+++ b/scripts/buffs/sm_ae_dm_cc_1.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/sm_ae_dm_cc_2.py b/scripts/buffs/sm_ae_dm_cc_2.py
index 18da7f78..2ee81fe9 100644
--- a/scripts/buffs/sm_ae_dm_cc_2.py
+++ b/scripts/buffs/sm_ae_dm_cc_2.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/sm_ae_dm_cc_3.py b/scripts/buffs/sm_ae_dm_cc_3.py
index 18da7f78..2ee81fe9 100644
--- a/scripts/buffs/sm_ae_dm_cc_3.py
+++ b/scripts/buffs/sm_ae_dm_cc_3.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/sm_ae_dm_cc_4.py b/scripts/buffs/sm_ae_dm_cc_4.py
index 18da7f78..2ee81fe9 100644
--- a/scripts/buffs/sm_ae_dm_cc_4.py
+++ b/scripts/buffs/sm_ae_dm_cc_4.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/sm_ae_dm_cc_5.py b/scripts/buffs/sm_ae_dm_cc_5.py
index 18da7f78..2ee81fe9 100644
--- a/scripts/buffs/sm_ae_dm_cc_5.py
+++ b/scripts/buffs/sm_ae_dm_cc_5.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/sm_ae_dm_cc_6.py b/scripts/buffs/sm_ae_dm_cc_6.py
index 18da7f78..2ee81fe9 100644
--- a/scripts/buffs/sm_ae_dm_cc_6.py
+++ b/scripts/buffs/sm_ae_dm_cc_6.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
+ return
+
+def add(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 5)
return
-def removeBuff(core, actor, buff):
- actor.setSpeedMultiplierBase(1)
+def remove(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 5)
return
\ No newline at end of file
diff --git a/scripts/buffs/sm_pistol_whip_1.py b/scripts/buffs/sm_pistol_whip_1.py
index 5537d303..f83a6829 100644
--- a/scripts/buffs/sm_pistol_whip_1.py
+++ b/scripts/buffs/sm_pistol_whip_1.py
@@ -1,9 +1,12 @@
import sys
def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
core.skillModService.addSkillMod(actor, 'sm_pistol_whip', 0)
return
-def removeBuff(core, actor, buff):
+def remove(core, actor, buff):
core.skillModService.deductSkillMod(actor, 'sm_pistol_whip', 0)
return
\ No newline at end of file
diff --git a/scripts/buffs/sp_burst_shadows.py b/scripts/buffs/sp_burst_shadows.py
new file mode 100644
index 00000000..1047f8fd
--- /dev/null
+++ b/scripts/buffs/sp_burst_shadows.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def add(core, actor, buff):
+ core.skillModService.addSkillMod(actor, 'movement', 8)
+
+ return
+
+def remove(core, actor, buff):
+ core.skillModService.deductSkillMod(actor, 'movement', 8)
+
+
+ return
diff --git a/scripts/collections/col_entertainer_01.py b/scripts/collections/col_entertainer_01.py
new file mode 100644
index 00000000..100fa53e
--- /dev/null
+++ b/scripts/collections/col_entertainer_01.py
@@ -0,0 +1,12 @@
+from java.lang import System
+import sys
+
+def modify(core, actor, count):
+ return
+
+def complete(core, actor, collection):
+ ghost = actor.getSlottedObject('ghost')
+
+ actor.sendSystemMessage('@collection_n:col_entertainer_01_finished', 0)
+ ghost.addAbility('bm_dancing_pet_entertainer')
+ return
\ No newline at end of file
diff --git a/scripts/collections/exploration_badges.py b/scripts/collections/exploration_badges.py
new file mode 100644
index 00000000..d864c169
--- /dev/null
+++ b/scripts/collections/exploration_badges.py
@@ -0,0 +1,76 @@
+import sys
+import services.collections.CollectionService
+
+
+def setup(collectionService):
+
+#Corellia
+ collectionService.registerExplorationBadge('corellia', 'bdg_exp_cor_rogue_corsec_base', 5175, 1644, 64)
+ collectionService.registerExplorationBadge('corellia', 'bdg_exp_cor_tyrena_theater', -5418, -6248, 64)
+ collectionService.registerExplorationBadge('corellia', 'bdg_exp_cor_bela_vistal_fountain', 6760, -5617, 32)
+ collectionService.registerExplorationBadge('corellia', 'bdg_exp_cor_rebel_hideout', -6530, 5967, 64)
+ collectionService.registerExplorationBadge('corellia', 'exp_cor_agrilat_swamp', 1389, 3756, 64)
+
+#Dantooine
+ collectionService.registerExplorationBadge('dantooine', 'bdg_exp_dan_dantari_village1', -3862, -5706, 16)
+ collectionService.registerExplorationBadge('dantooine', 'bdg_exp_dan_dantari_village2', -7156, -883, 32)
+ collectionService.registerExplorationBadge('dantooine', 'exp_dan_rebel_base', -6836, 5520, 32)
+ collectionService.registerExplorationBadge('dantooine', 'exp_dan_jedi_temple', 4195, 5203, 16)
+
+#Dathomir
+ collectionService.registerExplorationBadge('dathomir', 'exp_dat_tarpit', 668, -4835, 32)
+ collectionService.registerExplorationBadge('dathomir', 'exp_dat_sarlacc', -2101, 3165, 16)
+ collectionService.registerExplorationBadge('dathomir', 'exp_dat_escape_pod', -4437, 574, 32)
+ collectionService.registerExplorationBadge('dathomir', 'exp_dat_misty_falls_1', 3558, 1554, 32)
+ collectionService.registerExplorationBadge('dathomir', 'exp_dat_misty_falls_2', 3021, 1289, 32)
+ collectionService.registerExplorationBadge('dathomir', 'bdg_exp_dat_imp_prison', -6304, 753, 32)
+ collectionService.registerExplorationBadge('dathomir', 'bdg_exp_dat_crashed_ship', 5727, 1923, 32)
+
+#Endor
+ collectionService.registerExplorationBadge('endor', 'bdg_exp_end_ewok_tree_village', 4596, -2423, 32)
+ collectionService.registerExplorationBadge('endor', 'bdg_exp_end_ewok_lake_village', 1454, -3272, 32)
+ collectionService.registerExplorationBadge('endor', 'bdg_exp_end_dulok_village', 6051, -2477, 16)
+ collectionService.registerExplorationBadge('endor', 'bdg_exp_end_imp_outpost', -4628, -2273, 32)
+
+#Kashyyyk
+ collectionService.registerExplorationBadge('kashyyyk', 'exp_kash_kachirho_found', -660, -201, 64)
+
+#Lok
+ collectionService.registerExplorationBadge('lok', 'exp_lok_volcano', 3091, -4638, 32)
+ collectionService.registerExplorationBadge('lok', 'bdg_exp_lok_imp_outpost', -1814, -3086, 32)
+ collectionService.registerExplorationBadge('lok', 'bdg_exp_lok_kimogila_skeleton', 4562, -1156, 16)
+
+#Mustafar
+ collectionService.registerExplorationBadge('mustafar', 'exp_must_mustafar_found', 0, 0, 32)
+
+#Naboo
+ collectionService.registerExplorationBadge('naboo', 'exp_nab_gungan_sacred_place', -2066, -5423, 32)
+ collectionService.registerExplorationBadge('naboo', 'bdg_exp_nab_theed_falls_bottom', -4628, 4207, 32)
+ collectionService.registerExplorationBadge('naboo', 'bdg_exp_nab_deeja_falls_top', 5157, -1646, 32)
+ collectionService.registerExplorationBadge('naboo', 'bdg_exp_nab_amidalas_sandy_beach', -5828, -93, 32)
+
+#Rori
+ collectionService.registerExplorationBadge('rori', 'bdg_exp_ror_imp_camp', -5633, -5661, 32)
+ collectionService.registerExplorationBadge('rori', 'bdg_exp_ror_imp_hyperdrive_fac', -1130, 4544, 32)
+ collectionService.registerExplorationBadge('rori', 'bdg_exp_ror_rebel_outpost', 3664, -6501, 32)
+ collectionService.registerExplorationBadge('rori', 'bdg_exp_ror_kobala_spice_mine', 7371, 169, 32)
+
+#Talus
+ collectionService.registerExplorationBadge('talus', 'bdg_exp_tal_creature_village', 4133, 962, 32)
+ collectionService.registerExplorationBadge('talus', 'bdg_exp_tal_imp_base', -2184, 2405, 32)
+ collectionService.registerExplorationBadge('talus', 'bdg_exp_tal_imp_vs_reb_battle', -2452, 3846, 32)
+ collectionService.registerExplorationBadge('talus', 'bdg_exp_tal_aqualish_cave', -4425, -1414, 64)
+
+#Tatooine
+ collectionService.registerExplorationBadge('tatooine', 'exp_tat_lars_homestead', -2579, -5500, 32)
+ collectionService.registerExplorationBadge('tatooine', 'exp_tat_bens_hut', -4512, -2270, 16)
+ collectionService.registerExplorationBadge('tatooine', 'exp_tat_sarlacc_pit', -6176, -3372, 32)
+ collectionService.registerExplorationBadge('tatooine', 'exp_tat_escape_pod', -3931, -4397, 32)
+ collectionService.registerExplorationBadge('tatooine', 'exp_tat_krayt_skeleton', -4632, -4346, 16)
+ collectionService.registerExplorationBadge('tatooine', 'exp_tat_krayt_graveyard', 7396, 4478, 64)
+ collectionService.registerExplorationBadge('tatooine', 'exp_tat_tusken_pool', -3966, 6267, 32)
+
+#Yavin
+ collectionService.registerExplorationBadge('yavin4', 'exp_yav_temple_exar_kun', 5076, 5537, 32)
+ collectionService.registerExplorationBadge('yavin4', 'exp_yav_temple_blueleaf', -875, -2047, 32)
+ collectionService.registerExplorationBadge('yavin4', 'exp_yav_temple_woolamander', 519, -646, 32)
diff --git a/scripts/collections/profession_master.py b/scripts/collections/profession_master.py
new file mode 100644
index 00000000..dbd6e1e0
--- /dev/null
+++ b/scripts/collections/profession_master.py
@@ -0,0 +1,60 @@
+import sys
+
+def bounty_hunter_1a(core, actor):
+ core.collectionService.addCollection(actor, "new_prof_bountyhunter_master")
+ return
+
+def commando_1a(core, actor):
+ core.collectionService.addCollection(actor, "new_prof_commando_master")
+ return
+
+def entertainer_1a(core, actor):
+ core.collectionService.addCollection(actor, "new_prof_social_entertainer_master")
+ return
+
+def force_sensitive_1a(core, actor):
+ core.collectionService.addCollection(actor, "new_prof_jedi_master")
+ return
+
+def medic_1a(core, actor):
+ core.collectionService.addCollection(actor, "new_prof_medic_master")
+ return
+
+def officer_1a(core, actor):
+ core.collectionService.addCollection(actor, "new_prof_officer_master")
+ return
+
+def smuggler_1a(core, actor):
+ core.collectionService.addCollection(actor, "new_prof_officer_master")
+ return
+
+def spy_1a(core, actor):
+ core.collectionService.addCollection(actor, "new_prof_spy_master")
+ return
+
+def trader_0a(core, actor):
+ core.collectionService.addCollection(actor, "new_prof_crafting_merchant_master")
+ core.collectionService.addCollection(actor, "new_prof_crafting_artisan_master")
+ core.collectionService.addCollection(actor, "new_prof_crafting_chef_master")
+ core.collectionService.addCollection(actor, "new_prof_crafting_tailor_master")
+ return
+
+def trader_0b(core, actor):
+ core.collectionService.addCollection(actor, "new_prof_crafting_merchant_master")
+ core.collectionService.addCollection(actor, "new_prof_crafting_artisan_master")
+ core.collectionService.addCollection(actor, "new_prof_crafting_architect_master")
+ return
+
+def trader_0c(core, actor):
+ core.collectionService.addCollection(actor, "new_prof_crafting_merchant_master")
+ core.collectionService.addCollection(actor, "new_prof_crafting_artisan_master")
+ core.collectionService.addCollection(actor, "new_prof_crafting_armorsmith_master")
+ core.collectionService.addCollection(actor, "new_prof_crafting_weaponsmith_master")
+ return
+
+def trader_0d(core, actor):
+ core.collectionService.addCollection(actor, "new_prof_crafting_merchant_master")
+ core.collectionService.addCollection(actor, "new_prof_crafting_artisan_master")
+ core.collectionService.addCollection(actor, "new_prof_crafting_droidengineer_master")
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/addfriend.py b/scripts/commands/addfriend.py
index dbbd0859..c612261d 100644
--- a/scripts/commands/addfriend.py
+++ b/scripts/commands/addfriend.py
@@ -5,6 +5,12 @@ def setup():
def run(core, actor, target, commandString):
actorGhost = actor.getSlottedObject("ghost")
+
chatSrvc = core.chatService
- chatSrvc.addFriend(actorGhost, commandString, 1)
+ if chatSrvc and actorGhost and commandString:
+ if actorGhost.getFriendList().contains(commandString.split(" ")[0].lower()):
+ actor.sendSystemMessage(commandString.split(" ")[0].lower() + ' is already in your friend list.', 0)
+ return
+ else:
+ chatSrvc.addFriend(actorGhost, commandString)
return
\ No newline at end of file
diff --git a/scripts/commands/addignore.py b/scripts/commands/addignore.py
new file mode 100644
index 00000000..04b1ca6b
--- /dev/null
+++ b/scripts/commands/addignore.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ actorGhost = actor.getSlottedObject("ghost")
+ chatSrvc = core.chatService
+
+ if not actorGhost and chatSrvc and commandString:
+ return
+
+ if actorGhost.getIgnoreList().contains(commandString.split(" ")[0].lower()):
+ actor.sendSystemMessage(commandString.split(' ')[0].lower() + ' is already in your ignore list.', 0)
+ return
+
+ chatSrvc.addToIgnoreList(actor, commandString)
+
+ return
\ No newline at end of file
diff --git a/scripts/commands/auction.py b/scripts/commands/auction.py
new file mode 100644
index 00000000..fe744e57
--- /dev/null
+++ b/scripts/commands/auction.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ room = core.chatService.getChatRoomByAddress('SWG.' + core.getGalaxyName() + '.' + 'Auction')
+
+ if actor.getSlottedObject('ghost').isMemberOfChannel(room.getRoomId()):
+ core.chatService.sendChatRoomMessage(actor, room.getRoomId(), 0, commandString)
+ return
\ No newline at end of file
diff --git a/scripts/commands/bandflourish.py b/scripts/commands/bandflourish.py
new file mode 100644
index 00000000..446ceb72
--- /dev/null
+++ b/scripts/commands/bandflourish.py
@@ -0,0 +1,51 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if len(commandString) <= 0:
+ actor.sendSystemMessage('@performance:flourish_not_valid', 0)
+ return
+
+ if commandString == 'on':
+ actor.setAcceptBandflourishes(1)
+ actor.sendSystemMessage('@performance:band_flourish_status_on', 0)
+ return
+ if commandString == 'off':
+ actor.setAcceptBandflourishes(0)
+ actor.sendSystemMessage('@performance:band_flourish_status_off', 0)
+ return
+
+ try:
+ flourish = int(commandString)
+ except ValueError:
+ actor.sendSystemMessage('@performance:flourish_not_valid', 0)
+ return
+
+ if flourish < 1 or flourish > 9:
+ actor.sendSystemMessage('@performance:flourish_not_valid', 0)
+ return
+
+ if actor.getPerformanceId() <= 0:
+ actor.sendSystemMessage('@performance:flourish_not_performing', 0)
+ return
+
+ if actor.getAcceptBandflourishes():
+ actor.sendSystemMessage('@performance:flourish_perform_band_self', 0)
+ core.entertainmentService.performFlourish(actor, flourish)
+
+ group = core.objectService.getObject(actor.getGroupId())
+ if not group:
+ return
+
+ for creature in group.getMemberList():
+ if creature == actor:
+ continue
+ if creature.getAcceptBandflourishes():
+ creature.sendSystemMessage('@performance:flourish_perform_band_member', 0)
+ core.entertainmentService.performFlourish(creature, flourish)
+ return
+
+
diff --git a/scripts/commands/bh_armor_sprint_1.py b/scripts/commands/bh_armor_sprint_1.py
new file mode 100644
index 00000000..22439323
--- /dev/null
+++ b/scripts/commands/bh_armor_sprint_1.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup(core, actor, buff):
+ core.buffService.addBuffToCreature(actor, 'bh_power_sprint_1', actor)
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/bh_cover_1.py b/scripts/commands/bh_cover_1.py
new file mode 100644
index 00000000..8875a673
--- /dev/null
+++ b/scripts/commands/bh_cover_1.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+ core.buffService.addBuffToCreature(actor, 'bh_cover_1', actor)
+ return
\ No newline at end of file
diff --git a/scripts/commands/bh_shields_1.py b/scripts/commands/bh_shields_1.py
new file mode 100644
index 00000000..1bf27a70
--- /dev/null
+++ b/scripts/commands/bh_shields_1.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ core.buffService.addBuffToCreature(actor, 'bh_shields', actor)
+ core.buffService.addBuffToCreature(actor, 'bh_shields_charged', actor)
+ core.buffService.addBuffToCreature(actor, 'bh_shields_handler', actor)
+ return
\ No newline at end of file
diff --git a/scripts/commands/boardshuttle.py b/scripts/commands/boardshuttle.py
index b452c65d..398a4674 100644
--- a/scripts/commands/boardshuttle.py
+++ b/scripts/commands/boardshuttle.py
@@ -1,3 +1,4 @@
+from resources.common import Console
import sys
def setup():
@@ -8,24 +9,34 @@ def run(core, actor, target, commandString):
ticketList = trvSvc.getTicketList(actor)
nearestPoint = trvSvc.getNearestTravelPoint(actor)
- print (nearestPoint.getName())
- if nearestPoint.isShuttleAvailable:
- print ('inside nearestPoint if')
+ #print (nearestPoint.getName())
+
+ if nearestPoint.isShuttleAvailable() is True:
+
if ticketList.size() >= 1:
- print ('inside list >= 1')
trvSvc.sendTicketWindow(actor, target)
- print ('sent ticket window')
return
elif ticketList.isEmpty:
actor.sendSystemMessage('You do not have a ticket to board this shuttle.', 0)
return
-
return
-
+
+ elif nearestPoint.isShuttleLanding() is True:
+ actor.sendSystemMessage('The next shuttle is about to begin boarding.', 0)
+ return
else:
- actor.sendSystemMessage('The next shuttle will arrive in 60 seconds.', 0)
- return
+ # We don't want the remaining time to show as soon as the shuttle leaves, instead, we want an unavilable message.
+ if nearestPoint.isShuttleAvailable() is False and nearestPoint.isShuttleDeparting() is True:
+ actor.sendSystemMessage('@travel:shuttle_not_available', 0)
+ return
+ elif nearestPoint.getSecondsRemaining() <= 0:
+ actor.sendSystemMessage('The next shuttle is about to begin boarding.', 0)
+ return
+ else:
+ actor.sendSystemMessage('The next shuttle will arrive in ' + str(nearestPoint.getSecondsRemaining()) + ' seconds.', 0)
+ return
+ return
return
# NOTE: In NGE video from Jan. 4th, 2010, ticket purchase window is shown with just 1 ticket and does not
# automatically transport the player.
diff --git a/scripts/commands/broadcast.py b/scripts/commands/broadcast.py
new file mode 100644
index 00000000..afcaebef
--- /dev/null
+++ b/scripts/commands/broadcast.py
@@ -0,0 +1,12 @@
+from services.sui import SUIWindow
+from services.sui.SUIWindow import Trigger
+from java.util import Vector
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ core.chatService.broadcastGalaxy(commandString)
+ return
+
diff --git a/scripts/commands/centerstage.py b/scripts/commands/centerstage.py
new file mode 100644
index 00000000..362738c5
--- /dev/null
+++ b/scripts/commands/centerstage.py
@@ -0,0 +1,14 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if actor.getLevel() < 66:
+ actor.sendSystemMessage('@performance:effect_lack_skill_self', 0)
+ return
+
+ if core.entertainmentService.performEffect(actor, 'CenterStage', 'clienteffect/entertainer_center_stage.cef', target) is True:
+ actor.sendSystemMessage('@performance:effect_perform_center_stage', 0)
+ return
\ No newline at end of file
diff --git a/scripts/commands/co_first_aid_training.py b/scripts/commands/co_first_aid_training.py
new file mode 100644
index 00000000..18b9aedf
--- /dev/null
+++ b/scripts/commands/co_first_aid_training.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ core.buffService.addBuffToCreature(actor, 'co_first_aid_training', actor)
+ return
\ No newline at end of file
diff --git a/scripts/commands/co_hw_dot.py b/scripts/commands/co_hw_dot.py
index 7b9a8aac..ca43a28e 100644
--- a/scripts/commands/co_hw_dot.py
+++ b/scripts/commands/co_hw_dot.py
@@ -12,13 +12,10 @@ def run(core, actor, target, commandString):
if not weapon:
return
- if not weapon.getWeaponType() == 12:
- return
-
elementalType = weapon.getElementalType()
commandName = ''
- if elementalType == '@obj_attr_n:elemental_heat':
+ if elementalType == 'heat':
if actor.getLevel() >= 58:
commandName = 'co_hw_dot_fire_1'
if actor.getLevel() >= 60:
@@ -29,7 +26,7 @@ def run(core, actor, target, commandString):
commandName = 'co_hw_dot_fire_4'
if actor.getLevel() >= 90:
commandName = 'co_hw_dot_fire_5'
- elif elementalType == '@obj_attr_n:elemental_cold':
+ elif elementalType == 'cold':
if actor.getLevel() >= 58:
commandName = 'co_hw_dot_cold_1'
if actor.getLevel() >= 60:
@@ -40,7 +37,7 @@ def run(core, actor, target, commandString):
commandName = 'co_hw_dot_cold_4'
if actor.getLevel() >= 90:
commandName = 'co_hw_dot_cold_5'
- elif elementalType == '@obj_attr_n:elemental_acid':
+ elif elementalType == 'acid':
if actor.getLevel() >= 58:
commandName = 'co_hw_dot_acid_1'
if actor.getLevel() >= 60:
@@ -51,7 +48,7 @@ def run(core, actor, target, commandString):
commandName = 'co_hw_dot_acid_4'
if actor.getLevel() >= 90:
commandName = 'co_hw_dot_acid_5'
- elif elementalType == '@obj_attr_n:elemental_electricity':
+ elif elementalType == 'electricity':
if actor.getLevel() >= 58:
commandName = 'co_hw_dot_electrical_1'
if actor.getLevel() >= 60:
@@ -62,7 +59,7 @@ def run(core, actor, target, commandString):
commandName = 'co_hw_dot_electrical_4'
if actor.getLevel() >= 90:
commandName = 'co_hw_dot_electrical_5'
- elif elementalType == '@obj_attr_n:elemental_energy':
+ elif elementalType == 'energy':
if actor.getLevel() >= 58:
commandName = 'co_hw_dot_energy_1'
if actor.getLevel() >= 60:
@@ -73,7 +70,7 @@ def run(core, actor, target, commandString):
commandName = 'co_hw_dot_energy_4'
if actor.getLevel() >= 90:
commandName = 'co_hw_dot_energy_5'
- elif elementalType =='@obj_attr_n:elemental_kinetic':
+ elif elementalType =='kinetic':
if actor.getLevel() >= 58:
commandName = 'co_hw_dot_kinetic_1'
if actor.getLevel() >= 60:
diff --git a/scripts/commands/colorSwirl.py b/scripts/commands/colorSwirl.py
new file mode 100644
index 00000000..cae47e72
--- /dev/null
+++ b/scripts/commands/colorSwirl.py
@@ -0,0 +1,14 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if actor.getLevel() < 34:
+ actor.sendSystemMessage('@performance:effect_lack_skill_self', 0)
+ return
+
+ if core.entertainmentService.performEffect(actor, 'ColorSwirl', 'clienteffect/entertainer_color_swirl.cef', target) is True:
+ actor.sendSystemMessage('@performance:effect_perform_color_swirl', 0)
+ return
\ No newline at end of file
diff --git a/scripts/commands/colorlights.py b/scripts/commands/colorlights.py
new file mode 100644
index 00000000..0708c4ea
--- /dev/null
+++ b/scripts/commands/colorlights.py
@@ -0,0 +1,39 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ level = actor.getLevel()
+ command = 'ColorLights1'
+ effect = 'clienteffect/entertainer_color_lights_level_1.cef'
+ rLevel = 4 # minimum level to perform this effect
+
+ if commandString is None or commandString == '':
+
+ if level >= 50:
+ command = 'ColorLights3'
+ effect = 'clienteffect/entertainer_color_lights_level_3.cef'
+
+ elif level >= 20:
+ command = 'ColorLights2'
+ effect = 'clienteffect/entertainer_color_lights_level_2.cef'
+
+ if commandString is not None:
+ if commandString == '2':
+ command = 'ColorLights2'
+ effect = 'clienteffect/entertainer_color_lights_level_2.cef'
+ rLevel = 20
+
+ elif commandString == '3':
+ command = 'ColorLights3'
+ effect = 'clienteffect/entertainer_color_lights_level_3.cef'
+ rLevel = 50
+
+ if level < rLevel:
+ actor.sendSystemMessage('@performance:effect_lack_skill_self', 0)
+ return
+
+ if core.entertainmentService.performEffect(actor, command, effect, target) is True:
+ actor.sendSystemMessage('@performance:effect_perform_color_lights', 0)
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_1.py b/scripts/commands/combat/bh_dm_1.py
new file mode 100644
index 00000000..0506c54f
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_1.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm'))/100))
+
+ return
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_2.py b/scripts/commands/combat/bh_dm_2.py
new file mode 100644
index 00000000..0506c54f
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_2.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm'))/100))
+
+ return
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_3.py b/scripts/commands/combat/bh_dm_3.py
new file mode 100644
index 00000000..0506c54f
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_3.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm'))/100))
+
+ return
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_4.py b/scripts/commands/combat/bh_dm_4.py
new file mode 100644
index 00000000..0506c54f
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_4.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm'))/100))
+
+ return
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_5.py b/scripts/commands/combat/bh_dm_5.py
new file mode 100644
index 00000000..0506c54f
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_5.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm'))/100))
+
+ return
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_6.py b/scripts/commands/combat/bh_dm_6.py
new file mode 100644
index 00000000..0506c54f
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_6.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm'))/100))
+
+ return
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_7.py b/scripts/commands/combat/bh_dm_7.py
new file mode 100644
index 00000000..0506c54f
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_7.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm'))/100))
+
+ return
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_8.py b/scripts/commands/combat/bh_dm_8.py
new file mode 100644
index 00000000..0506c54f
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_8.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm'))/100))
+
+ return
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_crit_1.py b/scripts/commands/combat/bh_dm_crit_1.py
new file mode 100644
index 00000000..c12e2a2a
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_crit_1.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm_crit'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm_crit')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm_crit'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_action_line_dm_crit'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost()*actor.getSkillModBase('expertise_action_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_critical_line_dm_crit'):
+ command.setCriticalChance(command.getCriticalChance + actor.getSkillModBase('expertise_critical_line_dm_crit'))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_crit_2.py b/scripts/commands/combat/bh_dm_crit_2.py
new file mode 100644
index 00000000..c12e2a2a
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_crit_2.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm_crit'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm_crit')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm_crit'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_action_line_dm_crit'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost()*actor.getSkillModBase('expertise_action_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_critical_line_dm_crit'):
+ command.setCriticalChance(command.getCriticalChance + actor.getSkillModBase('expertise_critical_line_dm_crit'))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_crit_3.py b/scripts/commands/combat/bh_dm_crit_3.py
new file mode 100644
index 00000000..c12e2a2a
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_crit_3.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm_crit'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm_crit')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm_crit'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_action_line_dm_crit'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost()*actor.getSkillModBase('expertise_action_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_critical_line_dm_crit'):
+ command.setCriticalChance(command.getCriticalChance + actor.getSkillModBase('expertise_critical_line_dm_crit'))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_crit_4.py b/scripts/commands/combat/bh_dm_crit_4.py
new file mode 100644
index 00000000..c12e2a2a
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_crit_4.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm_crit'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm_crit')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm_crit'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_action_line_dm_crit'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost()*actor.getSkillModBase('expertise_action_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_critical_line_dm_crit'):
+ command.setCriticalChance(command.getCriticalChance + actor.getSkillModBase('expertise_critical_line_dm_crit'))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_crit_5.py b/scripts/commands/combat/bh_dm_crit_5.py
new file mode 100644
index 00000000..c12e2a2a
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_crit_5.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm_crit'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm_crit')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm_crit'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_action_line_dm_crit'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost()*actor.getSkillModBase('expertise_action_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_critical_line_dm_crit'):
+ command.setCriticalChance(command.getCriticalChance + actor.getSkillModBase('expertise_critical_line_dm_crit'))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_crit_6.py b/scripts/commands/combat/bh_dm_crit_6.py
new file mode 100644
index 00000000..c12e2a2a
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_crit_6.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm_crit'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm_crit')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm_crit'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_action_line_dm_crit'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost()*actor.getSkillModBase('expertise_action_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_critical_line_dm_crit'):
+ command.setCriticalChance(command.getCriticalChance + actor.getSkillModBase('expertise_critical_line_dm_crit'))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_crit_7.py b/scripts/commands/combat/bh_dm_crit_7.py
new file mode 100644
index 00000000..c12e2a2a
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_crit_7.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm_crit'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm_crit')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm_crit'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_action_line_dm_crit'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost()*actor.getSkillModBase('expertise_action_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_critical_line_dm_crit'):
+ command.setCriticalChance(command.getCriticalChance + actor.getSkillModBase('expertise_critical_line_dm_crit'))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_dm_crit_8.py b/scripts/commands/combat/bh_dm_crit_8.py
new file mode 100644
index 00000000..c12e2a2a
--- /dev/null
+++ b/scripts/commands/combat/bh_dm_crit_8.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_dm_crit'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillModBase('expertise_cooldown_line_dm_crit')/10))
+
+ if actor.getSkillMod('expertise_damage_line_dm_crit'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage()*actor.getSkillModBase('expertise_damage_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_action_line_dm_crit'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost()*actor.getSkillModBase('expertise_action_line_dm_crit'))/100))
+
+ if actor.getSkillMod('expertise_critical_line_dm_crit'):
+ command.setCriticalChance(command.getCriticalChance + actor.getSkillModBase('expertise_critical_line_dm_crit'))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_return_fire_command_1.py b/scripts/commands/combat/bh_return_fire_command_1.py
new file mode 100644
index 00000000..9fb224c0
--- /dev/null
+++ b/scripts/commands/combat/bh_return_fire_command_1.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_bh_return_fire'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillMod('expertise_cooldown_line_bh_return_fire').getBase()/10))
+ return
+
+def run(core, actor, target, commandString):
+ core.buffService.addBuffToCreature(actor, 'bh_return_fire_1', actor)
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_sh_0.py b/scripts/commands/combat/bh_sh_0.py
new file mode 100644
index 00000000..9281d703
--- /dev/null
+++ b/scripts/commands/combat/bh_sh_0.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_sh'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillMod('expertise_cooldown_line_sh').getBase()/10))
+ return
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_sh_1.py b/scripts/commands/combat/bh_sh_1.py
new file mode 100644
index 00000000..9281d703
--- /dev/null
+++ b/scripts/commands/combat/bh_sh_1.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_sh'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillMod('expertise_cooldown_line_sh').getBase()/10))
+ return
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_sh_2.py b/scripts/commands/combat/bh_sh_2.py
new file mode 100644
index 00000000..9281d703
--- /dev/null
+++ b/scripts/commands/combat/bh_sh_2.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_sh'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillMod('expertise_cooldown_line_sh').getBase()/10))
+ return
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/bh_sh_3.py b/scripts/commands/combat/bh_sh_3.py
new file mode 100644
index 00000000..9281d703
--- /dev/null
+++ b/scripts/commands/combat/bh_sh_3.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_sh'):
+ command.setCooldown(command.getCooldown() - (actor.getSkillMod('expertise_cooldown_line_sh').getBase()/10))
+ return
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/co_armor_cracker.py b/scripts/commands/combat/co_armor_cracker.py
new file mode 100644
index 00000000..c065b7ca
--- /dev/null
+++ b/scripts/commands/combat/co_armor_cracker.py
@@ -0,0 +1,9 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_co_riddle_armor'):
+ command.setCooldown(command.getCooldown() - actor.getSkillMod('expertise_cooldown_line_co_riddle_armor').getBase())
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/co_del_ae_cc_1_1.py b/scripts/commands/combat/co_del_ae_cc_1_1.py
new file mode 100644
index 00000000..ad1f5ab5
--- /dev/null
+++ b/scripts/commands/combat/co_del_ae_cc_1_1.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_area_size_line_co_grenade'):
+ command.setConeLength(command.getConeLength() + actor.getSkillMod('expertise_area_size_line_co_grenade').getBase())
+ if actor.getSkillMod('expertise_damage_line_co_grenade'):
+ command.setAddedDamage(command.getAddedDamage() * (1 + (actor.getSkillMod('expertise_damage_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_action_line_co_grenade'):
+ command.setActionCost(command.getActionCost() * (1 - (actor.getSkillMod('expertise_action_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_delay_reduce_line_co_grenade'):
+ command.setDelayAttackInterval(command.getDelayAttackInterval() - 1)
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/co_del_ae_cc_1_2.py b/scripts/commands/combat/co_del_ae_cc_1_2.py
new file mode 100644
index 00000000..ad1f5ab5
--- /dev/null
+++ b/scripts/commands/combat/co_del_ae_cc_1_2.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_area_size_line_co_grenade'):
+ command.setConeLength(command.getConeLength() + actor.getSkillMod('expertise_area_size_line_co_grenade').getBase())
+ if actor.getSkillMod('expertise_damage_line_co_grenade'):
+ command.setAddedDamage(command.getAddedDamage() * (1 + (actor.getSkillMod('expertise_damage_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_action_line_co_grenade'):
+ command.setActionCost(command.getActionCost() * (1 - (actor.getSkillMod('expertise_action_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_delay_reduce_line_co_grenade'):
+ command.setDelayAttackInterval(command.getDelayAttackInterval() - 1)
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/co_del_ae_cc_1_3.py b/scripts/commands/combat/co_del_ae_cc_1_3.py
new file mode 100644
index 00000000..ad1f5ab5
--- /dev/null
+++ b/scripts/commands/combat/co_del_ae_cc_1_3.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_area_size_line_co_grenade'):
+ command.setConeLength(command.getConeLength() + actor.getSkillMod('expertise_area_size_line_co_grenade').getBase())
+ if actor.getSkillMod('expertise_damage_line_co_grenade'):
+ command.setAddedDamage(command.getAddedDamage() * (1 + (actor.getSkillMod('expertise_damage_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_action_line_co_grenade'):
+ command.setActionCost(command.getActionCost() * (1 - (actor.getSkillMod('expertise_action_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_delay_reduce_line_co_grenade'):
+ command.setDelayAttackInterval(command.getDelayAttackInterval() - 1)
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/co_del_ae_cc_2_1.py b/scripts/commands/combat/co_del_ae_cc_2_1.py
new file mode 100644
index 00000000..ad1f5ab5
--- /dev/null
+++ b/scripts/commands/combat/co_del_ae_cc_2_1.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_area_size_line_co_grenade'):
+ command.setConeLength(command.getConeLength() + actor.getSkillMod('expertise_area_size_line_co_grenade').getBase())
+ if actor.getSkillMod('expertise_damage_line_co_grenade'):
+ command.setAddedDamage(command.getAddedDamage() * (1 + (actor.getSkillMod('expertise_damage_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_action_line_co_grenade'):
+ command.setActionCost(command.getActionCost() * (1 - (actor.getSkillMod('expertise_action_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_delay_reduce_line_co_grenade'):
+ command.setDelayAttackInterval(command.getDelayAttackInterval() - 1)
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/co_del_ae_cc_2_2.py b/scripts/commands/combat/co_del_ae_cc_2_2.py
new file mode 100644
index 00000000..ad1f5ab5
--- /dev/null
+++ b/scripts/commands/combat/co_del_ae_cc_2_2.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_area_size_line_co_grenade'):
+ command.setConeLength(command.getConeLength() + actor.getSkillMod('expertise_area_size_line_co_grenade').getBase())
+ if actor.getSkillMod('expertise_damage_line_co_grenade'):
+ command.setAddedDamage(command.getAddedDamage() * (1 + (actor.getSkillMod('expertise_damage_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_action_line_co_grenade'):
+ command.setActionCost(command.getActionCost() * (1 - (actor.getSkillMod('expertise_action_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_delay_reduce_line_co_grenade'):
+ command.setDelayAttackInterval(command.getDelayAttackInterval() - 1)
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/co_del_ae_dm_1.py b/scripts/commands/combat/co_del_ae_dm_1.py
new file mode 100644
index 00000000..ad1f5ab5
--- /dev/null
+++ b/scripts/commands/combat/co_del_ae_dm_1.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_area_size_line_co_grenade'):
+ command.setConeLength(command.getConeLength() + actor.getSkillMod('expertise_area_size_line_co_grenade').getBase())
+ if actor.getSkillMod('expertise_damage_line_co_grenade'):
+ command.setAddedDamage(command.getAddedDamage() * (1 + (actor.getSkillMod('expertise_damage_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_action_line_co_grenade'):
+ command.setActionCost(command.getActionCost() * (1 - (actor.getSkillMod('expertise_action_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_delay_reduce_line_co_grenade'):
+ command.setDelayAttackInterval(command.getDelayAttackInterval() - 1)
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/co_del_ae_dm_2.py b/scripts/commands/combat/co_del_ae_dm_2.py
new file mode 100644
index 00000000..ad1f5ab5
--- /dev/null
+++ b/scripts/commands/combat/co_del_ae_dm_2.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_area_size_line_co_grenade'):
+ command.setConeLength(command.getConeLength() + actor.getSkillMod('expertise_area_size_line_co_grenade').getBase())
+ if actor.getSkillMod('expertise_damage_line_co_grenade'):
+ command.setAddedDamage(command.getAddedDamage() * (1 + (actor.getSkillMod('expertise_damage_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_action_line_co_grenade'):
+ command.setActionCost(command.getActionCost() * (1 - (actor.getSkillMod('expertise_action_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_delay_reduce_line_co_grenade'):
+ command.setDelayAttackInterval(command.getDelayAttackInterval() - 1)
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/co_del_ae_dm_3.py b/scripts/commands/combat/co_del_ae_dm_3.py
new file mode 100644
index 00000000..ad1f5ab5
--- /dev/null
+++ b/scripts/commands/combat/co_del_ae_dm_3.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_area_size_line_co_grenade'):
+ command.setConeLength(command.getConeLength() + actor.getSkillMod('expertise_area_size_line_co_grenade').getBase())
+ if actor.getSkillMod('expertise_damage_line_co_grenade'):
+ command.setAddedDamage(command.getAddedDamage() * (1 + (actor.getSkillMod('expertise_damage_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_action_line_co_grenade'):
+ command.setActionCost(command.getActionCost() * (1 - (actor.getSkillMod('expertise_action_line_co_grenade').getBase() / 100)))
+ if actor.getSkillMod('expertise_delay_reduce_line_co_grenade'):
+ command.setDelayAttackInterval(command.getDelayAttackInterval() - 1)
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/co_position_secured.py b/scripts/commands/combat/co_position_secured.py
new file mode 100644
index 00000000..84e13b7a
--- /dev/null
+++ b/scripts/commands/combat/co_position_secured.py
@@ -0,0 +1,9 @@
+from resources.objects import Buff
+import sys
+
+def setup(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/combat/co_riddle_armor.py b/scripts/commands/combat/co_riddle_armor.py
new file mode 100644
index 00000000..c065b7ca
--- /dev/null
+++ b/scripts/commands/combat/co_riddle_armor.py
@@ -0,0 +1,9 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_co_riddle_armor'):
+ command.setCooldown(command.getCooldown() - actor.getSkillMod('expertise_cooldown_line_co_riddle_armor').getBase())
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/co_stand_fast.py b/scripts/commands/combat/co_stand_fast.py
new file mode 100644
index 00000000..36b4a557
--- /dev/null
+++ b/scripts/commands/combat/co_stand_fast.py
@@ -0,0 +1,9 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_co_stand_fast'):
+ command.setCooldown(command.getCooldown() - actor.getSkillMod('expertise_cooldown_line_co_stand_fast').getBase())
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/en_spiral_kick_0.py b/scripts/commands/combat/en_spiral_kick_0.py
new file mode 100644
index 00000000..62a7efb2
--- /dev/null
+++ b/scripts/commands/combat/en_spiral_kick_0.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'en_spiral_kick_snare', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/en_spiral_kick_1.py b/scripts/commands/combat/en_spiral_kick_1.py
new file mode 100644
index 00000000..62a7efb2
--- /dev/null
+++ b/scripts/commands/combat/en_spiral_kick_1.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'en_spiral_kick_snare', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/en_spiral_kick_2.py b/scripts/commands/combat/en_spiral_kick_2.py
new file mode 100644
index 00000000..62a7efb2
--- /dev/null
+++ b/scripts/commands/combat/en_spiral_kick_2.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'en_spiral_kick_snare', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/en_spiral_kick_3.py b/scripts/commands/combat/en_spiral_kick_3.py
new file mode 100644
index 00000000..62a7efb2
--- /dev/null
+++ b/scripts/commands/combat/en_spiral_kick_3.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'en_spiral_kick_snare', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/en_spiral_kick_4.py b/scripts/commands/combat/en_spiral_kick_4.py
new file mode 100644
index 00000000..62a7efb2
--- /dev/null
+++ b/scripts/commands/combat/en_spiral_kick_4.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'en_spiral_kick_snare', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/en_thrill.py b/scripts/commands/combat/en_thrill.py
new file mode 100644
index 00000000..1dbabf6a
--- /dev/null
+++ b/scripts/commands/combat/en_thrill.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'en_debuff_thrill', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/en_thrill_1.py b/scripts/commands/combat/en_thrill_1.py
new file mode 100644
index 00000000..41d4b0aa
--- /dev/null
+++ b/scripts/commands/combat/en_thrill_1.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'en_debuff_thrill_1', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/en_thrill_2.py b/scripts/commands/combat/en_thrill_2.py
new file mode 100644
index 00000000..41d4b0aa
--- /dev/null
+++ b/scripts/commands/combat/en_thrill_2.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'en_debuff_thrill_1', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/en_thrill_3.py b/scripts/commands/combat/en_thrill_3.py
new file mode 100644
index 00000000..7e1892d5
--- /dev/null
+++ b/scripts/commands/combat/en_thrill_3.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'en_debuff_thrill_2', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/en_unhealthy_fixation.py b/scripts/commands/combat/en_unhealthy_fixation.py
new file mode 100644
index 00000000..620dd09a
--- /dev/null
+++ b/scripts/commands/combat/en_unhealthy_fixation.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'en_unhealthy_fixation_debuff')
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/en_void_dance.py b/scripts/commands/combat/en_void_dance.py
new file mode 100644
index 00000000..2354238e
--- /dev/null
+++ b/scripts/commands/combat/en_void_dance.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'en_void_dance_buff')
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/en_void_dance_1.py b/scripts/commands/combat/en_void_dance_1.py
new file mode 100644
index 00000000..ce94693c
--- /dev/null
+++ b/scripts/commands/combat/en_void_dance_1.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'en_void_dance_buff_1', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/en_void_dance_2.py b/scripts/commands/combat/en_void_dance_2.py
new file mode 100644
index 00000000..b6167823
--- /dev/null
+++ b/scripts/commands/combat/en_void_dance_2.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'en_void_dance_buff_2', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/en_void_dance_3.py b/scripts/commands/combat/en_void_dance_3.py
new file mode 100644
index 00000000..268bbd4e
--- /dev/null
+++ b/scripts/commands/combat/en_void_dance_3.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'en_void_dance_buff_3', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/forcethrow.py b/scripts/commands/combat/forcethrow.py
index 276deb65..0e529b99 100644
--- a/scripts/commands/combat/forcethrow.py
+++ b/scripts/commands/combat/forcethrow.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'fs_force_throw')
+ core.buffService.addBuffToCreature(target, 'fs_force_throw', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/fs_ae_dm_cc_1.py b/scripts/commands/combat/fs_ae_dm_cc_1.py
new file mode 100644
index 00000000..70a66b61
--- /dev/null
+++ b/scripts/commands/combat/fs_ae_dm_cc_1.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_ae_dm_cc_2.py b/scripts/commands/combat/fs_ae_dm_cc_2.py
new file mode 100644
index 00000000..70a66b61
--- /dev/null
+++ b/scripts/commands/combat/fs_ae_dm_cc_2.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_ae_dm_cc_3.py b/scripts/commands/combat/fs_ae_dm_cc_3.py
new file mode 100644
index 00000000..70a66b61
--- /dev/null
+++ b/scripts/commands/combat/fs_ae_dm_cc_3.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_ae_dm_cc_4.py b/scripts/commands/combat/fs_ae_dm_cc_4.py
new file mode 100644
index 00000000..70a66b61
--- /dev/null
+++ b/scripts/commands/combat/fs_ae_dm_cc_4.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_ae_dm_cc_5.py b/scripts/commands/combat/fs_ae_dm_cc_5.py
new file mode 100644
index 00000000..70a66b61
--- /dev/null
+++ b/scripts/commands/combat/fs_ae_dm_cc_5.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_ae_dm_cc_6.py b/scripts/commands/combat/fs_ae_dm_cc_6.py
new file mode 100644
index 00000000..70a66b61
--- /dev/null
+++ b/scripts/commands/combat/fs_ae_dm_cc_6.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_dm_1.py b/scripts/commands/combat/fs_dm_1.py
new file mode 100644
index 00000000..825798d5
--- /dev/null
+++ b/scripts/commands/combat/fs_dm_1.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_cooldown_line_fs_dm'):
+ command.setCooldown(command.getCooldown() + (actor.getSkillMod('expertise_cooldown_line_fs_dm').getBase()/10))
+
+ if actor.getSkillMod('expertise_damage_line_fs_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillMod('expertise_damage_line_fs_dm').getBase())/100))
+
+ if actor.getSkillMod('expertise_critical_line_fs_dm'):
+ command.setCriticalChance(command.getCriticalChance() + actor.getSkillMod('expertise_critical_line_fs_dm').getBase())
+
+ if actor.getSkillMod('expertise_action_line_fs_dm'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost() * actor.getSkillMod('expertise_action_line_fs_dm').getBase())/100))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_dm_2.py b/scripts/commands/combat/fs_dm_2.py
new file mode 100644
index 00000000..825798d5
--- /dev/null
+++ b/scripts/commands/combat/fs_dm_2.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_cooldown_line_fs_dm'):
+ command.setCooldown(command.getCooldown() + (actor.getSkillMod('expertise_cooldown_line_fs_dm').getBase()/10))
+
+ if actor.getSkillMod('expertise_damage_line_fs_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillMod('expertise_damage_line_fs_dm').getBase())/100))
+
+ if actor.getSkillMod('expertise_critical_line_fs_dm'):
+ command.setCriticalChance(command.getCriticalChance() + actor.getSkillMod('expertise_critical_line_fs_dm').getBase())
+
+ if actor.getSkillMod('expertise_action_line_fs_dm'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost() * actor.getSkillMod('expertise_action_line_fs_dm').getBase())/100))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_dm_3.py b/scripts/commands/combat/fs_dm_3.py
new file mode 100644
index 00000000..825798d5
--- /dev/null
+++ b/scripts/commands/combat/fs_dm_3.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_cooldown_line_fs_dm'):
+ command.setCooldown(command.getCooldown() + (actor.getSkillMod('expertise_cooldown_line_fs_dm').getBase()/10))
+
+ if actor.getSkillMod('expertise_damage_line_fs_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillMod('expertise_damage_line_fs_dm').getBase())/100))
+
+ if actor.getSkillMod('expertise_critical_line_fs_dm'):
+ command.setCriticalChance(command.getCriticalChance() + actor.getSkillMod('expertise_critical_line_fs_dm').getBase())
+
+ if actor.getSkillMod('expertise_action_line_fs_dm'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost() * actor.getSkillMod('expertise_action_line_fs_dm').getBase())/100))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_dm_4.py b/scripts/commands/combat/fs_dm_4.py
new file mode 100644
index 00000000..825798d5
--- /dev/null
+++ b/scripts/commands/combat/fs_dm_4.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_cooldown_line_fs_dm'):
+ command.setCooldown(command.getCooldown() + (actor.getSkillMod('expertise_cooldown_line_fs_dm').getBase()/10))
+
+ if actor.getSkillMod('expertise_damage_line_fs_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillMod('expertise_damage_line_fs_dm').getBase())/100))
+
+ if actor.getSkillMod('expertise_critical_line_fs_dm'):
+ command.setCriticalChance(command.getCriticalChance() + actor.getSkillMod('expertise_critical_line_fs_dm').getBase())
+
+ if actor.getSkillMod('expertise_action_line_fs_dm'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost() * actor.getSkillMod('expertise_action_line_fs_dm').getBase())/100))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_dm_5.py b/scripts/commands/combat/fs_dm_5.py
new file mode 100644
index 00000000..825798d5
--- /dev/null
+++ b/scripts/commands/combat/fs_dm_5.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_cooldown_line_fs_dm'):
+ command.setCooldown(command.getCooldown() + (actor.getSkillMod('expertise_cooldown_line_fs_dm').getBase()/10))
+
+ if actor.getSkillMod('expertise_damage_line_fs_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillMod('expertise_damage_line_fs_dm').getBase())/100))
+
+ if actor.getSkillMod('expertise_critical_line_fs_dm'):
+ command.setCriticalChance(command.getCriticalChance() + actor.getSkillMod('expertise_critical_line_fs_dm').getBase())
+
+ if actor.getSkillMod('expertise_action_line_fs_dm'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost() * actor.getSkillMod('expertise_action_line_fs_dm').getBase())/100))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_dm_6.py b/scripts/commands/combat/fs_dm_6.py
new file mode 100644
index 00000000..825798d5
--- /dev/null
+++ b/scripts/commands/combat/fs_dm_6.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_cooldown_line_fs_dm'):
+ command.setCooldown(command.getCooldown() + (actor.getSkillMod('expertise_cooldown_line_fs_dm').getBase()/10))
+
+ if actor.getSkillMod('expertise_damage_line_fs_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillMod('expertise_damage_line_fs_dm').getBase())/100))
+
+ if actor.getSkillMod('expertise_critical_line_fs_dm'):
+ command.setCriticalChance(command.getCriticalChance() + actor.getSkillMod('expertise_critical_line_fs_dm').getBase())
+
+ if actor.getSkillMod('expertise_action_line_fs_dm'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost() * actor.getSkillMod('expertise_action_line_fs_dm').getBase())/100))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_dm_7.py b/scripts/commands/combat/fs_dm_7.py
new file mode 100644
index 00000000..825798d5
--- /dev/null
+++ b/scripts/commands/combat/fs_dm_7.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_cooldown_line_fs_dm'):
+ command.setCooldown(command.getCooldown() + (actor.getSkillMod('expertise_cooldown_line_fs_dm').getBase()/10))
+
+ if actor.getSkillMod('expertise_damage_line_fs_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillMod('expertise_damage_line_fs_dm').getBase())/100))
+
+ if actor.getSkillMod('expertise_critical_line_fs_dm'):
+ command.setCriticalChance(command.getCriticalChance() + actor.getSkillMod('expertise_critical_line_fs_dm').getBase())
+
+ if actor.getSkillMod('expertise_action_line_fs_dm'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost() * actor.getSkillMod('expertise_action_line_fs_dm').getBase())/100))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_dm_cc_crit_1.py b/scripts/commands/combat/fs_dm_cc_crit_1.py
new file mode 100644
index 00000000..493481d7
--- /dev/null
+++ b/scripts/commands/combat/fs_dm_cc_crit_1.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, actor, buff):
+ actor.setSpeedMultiplierBase(0.5)
+ return
+
+def removeBuff(core, actor, buff):
+ actor.setSpeedMultiplierBase(1)
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_drain_1.py b/scripts/commands/combat/fs_drain_1.py
new file mode 100644
index 00000000..c7937d1e
--- /dev/null
+++ b/scripts/commands/combat/fs_drain_1.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, damage):
+
+ if actor.getSkillMod('expertise_fs_imp_drain'):
+ damage *= (100 + float(actor.getSkillModBase('expertise_fs_imp_drain')))/100
+
+ core.combatService.doDrainHeal(actor, int(damage))
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_drain_2.py b/scripts/commands/combat/fs_drain_2.py
new file mode 100644
index 00000000..c7937d1e
--- /dev/null
+++ b/scripts/commands/combat/fs_drain_2.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, damage):
+
+ if actor.getSkillMod('expertise_fs_imp_drain'):
+ damage *= (100 + float(actor.getSkillModBase('expertise_fs_imp_drain')))/100
+
+ core.combatService.doDrainHeal(actor, int(damage))
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_drain_3.py b/scripts/commands/combat/fs_drain_3.py
new file mode 100644
index 00000000..c7937d1e
--- /dev/null
+++ b/scripts/commands/combat/fs_drain_3.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, damage):
+
+ if actor.getSkillMod('expertise_fs_imp_drain'):
+ damage *= (100 + float(actor.getSkillModBase('expertise_fs_imp_drain')))/100
+
+ core.combatService.doDrainHeal(actor, int(damage))
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_drain_4.py b/scripts/commands/combat/fs_drain_4.py
new file mode 100644
index 00000000..c7937d1e
--- /dev/null
+++ b/scripts/commands/combat/fs_drain_4.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, damage):
+
+ if actor.getSkillMod('expertise_fs_imp_drain'):
+ damage *= (100 + float(actor.getSkillModBase('expertise_fs_imp_drain')))/100
+
+ core.combatService.doDrainHeal(actor, int(damage))
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_drain_5.py b/scripts/commands/combat/fs_drain_5.py
new file mode 100644
index 00000000..c7937d1e
--- /dev/null
+++ b/scripts/commands/combat/fs_drain_5.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, damage):
+
+ if actor.getSkillMod('expertise_fs_imp_drain'):
+ damage *= (100 + float(actor.getSkillModBase('expertise_fs_imp_drain')))/100
+
+ core.combatService.doDrainHeal(actor, int(damage))
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_flurry_1.py b/scripts/commands/combat/fs_flurry_1.py
new file mode 100644
index 00000000..5e5c429e
--- /dev/null
+++ b/scripts/commands/combat/fs_flurry_1.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_damage_line_fs_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillMod('expertise_damage_line_fs_dm').getBase())/100))
+
+ if actor.getSkillMod('expertise_critical_line_fs_dm'):
+ command.setCriticalChance(command.getCriticalChance() + actor.getSkillMod('expertise_critical_line_fs_dm').getBase())
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_flurry_2.py b/scripts/commands/combat/fs_flurry_2.py
new file mode 100644
index 00000000..5e5c429e
--- /dev/null
+++ b/scripts/commands/combat/fs_flurry_2.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_damage_line_fs_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillMod('expertise_damage_line_fs_dm').getBase())/100))
+
+ if actor.getSkillMod('expertise_critical_line_fs_dm'):
+ command.setCriticalChance(command.getCriticalChance() + actor.getSkillMod('expertise_critical_line_fs_dm').getBase())
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_flurry_3.py b/scripts/commands/combat/fs_flurry_3.py
new file mode 100644
index 00000000..5e5c429e
--- /dev/null
+++ b/scripts/commands/combat/fs_flurry_3.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_damage_line_fs_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillMod('expertise_damage_line_fs_dm').getBase())/100))
+
+ if actor.getSkillMod('expertise_critical_line_fs_dm'):
+ command.setCriticalChance(command.getCriticalChance() + actor.getSkillMod('expertise_critical_line_fs_dm').getBase())
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_flurry_4.py b/scripts/commands/combat/fs_flurry_4.py
new file mode 100644
index 00000000..5e5c429e
--- /dev/null
+++ b/scripts/commands/combat/fs_flurry_4.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_damage_line_fs_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillMod('expertise_damage_line_fs_dm').getBase())/100))
+
+ if actor.getSkillMod('expertise_critical_line_fs_dm'):
+ command.setCriticalChance(command.getCriticalChance() + actor.getSkillMod('expertise_critical_line_fs_dm').getBase())
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_flurry_5.py b/scripts/commands/combat/fs_flurry_5.py
new file mode 100644
index 00000000..5e5c429e
--- /dev/null
+++ b/scripts/commands/combat/fs_flurry_5.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_damage_line_fs_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillMod('expertise_damage_line_fs_dm').getBase())/100))
+
+ if actor.getSkillMod('expertise_critical_line_fs_dm'):
+ command.setCriticalChance(command.getCriticalChance() + actor.getSkillMod('expertise_critical_line_fs_dm').getBase())
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_flurry_6.py b/scripts/commands/combat/fs_flurry_6.py
new file mode 100644
index 00000000..5e5c429e
--- /dev/null
+++ b/scripts/commands/combat/fs_flurry_6.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_damage_line_fs_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillMod('expertise_damage_line_fs_dm').getBase())/100))
+
+ if actor.getSkillMod('expertise_critical_line_fs_dm'):
+ command.setCriticalChance(command.getCriticalChance() + actor.getSkillMod('expertise_critical_line_fs_dm').getBase())
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_flurry_7.py b/scripts/commands/combat/fs_flurry_7.py
new file mode 100644
index 00000000..5e5c429e
--- /dev/null
+++ b/scripts/commands/combat/fs_flurry_7.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_damage_line_fs_dm'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillMod('expertise_damage_line_fs_dm').getBase())/100))
+
+ if actor.getSkillMod('expertise_critical_line_fs_dm'):
+ command.setCriticalChance(command.getCriticalChance() + actor.getSkillMod('expertise_critical_line_fs_dm').getBase())
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_maelstrom_1.py b/scripts/commands/combat/fs_maelstrom_1.py
new file mode 100644
index 00000000..70a66b61
--- /dev/null
+++ b/scripts/commands/combat/fs_maelstrom_1.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_maelstrom_2.py b/scripts/commands/combat/fs_maelstrom_2.py
new file mode 100644
index 00000000..70a66b61
--- /dev/null
+++ b/scripts/commands/combat/fs_maelstrom_2.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_maelstrom_3.py b/scripts/commands/combat/fs_maelstrom_3.py
new file mode 100644
index 00000000..70a66b61
--- /dev/null
+++ b/scripts/commands/combat/fs_maelstrom_3.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_maelstrom_4.py b/scripts/commands/combat/fs_maelstrom_4.py
new file mode 100644
index 00000000..70a66b61
--- /dev/null
+++ b/scripts/commands/combat/fs_maelstrom_4.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_maelstrom_5.py b/scripts/commands/combat/fs_maelstrom_5.py
new file mode 100644
index 00000000..70a66b61
--- /dev/null
+++ b/scripts/commands/combat/fs_maelstrom_5.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_fs_dm_armor_bypass'):
+ command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass"))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_sweep_1.py b/scripts/commands/combat/fs_sweep_1.py
new file mode 100644
index 00000000..6671e0ad
--- /dev/null
+++ b/scripts/commands/combat/fs_sweep_1.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_cooldown_line_fs_sweep'):
+ command.setCooldown(command.getCooldown() + (actor.getSkillModBase('expertise_cooldown_line_fs_sweep')/10))
+
+ if actor.getSkillMod('expertise_damage_line_fs_sweep'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillModBase('expertise_damage_line_fs_sweep'))/100))
+
+ if actor.getSkillMod('expertise_action_line_fs_sweep'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost() * actor.getSkillModBase('expertise_action_line_fs_sweep'))/100))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_sweep_2.py b/scripts/commands/combat/fs_sweep_2.py
new file mode 100644
index 00000000..6671e0ad
--- /dev/null
+++ b/scripts/commands/combat/fs_sweep_2.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_cooldown_line_fs_sweep'):
+ command.setCooldown(command.getCooldown() + (actor.getSkillModBase('expertise_cooldown_line_fs_sweep')/10))
+
+ if actor.getSkillMod('expertise_damage_line_fs_sweep'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillModBase('expertise_damage_line_fs_sweep'))/100))
+
+ if actor.getSkillMod('expertise_action_line_fs_sweep'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost() * actor.getSkillModBase('expertise_action_line_fs_sweep'))/100))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_sweep_3.py b/scripts/commands/combat/fs_sweep_3.py
new file mode 100644
index 00000000..6671e0ad
--- /dev/null
+++ b/scripts/commands/combat/fs_sweep_3.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_cooldown_line_fs_sweep'):
+ command.setCooldown(command.getCooldown() + (actor.getSkillModBase('expertise_cooldown_line_fs_sweep')/10))
+
+ if actor.getSkillMod('expertise_damage_line_fs_sweep'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillModBase('expertise_damage_line_fs_sweep'))/100))
+
+ if actor.getSkillMod('expertise_action_line_fs_sweep'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost() * actor.getSkillModBase('expertise_action_line_fs_sweep'))/100))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_sweep_4.py b/scripts/commands/combat/fs_sweep_4.py
new file mode 100644
index 00000000..6671e0ad
--- /dev/null
+++ b/scripts/commands/combat/fs_sweep_4.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_cooldown_line_fs_sweep'):
+ command.setCooldown(command.getCooldown() + (actor.getSkillModBase('expertise_cooldown_line_fs_sweep')/10))
+
+ if actor.getSkillMod('expertise_damage_line_fs_sweep'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillModBase('expertise_damage_line_fs_sweep'))/100))
+
+ if actor.getSkillMod('expertise_action_line_fs_sweep'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost() * actor.getSkillModBase('expertise_action_line_fs_sweep'))/100))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_sweep_5.py b/scripts/commands/combat/fs_sweep_5.py
new file mode 100644
index 00000000..6671e0ad
--- /dev/null
+++ b/scripts/commands/combat/fs_sweep_5.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_cooldown_line_fs_sweep'):
+ command.setCooldown(command.getCooldown() + (actor.getSkillModBase('expertise_cooldown_line_fs_sweep')/10))
+
+ if actor.getSkillMod('expertise_damage_line_fs_sweep'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillModBase('expertise_damage_line_fs_sweep'))/100))
+
+ if actor.getSkillMod('expertise_action_line_fs_sweep'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost() * actor.getSkillModBase('expertise_action_line_fs_sweep'))/100))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_sweep_6.py b/scripts/commands/combat/fs_sweep_6.py
new file mode 100644
index 00000000..6671e0ad
--- /dev/null
+++ b/scripts/commands/combat/fs_sweep_6.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_cooldown_line_fs_sweep'):
+ command.setCooldown(command.getCooldown() + (actor.getSkillModBase('expertise_cooldown_line_fs_sweep')/10))
+
+ if actor.getSkillMod('expertise_damage_line_fs_sweep'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillModBase('expertise_damage_line_fs_sweep'))/100))
+
+ if actor.getSkillMod('expertise_action_line_fs_sweep'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost() * actor.getSkillModBase('expertise_action_line_fs_sweep'))/100))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/combat/fs_sweep_7.py b/scripts/commands/combat/fs_sweep_7.py
new file mode 100644
index 00000000..6671e0ad
--- /dev/null
+++ b/scripts/commands/combat/fs_sweep_7.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_cooldown_line_fs_sweep'):
+ command.setCooldown(command.getCooldown() + (actor.getSkillModBase('expertise_cooldown_line_fs_sweep')/10))
+
+ if actor.getSkillMod('expertise_damage_line_fs_sweep'):
+ command.setAddedDamage(command.getAddedDamage() + ((command.getAddedDamage() * actor.getSkillModBase('expertise_damage_line_fs_sweep'))/100))
+
+ if actor.getSkillMod('expertise_action_line_fs_sweep'):
+ command.setActionCost(command.getActionCost() - ((command.getActionCost() * actor.getSkillModBase('expertise_action_line_fs_sweep'))/100))
+
+ return
+
+def run(core, actor, target, commandString):
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/combat/me_burst_1.py b/scripts/commands/combat/me_burst_1.py
new file mode 100644
index 00000000..f3944a79
--- /dev/null
+++ b/scripts/commands/combat/me_burst_1.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'me_burst_1', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/me_cranial_smash_1.py b/scripts/commands/combat/me_cranial_smash_1.py
new file mode 100644
index 00000000..0325e3b0
--- /dev/null
+++ b/scripts/commands/combat/me_cranial_smash_1.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'me_cranial_smash_1', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/me_doom.py b/scripts/commands/combat/me_doom.py
new file mode 100644
index 00000000..890f1ee4
--- /dev/null
+++ b/scripts/commands/combat/me_doom.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'me_doom', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/me_electrolyte_drain_1.py b/scripts/commands/combat/me_electrolyte_drain_1.py
new file mode 100644
index 00000000..0775e620
--- /dev/null
+++ b/scripts/commands/combat/me_electrolyte_drain_1.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'me_electrolyte_drain_1', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/me_induce_insanity_1.py b/scripts/commands/combat/me_induce_insanity_1.py
index 76c03af9..8b2d04a9 100644
--- a/scripts/commands/combat/me_induce_insanity_1.py
+++ b/scripts/commands/combat/me_induce_insanity_1.py
@@ -1,10 +1,11 @@
import sys
def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'me_induce_insanity_1', actor)
return
def preRun(core, actor, target, command):
return
def run(core, actor, target, commandString):
- return
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/me_serotonin_purge_1.py b/scripts/commands/combat/me_serotonin_purge_1.py
new file mode 100644
index 00000000..c15e6e77
--- /dev/null
+++ b/scripts/commands/combat/me_serotonin_purge_1.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, actor, target, command):
+ core.buffService.addBuffToCreature(target, 'me_serotonin_purge_1', actor)
+ return
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/me_stasis_1.py b/scripts/commands/combat/me_stasis_1.py
index 35ffc3d7..977ff1be 100644
--- a/scripts/commands/combat/me_stasis_1.py
+++ b/scripts/commands/combat/me_stasis_1.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('me_stasis_1')
+ core.buffService.addBuffToCreature(target, 'me_stasis_1', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_ae_dm_cc_1.py b/scripts/commands/combat/of_ae_dm_cc_1.py
index 8cb29c18..91fcdb26 100644
--- a/scripts/commands/combat/of_ae_dm_cc_1.py
+++ b/scripts/commands/combat/of_ae_dm_cc_1.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_ae_dm_cc_1')
+ core.buffService.addBuffToCreature(target, 'of_ae_dm_cc_1', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_ae_dm_cc_2.py b/scripts/commands/combat/of_ae_dm_cc_2.py
index 6a6e15d1..21314fd9 100644
--- a/scripts/commands/combat/of_ae_dm_cc_2.py
+++ b/scripts/commands/combat/of_ae_dm_cc_2.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_ae_dm_cc_2')
+ core.buffService.addBuffToCreature(target, 'of_ae_dm_cc_2', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_ae_dm_cc_3.py b/scripts/commands/combat/of_ae_dm_cc_3.py
index fe44b74b..1a282584 100644
--- a/scripts/commands/combat/of_ae_dm_cc_3.py
+++ b/scripts/commands/combat/of_ae_dm_cc_3.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_ae_dm_cc_3')
+ core.buffService.addBuffToCreature(target, 'of_ae_dm_cc_3', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_cc_melee_1.py b/scripts/commands/combat/of_cc_melee_1.py
index 78feccc6..d6c0b925 100644
--- a/scripts/commands/combat/of_cc_melee_1.py
+++ b/scripts/commands/combat/of_cc_melee_1.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_cc_melee_1')
+ core.buffService.addBuffToCreature(target, 'of_cc_melee_1', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_cc_melee_2.py b/scripts/commands/combat/of_cc_melee_2.py
index 90462c2e..045fbdaa 100644
--- a/scripts/commands/combat/of_cc_melee_2.py
+++ b/scripts/commands/combat/of_cc_melee_2.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_cc_melee_2')
+ core.buffService.addBuffToCreature(target, 'of_cc_melee_2', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_cc_melee_3.py b/scripts/commands/combat/of_cc_melee_3.py
index b23d1da4..cf690edf 100644
--- a/scripts/commands/combat/of_cc_melee_3.py
+++ b/scripts/commands/combat/of_cc_melee_3.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_cc_melee_3')
+ core.buffService.addBuffToCreature(target, 'of_cc_melee_3', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_cc_melee_4.py b/scripts/commands/combat/of_cc_melee_4.py
index 7c5fb4ac..46ace711 100644
--- a/scripts/commands/combat/of_cc_melee_4.py
+++ b/scripts/commands/combat/of_cc_melee_4.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_cc_melee_4')
+ core.buffService.addBuffToCreature(target, 'of_cc_melee_4', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_cc_melee_5.py b/scripts/commands/combat/of_cc_melee_5.py
index b30529b9..5d476219 100644
--- a/scripts/commands/combat/of_cc_melee_5.py
+++ b/scripts/commands/combat/of_cc_melee_5.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_cc_melee_5')
+ core.buffService.addBuffToCreature(target, 'of_cc_melee_5', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_cc_melee_6.py b/scripts/commands/combat/of_cc_melee_6.py
index 8ade5109..1401aebc 100644
--- a/scripts/commands/combat/of_cc_melee_6.py
+++ b/scripts/commands/combat/of_cc_melee_6.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_cc_melee_6')
+ core.buffService.addBuffToCreature(target, 'of_cc_melee_6', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_cc_melee_7.py b/scripts/commands/combat/of_cc_melee_7.py
index 8736060a..a31ea5ef 100644
--- a/scripts/commands/combat/of_cc_melee_7.py
+++ b/scripts/commands/combat/of_cc_melee_7.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_cc_melee_7')
+ core.buffService.addBuffToCreature(target, 'of_cc_melee_7', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_deadeye_debuff.py b/scripts/commands/combat/of_deadeye_debuff.py
index 5209b851..1b0a0ca8 100644
--- a/scripts/commands/combat/of_deadeye_debuff.py
+++ b/scripts/commands/combat/of_deadeye_debuff.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_deadeye_debuff')
+ core.buffService.addBuffToCreature(target, 'of_deadeye_debuff', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_deb_def_1.py b/scripts/commands/combat/of_deb_def_1.py
index 6e9a7fd3..97a9e475 100644
--- a/scripts/commands/combat/of_deb_def_1.py
+++ b/scripts/commands/combat/of_deb_def_1.py
@@ -1,11 +1,11 @@
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_deb_def_1')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_1', actor)
if actor.getSkillMod('expertise_of_adv_paint_debuff'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_1')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_1')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_1', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_1', actor)
if actor.getSkillMod('expertise_of_adv_paint_expose'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_1')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_1')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_1', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_1', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_deb_def_2.py b/scripts/commands/combat/of_deb_def_2.py
index 109e4d2c..3343fc97 100644
--- a/scripts/commands/combat/of_deb_def_2.py
+++ b/scripts/commands/combat/of_deb_def_2.py
@@ -1,11 +1,11 @@
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_deb_def_2')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_2', actor)
if actor.getSkillMod('expertise_of_adv_paint_debuff'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_2')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_2')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_2', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_2', actor)
if actor.getSkillMod('expertise_of_adv_paint_expose'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_2')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_2')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_2', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_2', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_deb_def_3.py b/scripts/commands/combat/of_deb_def_3.py
index 0060bee0..77e1d3fc 100644
--- a/scripts/commands/combat/of_deb_def_3.py
+++ b/scripts/commands/combat/of_deb_def_3.py
@@ -1,11 +1,11 @@
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_deb_def_3')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_3', actor)
if actor.getSkillMod('expertise_of_adv_paint_debuff'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_3')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_3')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_3', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_3', actor)
if actor.getSkillMod('expertise_of_adv_paint_expose'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_3')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_3')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_3', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_3', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_deb_def_4.py b/scripts/commands/combat/of_deb_def_4.py
index 32b7d21a..b9aa9a9c 100644
--- a/scripts/commands/combat/of_deb_def_4.py
+++ b/scripts/commands/combat/of_deb_def_4.py
@@ -1,11 +1,11 @@
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_deb_def_4')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_4', actor)
if actor.getSkillMod('expertise_of_adv_paint_debuff'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_4')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_4')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_4', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_4', actor)
if actor.getSkillMod('expertise_of_adv_paint_expose'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_4')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_4')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_4', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_4', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_deb_def_5.py b/scripts/commands/combat/of_deb_def_5.py
index f880a828..c641d203 100644
--- a/scripts/commands/combat/of_deb_def_5.py
+++ b/scripts/commands/combat/of_deb_def_5.py
@@ -1,11 +1,11 @@
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_deb_def_5')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_5', actor)
if actor.getSkillMod('expertise_of_adv_paint_debuff'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_5')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_5')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_5', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_5', actor)
if actor.getSkillMod('expertise_of_adv_paint_expose'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_5')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_5')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_5', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_5', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_deb_def_6.py b/scripts/commands/combat/of_deb_def_6.py
index aa1f3f18..0dfde469 100644
--- a/scripts/commands/combat/of_deb_def_6.py
+++ b/scripts/commands/combat/of_deb_def_6.py
@@ -1,11 +1,11 @@
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_deb_def_6')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_6', actor)
if actor.getSkillMod('expertise_of_adv_paint_debuff'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_6')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_6')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_6', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_6', actor)
if actor.getSkillMod('expertise_of_adv_paint_expose'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_6')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_6')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_6', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_6', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_deb_def_7.py b/scripts/commands/combat/of_deb_def_7.py
index ac8dbaec..a5f19a81 100644
--- a/scripts/commands/combat/of_deb_def_7.py
+++ b/scripts/commands/combat/of_deb_def_7.py
@@ -1,11 +1,11 @@
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_deb_def_7')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_7', actor)
if actor.getSkillMod('expertise_of_adv_paint_debuff'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_7')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_7')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_7', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_7', actor)
if actor.getSkillMod('expertise_of_adv_paint_expose'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_7')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_7')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_7', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_7', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_deb_def_8.py b/scripts/commands/combat/of_deb_def_8.py
index b2ad7912..5ecc4517 100644
--- a/scripts/commands/combat/of_deb_def_8.py
+++ b/scripts/commands/combat/of_deb_def_8.py
@@ -1,11 +1,11 @@
def setup(core, actor, target, command):
- core.buffService.addBuffToCreature(target, 'of_deb_def_8;)
+ core.buffService.addBuffToCreature(target, 'of_deb_def_8', actor)
if actor.getSkillMod('expertise_of_adv_paint_debuff'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_8')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_8')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_8', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_debuff_8', actor)
if actor.getSkillMod('expertise_of_adv_paint_expose'):
- core.buffService.addBuffToCreature(target, 'of_deb_def_8')
- core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_8')
+ core.buffService.addBuffToCreature(target, 'of_deb_def_8', actor)
+ core.buffService.addBuffToCreature(target, 'of_adv_paint_expose_8', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_decapitate_1.py b/scripts/commands/combat/of_decapitate_1.py
index d32bcc1e..9e6e9440 100644
--- a/scripts/commands/combat/of_decapitate_1.py
+++ b/scripts/commands/combat/of_decapitate_1.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('of_decap_bleed_1')
+ core.buffService.addBuffToCreature(target, 'of_decap_bleed_1', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_decapitate_2.py b/scripts/commands/combat/of_decapitate_2.py
index 7202e1e7..fb2cecf3 100644
--- a/scripts/commands/combat/of_decapitate_2.py
+++ b/scripts/commands/combat/of_decapitate_2.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('of_decap_bleed_2')
+ core.buffService.addBuffToCreature(target, 'of_decap_bleed_2', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_decapitate_3.py b/scripts/commands/combat/of_decapitate_3.py
index 53fc24d1..ffe4fa2f 100644
--- a/scripts/commands/combat/of_decapitate_3.py
+++ b/scripts/commands/combat/of_decapitate_3.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('of_decap_bleed_3')
+ core.buffService.addBuffToCreature(target, 'of_decap_bleed_3', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_decapitate_4.py b/scripts/commands/combat/of_decapitate_4.py
index 0ad1f93d..99481e70 100644
--- a/scripts/commands/combat/of_decapitate_4.py
+++ b/scripts/commands/combat/of_decapitate_4.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('of_decap_bleed_4')
+ core.buffService.addBuffToCreature(target, 'of_decap_bleed_4', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_decapitate_5.py b/scripts/commands/combat/of_decapitate_5.py
index fdc3539e..a282c4ae 100644
--- a/scripts/commands/combat/of_decapitate_5.py
+++ b/scripts/commands/combat/of_decapitate_5.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('of_decap_bleed_5')
+ core.buffService.addBuffToCreature(target, 'of_decap_bleed_5', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_decapitate_6.py b/scripts/commands/combat/of_decapitate_6.py
index 7b9fa74a..dae1edb5 100644
--- a/scripts/commands/combat/of_decapitate_6.py
+++ b/scripts/commands/combat/of_decapitate_6.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('of_decap_bleed_6')
+ core.buffService.addBuffToCreature(target, 'of_decap_bleed_6', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_del_ae_dm_dot_1.py b/scripts/commands/combat/of_del_ae_dm_dot_1.py
index a609a9fd..8fa6ed3b 100644
--- a/scripts/commands/combat/of_del_ae_dm_dot_1.py
+++ b/scripts/commands/combat/of_del_ae_dm_dot_1.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('of_dot_bomb_1')
+ core.buffService.addBuffToCreature(target, 'of_dot_bomb_1', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_del_ae_dm_dot_2.py b/scripts/commands/combat/of_del_ae_dm_dot_2.py
index a609a9fd..8fa6ed3b 100644
--- a/scripts/commands/combat/of_del_ae_dm_dot_2.py
+++ b/scripts/commands/combat/of_del_ae_dm_dot_2.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('of_dot_bomb_1')
+ core.buffService.addBuffToCreature(target, 'of_dot_bomb_1', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_del_ae_dm_dot_3.py b/scripts/commands/combat/of_del_ae_dm_dot_3.py
index a609a9fd..8fa6ed3b 100644
--- a/scripts/commands/combat/of_del_ae_dm_dot_3.py
+++ b/scripts/commands/combat/of_del_ae_dm_dot_3.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('of_dot_bomb_1')
+ core.buffService.addBuffToCreature(target, 'of_dot_bomb_1', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_pistol_bleed_1.py b/scripts/commands/combat/of_pistol_bleed_1.py
index ba2f33ba..a31c6c19 100644
--- a/scripts/commands/combat/of_pistol_bleed_1.py
+++ b/scripts/commands/combat/of_pistol_bleed_1.py
@@ -1,7 +1,7 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('of_pistol_bleed')
+ core.buffService.addBuffToCreature(target, 'of_pistol_bleed', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_sh_0.py b/scripts/commands/combat/of_sh_0.py
new file mode 100644
index 00000000..dcf378ac
--- /dev/null
+++ b/scripts/commands/combat/of_sh_0.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_of_heal'):
+ command.setCooldown(command.getCooldown() - actor.getSkillMod('expertise_cooldown_line_of_heal').getBase())
+ return
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/of_sh_1.py b/scripts/commands/combat/of_sh_1.py
new file mode 100644
index 00000000..dcf378ac
--- /dev/null
+++ b/scripts/commands/combat/of_sh_1.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_of_heal'):
+ command.setCooldown(command.getCooldown() - actor.getSkillMod('expertise_cooldown_line_of_heal').getBase())
+ return
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/of_sh_2.py b/scripts/commands/combat/of_sh_2.py
new file mode 100644
index 00000000..dcf378ac
--- /dev/null
+++ b/scripts/commands/combat/of_sh_2.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup(core, actor, target, command):
+ if actor.getSkillMod('expertise_cooldown_line_of_heal'):
+ command.setCooldown(command.getCooldown() - actor.getSkillMod('expertise_cooldown_line_of_heal').getBase())
+ return
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/of_sh_3.py b/scripts/commands/combat/of_sh_3.py
new file mode 100644
index 00000000..e19f3ca1
--- /dev/null
+++ b/scripts/commands/combat/of_sh_3.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, actor, target, command):
+
+ if actor.getSkillMod('expertise_cooldown_line_of_heal'):
+ command.setCooldown(command.getCooldown() - actor.getSkillMod('expertise_cooldown_line_of_heal').getBase())
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/combat/of_vortex_1.py b/scripts/commands/combat/of_vortex_1.py
index fa9bd5a9..72cf4b13 100644
--- a/scripts/commands/combat/of_vortex_1.py
+++ b/scripts/commands/combat/of_vortex_1.py
@@ -1,8 +1,8 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('of_vortex_bleed_1')
- command.setBuffNameTarget('of_vortex_root')
+ core.buffService.addBuffToCreature(target, 'of_vortex_bleed_1', actor)
+ core.buffService.addBuffToCreature(target, 'of_vortex_root', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_vortex_2.py b/scripts/commands/combat/of_vortex_2.py
index 15ea7699..61b586d4 100644
--- a/scripts/commands/combat/of_vortex_2.py
+++ b/scripts/commands/combat/of_vortex_2.py
@@ -1,8 +1,8 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('of_vortex_bleed_2')
- command.setBuffNameTarget('of_vortex_root')
+ core.buffService.addBuffToCreature(target, 'of_vortex_bleed_2', actor)
+ core.buffService.addBuffToCreature(target, 'of_vortex_root', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_vortex_3.py b/scripts/commands/combat/of_vortex_3.py
index 6b5a9e0f..4507ec9d 100644
--- a/scripts/commands/combat/of_vortex_3.py
+++ b/scripts/commands/combat/of_vortex_3.py
@@ -1,8 +1,8 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('of_vortex_bleed_3')
- command.setBuffNameTarget('of_vortex_root')
+ core.buffService.addBuffToCreature(target, 'of_vortex_bleed_3', actor)
+ core.buffService.addBuffToCreature(target, 'of_vortex_root', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_vortex_4.py b/scripts/commands/combat/of_vortex_4.py
index d185ba6a..ff87ce05 100644
--- a/scripts/commands/combat/of_vortex_4.py
+++ b/scripts/commands/combat/of_vortex_4.py
@@ -1,8 +1,8 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('of_vortex_bleed_4')
- command.setBuffNameTarget('of_vortex_root')
+ core.buffService.addBuffToCreature(target, 'of_vortex_bleed_4', actor)
+ core.buffService.addBuffToCreature(target, 'of_vortex_root', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/of_vortex_5.py b/scripts/commands/combat/of_vortex_5.py
index b8b7010c..ae7aacee 100644
--- a/scripts/commands/combat/of_vortex_5.py
+++ b/scripts/commands/combat/of_vortex_5.py
@@ -1,8 +1,8 @@
import sys
def setup(core, actor, target, command):
- command.setBuffNameTarget('of_vortex_bleed_5')
- command.setBuffNameTarget('of_vortex_root')
+ core.buffService.addBuffToCreature(target, 'of_vortex_bleed_5', actor)
+ core.buffService.addBuffToCreature(target, 'of_vortex_root', actor)
return
def preRun(core, actor, target, command):
diff --git a/scripts/commands/combat/sm_inside_information.py b/scripts/commands/combat/sm_inside_information.py
new file mode 100644
index 00000000..723669fb
--- /dev/null
+++ b/scripts/commands/combat/sm_inside_information.py
@@ -0,0 +1,62 @@
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+import sys
+
+def preRun(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ return
+
+def setup(core, actor, target, command):
+
+ if actor.hasCooldown('inside_info'):
+ actor.sendSystemMessage('@bounty_hunter:sm_calling_contact_too_often', 0)
+ return
+
+ elif target.hasCooldown('inside_info_target'):
+ actor.sendSystemMessage('@bounty_hunter:sm_calling_contact_too_often_target', 0)
+ return
+
+ if target is None:
+ target = actor
+
+ bountyItem = core.missionService.getBountyListItem(target.getObjectID())
+
+ if bountyItem is None:
+ target.sendSystemMessage('@bounty_hunter:sm_no_bounty_self', 0)
+
+ else:
+ hunters = bountyItem.getAssignedHunters()
+ if hunters.size() > 0:
+ distance = hunterDistance(core, actor, target, hunters)
+ if distance != 0:
+ target.sendSystemMessage(OutOfBand.ProsePackage('@bounty_hunter:sm_bounty_hunter_distance', 'DI', int(distance)), 0)
+ applyCooldowns(actor, target)
+ return
+ else:
+ target.sendSystemMessage(OutOfBand.ProsePackage('@bounty_hunter:sm_bounty_amount_target_with_bounties', 'TO', str(bountyItem.getCreditReward())), 0)
+ applyCooldowns(actor, target)
+ return
+ else:
+ target.sendSystemMessage(OutOfBand.ProsePackage('@bounty_hunter:sm_bounty_amount_target_no_bounties', 'TO', str(bountyItem.getCreditReward())), 0)
+ applyCooldowns(actor, target)
+ return
+ return
+ return
+
+def hunterDistance(core, actor, target, assignedHunters):
+ for objID in assignedHunters:
+ hunter = core.objectService.getObject(objID)
+ if hunter is not None:
+ if hunter.getPlanetId() == target.getPlanetId():
+ if target.getPosition().getDistance2D(hunter.getWorldPosition()) < float(300):
+ return target.getPosition().getDistance2D(hunter.getWorldPosition())
+ return 0
+
+def applyCooldowns(actor, target):
+ actor.addCooldown('inside_info', 60)
+ if target.getObjectID() != actor.getObjectID():
+ target.addCooldown('inside_info_target', 600)
+ return
+ return
\ No newline at end of file
diff --git a/scripts/commands/covercharge.py b/scripts/commands/covercharge.py
new file mode 100644
index 00000000..d0eae641
--- /dev/null
+++ b/scripts/commands/covercharge.py
@@ -0,0 +1,46 @@
+from services.sui import SUIWindow
+from services.sui.SUIWindow import Trigger
+from java.util import Vector
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ ghost = actor.getSlottedObject('ghost')
+ if ghost.getProfession() != 'entertainer_1a':
+ actor.sendSystemMessage('@performance:cc_no_skill', 0)
+ return
+ if commandString == '0':
+ actor.setCoverCharge(0)
+ actor.sendSystemMessage('@performance:cc_stop_charge', 0)
+ return
+
+ if commandString == None or commandString == '':
+ window = core.suiService.createInputBox(2, '@performance:cc_set_title', '@performance:cc_set_prompt', actor, None, 10, handleCoverCharge)
+ window.setProperty('txtInput:NumericInteger', 'true')
+ window.setProperty('txtInput:MaxLength', '12')
+ core.suiService.openSUIWindow(window)
+ return
+ else:
+ try:
+ actor.setCoverCharge(int(commandString))
+ actor.sendSystemMessage('You are now charging a cover of ' + commandString + ' credit(s).', 0)
+ except ValueError:
+ return
+ return
+ return
+
+def handleCoverCharge(actor, window, eventType, returnList):
+ if eventType == 0 and len(returnList) == 1:
+ charge = returnList.get(0)
+ if charge == "0":
+ actor.setCoverCharge(0)
+ actor.sendSystemMessage('@performance:cc_stop_charge', 0)
+ return
+ else:
+ actor.setCoverCharge(charge)
+ actor.sendSystemMessage('You are now charging a cover of ' + returnList.get(0) + ' credits(s).', 0)
+ return
+ return
+ return
\ No newline at end of file
diff --git a/scripts/commands/createvendor.py b/scripts/commands/createvendor.py
new file mode 100644
index 00000000..ce359139
--- /dev/null
+++ b/scripts/commands/createvendor.py
@@ -0,0 +1,171 @@
+import sys
+from java.util import HashMap
+from java.util import Vector
+from services.sui.SUIService import ListBoxType
+from services.sui.SUIService import InputBoxType
+from main import NGECore
+from java.lang import Long
+from services.sui.SUIWindow import Trigger
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if actor.getCombatFlag() > 0:
+ return
+
+ cell = actor.getContainer()
+ building = actor.getGrandparent()
+ ghost = actor.getSlottedObject('ghost')
+
+ if not ghost or not cell or not building or not core.housingService.getPermissions(actor, cell):
+ return
+
+ if ghost.getAmountOfVendors() >= actor.getSkillModBase('manage_vendor'):
+ actor.sendSystemMessage('@player_structure:full_vendors', 0)
+ return
+
+ suiOptions = HashMap()
+ suiOptions.put(Long(1), '@player_structure:terminal')
+ suiOptions.put(Long(2), '@player_structure:droid')
+ # TODO add creatures
+ window = core.suiService.createListBox(ListBoxType.LIST_BOX_OK_CANCEL, '@player_structure:vendor_type_t', '@player_structure:vendor_type_d', suiOptions, actor, None, 5)
+ returnList = Vector()
+ returnList.add('List.lstList:SelectedRow')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleFirstWindow)
+ core.suiService.openSUIWindow(window)
+ return
+
+def handleFirstWindow(actor, window, eventType, returnList):
+
+ core = NGECore.getInstance()
+ index = int(returnList.get(0))
+ selected = window.getObjectIdByIndex(index)
+ hiring = actor.getSkillModBase('hiring')
+ if selected == 1:
+ suiOptions = HashMap()
+ if hiring >= 10:
+ suiOptions.put(Long(1), '@player_structure:terminal_bulky')
+ if hiring >= 30:
+ suiOptions.put(Long(2), '@player_structure:terminal_standard')
+ if hiring >= 50:
+ suiOptions.put(Long(3), '@player_structure:terminal_small')
+ if hiring >= 75:
+ suiOptions.put(Long(4), '@player_structure:terminal_fancy')
+ if hiring >= 90:
+ suiOptions.put(Long(5), '@player_structure:terminal_slim')
+ window = core.suiService.createListBox(ListBoxType.LIST_BOX_OK_CANCEL, '@player_structure:terminal_type_t', '@player_structure:terminal_type_d', suiOptions, actor, None, 5)
+ returnList = Vector()
+ returnList.add('List.lstList:SelectedRow')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleTerminalWindow)
+ core.suiService.openSUIWindow(window)
+
+ if selected == 2:
+ suiOptions = HashMap()
+ if hiring >= 20:
+ suiOptions.put(Long(1), '@player_structure:droid_bartender')
+ if hiring >= 50:
+ suiOptions.put(Long(2), '@player_structure:droid_power')
+ if hiring >= 60:
+ suiOptions.put(Long(3), '@player_structure:droid_wed')
+ if hiring >= 90:
+ suiOptions.put(Long(4), '@player_structure:droid_surgical')
+ if hiring >= 100:
+ suiOptions.put(Long(5), '@player_structure:droid_protocol')
+ window = core.suiService.createListBox(ListBoxType.LIST_BOX_OK_CANCEL, '@player_structure:droid_type_t', '@player_structure:droid_type_d', suiOptions, actor, None, 5)
+ returnList = Vector()
+ returnList.add('List.lstList:SelectedRow')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleDroidWindow)
+ core.suiService.openSUIWindow(window)
+
+ return
+
+def handleTerminalWindow(actor, window, eventType, returnList):
+
+ core = NGECore.getInstance()
+ index = int(returnList.get(0))
+ selected = window.getObjectIdByIndex(index)
+
+ if selected == 1:
+ actor.setAttachment('selectedVendorTemplate', 'object/tangible/vendor/shared_vendor_terminal_bulky.iff')
+ elif selected == 2:
+ actor.setAttachment('selectedVendorTemplate', 'object/tangible/vendor/shared_vendor_terminal_standard.iff')
+ elif selected == 3:
+ actor.setAttachment('selectedVendorTemplate', 'object/tangible/vendor/shared_vendor_terminal_small.iff')
+ elif selected == 4:
+ actor.setAttachment('selectedVendorTemplate', 'object/tangible/vendor/shared_vendor_terminal_fancy.iff')
+ elif selected == 5:
+ actor.setAttachment('selectedVendorTemplate', 'object/tangible/vendor/shared_vendor_terminal_slim.iff')
+
+ createNameVendorWindow(core, actor)
+
+ return
+
+def handleDroidWindow(actor, window, eventType, returnList):
+
+ core = NGECore.getInstance()
+ index = int(returnList.get(0))
+ selected = window.getObjectIdByIndex(index)
+
+ if selected == 1:
+ actor.setAttachment('selectedVendorTemplate', 'object/tangible/vendor/shared_vendor_droid_bartender.iff')
+ elif selected == 2:
+ actor.setAttachment('selectedVendorTemplate', 'object/tangible/vendor/shared_vendor_droid_power.iff')
+ elif selected == 3:
+ actor.setAttachment('selectedVendorTemplate', 'object/tangible/vendor/shared_vendor_droid_wed.iff')
+ elif selected == 4:
+ actor.setAttachment('selectedVendorTemplate', 'object/tangible/vendor/shared_vendor_droid_surgical.iff')
+ elif selected == 5:
+ actor.setAttachment('selectedVendorTemplate', 'object/tangible/vendor/shared_vendor_droid_protocol.iff')
+
+ createNameVendorWindow(core, actor)
+
+ return
+
+def createNameVendorWindow(core, actor):
+
+ window = core.suiService.createInputBox(InputBoxType.INPUT_BOX_OK_CANCEL, '@player_structure:name_t', '@player_structure:name_d', actor, None, 5, handleVendorName)
+ core.suiService.openSUIWindow(window)
+ return
+
+def handleVendorName(actor, window, eventType, returnList):
+
+ core = NGECore.getInstance()
+ name = returnList.get(0)
+ print name
+ inventory = actor.getSlottedObject('inventory')
+ ghost = actor.getSlottedObject('ghost')
+
+ if not core.characterService.checkName(name, actor.getClient()):
+ actor.sendSystemMessage('@player_structure:obscene', 0)
+ createNameVendorWindow(core, actor)
+ return
+
+ if not actor.getAttachment('selectedVendorTemplate') or not inventory or not ghost:
+ actor.sendSystemMessage('@player_structure:create_failed', 0)
+ return
+
+ if actor.getInventoryItemCount() >= 80:
+ actor.sendSystemMessage('@player_structure:inventory_full_generic', 0)
+ return
+
+ vendor = core.objectService.createObject(actor.getAttachment('selectedVendorTemplate'), actor.getPlanet())
+
+ if not vendor:
+ actor.sendSystemMessage('@player_structure:create_failed', 0)
+ return
+
+ actor.setAttachment('selectedVendorTemplate', None)
+ vendor.setAttachment('isVendor', True)
+ vendor.setAttachment('onMap', True)
+ vendor.setAttachment('maintenanceAmount', 0)
+ vendor.setAttachment('vendorOwner', Long(actor.getObjectID()))
+ vendor.setAttachment('initialized', False)
+ vendor.setAttachment('vendorSearchEnabled', False)
+ vendor.setCustomName('Vendor: ' + name)
+ ghost.addVendor(vendor.getObjectID())
+ inventory.add(vendor)
+ actor.sendSystemMessage('@player_structure:create_success', 0)
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/dazzle.py b/scripts/commands/dazzle.py
new file mode 100644
index 00000000..03e79b11
--- /dev/null
+++ b/scripts/commands/dazzle.py
@@ -0,0 +1,39 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ level = actor.getLevel()
+ command = 'Dazzle1'
+ effect = 'clienteffect/entertainer_dazzle_level_1.cef'
+ rLevel = 10 # minimum level to perform this effect
+
+ if commandString is None or commandString == '':
+
+ if level >= 30:
+ command = 'Dazzle3'
+ effect = 'clienteffect/entertainer_dazzle_level_3.cef'
+
+ elif level >= 20:
+ command = 'Dazzle2'
+ effect = 'clienteffect/entertainer_dazzle_level_2.cef'
+
+ if commandString is not None:
+ if commandString == '2':
+ command = 'Dazzle2'
+ effect = 'clienteffect/entertainer_dazzle_level_2.cef'
+ rLevel = 20
+
+ elif commandString == '3':
+ command = 'Dazzle3'
+ effect = 'clienteffect/entertainer_dazzle_level_3.cef'
+ rLevel = 30
+
+ if level < rLevel:
+ actor.sendSystemMessage('@performance:effect_lack_skill_self', 0)
+ return
+
+ if core.entertainmentService.performEffect(actor, command, effect, target) is True:
+ actor.sendSystemMessage('@performance:effect_perform_dazzle', 0)
+ return
\ No newline at end of file
diff --git a/scripts/commands/dismissgroupmember.py b/scripts/commands/dismissgroupmember.py
new file mode 100644
index 00000000..7c384e0a
--- /dev/null
+++ b/scripts/commands/dismissgroupmember.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ if actor and target:
+ core.groupService.handleGroupKick(actor, target)
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/dismount.py b/scripts/commands/dismount.py
new file mode 100644
index 00000000..08aeba54
--- /dev/null
+++ b/scripts/commands/dismount.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ if not target:
+ return
+
+ if actor.getObjectID() != target.getOwnerId():
+ return
+
+
+ if core.mountService.isMounted(actor) is True:
+ core.mountService.dismount(actor, target)
+
+ return
+
diff --git a/scripts/commands/distract.py b/scripts/commands/distract.py
new file mode 100644
index 00000000..ec57828b
--- /dev/null
+++ b/scripts/commands/distract.py
@@ -0,0 +1,38 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ level = actor.getLevel()
+ command = 'Distract1'
+ effect = 'clienteffect/entertainer_distract_level_1.cef'
+ rLevel = 18 # minimum level to perform this effect
+
+ if commandString is None or commandString == '':
+ if level >= 75:
+ command = 'Distract3'
+ effect = 'clienteffect/entertainer_distract_level_3.cef'
+
+ elif level >= 50:
+ command = 'Distract2'
+ effect = 'clienteffect/entertainer_distract_level_2.cef'
+
+ if commandString is not None:
+ if commandString == '2':
+ command = 'Distract2'
+ effect = 'clienteffect/entertainer_distract_level_2.cef'
+ rLevel = 50
+
+ elif commandString == '3':
+ command = 'Distract3'
+ effect = 'clienteffect/entertainer_distract_level_3.cef'
+ rLevel = 75
+
+ if level < rLevel:
+ actor.sendSystemMessage('@performance:effect_lack_skill_self', 0)
+ return
+
+ if core.entertainmentService.performEffect(actor, command, effect, target) is True:
+ actor.sendSystemMessage('@performance:effect_perform_distract', 0)
+ return
\ No newline at end of file
diff --git a/scripts/commands/duel.py b/scripts/commands/duel.py
index 4ce25bdf..cd26b240 100644
--- a/scripts/commands/duel.py
+++ b/scripts/commands/duel.py
@@ -22,6 +22,7 @@ def run(core, actor, target, commandString):
if actor.getDuelList().contains(target):
actor.sendSystemMessage('You already challenged ' + target.getCustomName() + ' to a duel.', 0)
+ return
combatSvc.handleDuel(actor, target)
diff --git a/scripts/commands/editbiography.py b/scripts/commands/editbiography.py
new file mode 100644
index 00000000..cfdb755f
--- /dev/null
+++ b/scripts/commands/editbiography.py
@@ -0,0 +1,10 @@
+import sys
+from protocol.swg.objectControllerObjects import BiographyUpdate
+from protocol.swg import ObjControllerMessage
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ print ('do you do anything?!')
+ return
\ No newline at end of file
diff --git a/scripts/commands/eject.py b/scripts/commands/eject.py
new file mode 100644
index 00000000..eafbd1f0
--- /dev/null
+++ b/scripts/commands/eject.py
@@ -0,0 +1,8 @@
+import sys
+
+def run(core, actor, target, commandString):
+ instSvc = core.instanceService
+
+ if instSvc.isInInstance(actor):
+ instSvc.remove(instSvc.getActiveInstance(actor), actor)
+
diff --git a/scripts/commands/en_action_regen.py b/scripts/commands/en_action_regen.py
new file mode 100644
index 00000000..c4ea6986
--- /dev/null
+++ b/scripts/commands/en_action_regen.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ core.buffService.addBuffToCreature(actor, 'en_action_regen', actor)
+ return
\ No newline at end of file
diff --git a/scripts/commands/en_holographic_image.py b/scripts/commands/en_holographic_image.py
new file mode 100644
index 00000000..ad5e8eb7
--- /dev/null
+++ b/scripts/commands/en_holographic_image.py
@@ -0,0 +1,21 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ player = actor.getSlottedObject('ghost')
+
+ maxHolos = 1
+
+ if actor.getSkillMod('expertise_en_holographic_additional_backup') is not None:
+ maxHolos += actor.getSkillMod('expertise_en_holographic_additional_backup').getBase()
+
+ holo = core.objectService.createObject(actor.getTemplate(), 0, actor.getPlanet(), actor.getPosition(), actor.getOrientation(), None, False)
+ holo.setHologram(True)
+ holo.setCustomName('a Hologram') # a Hologram
+ holo.setHeight(actor.getHeight())
+ holo.setCustomization(actor.getCustomization())
+
+ core.simulationService.add(holo, holo.getPosition().x, holo.getPosition().z, True)
+ return
\ No newline at end of file
diff --git a/scripts/commands/en_holographic_recall.py b/scripts/commands/en_holographic_recall.py
new file mode 100644
index 00000000..66c6ae4e
--- /dev/null
+++ b/scripts/commands/en_holographic_recall.py
@@ -0,0 +1,7 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ return
\ No newline at end of file
diff --git a/scripts/commands/en_sprint_1.py b/scripts/commands/en_sprint_1.py
new file mode 100644
index 00000000..a24ef49d
--- /dev/null
+++ b/scripts/commands/en_sprint_1.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ core.buffService.addBuffToCreature(actor, 'en_sprint', actor)
+ return
\ No newline at end of file
diff --git a/scripts/commands/endduel.py b/scripts/commands/endduel.py
index 030ef9b3..5df64250 100644
--- a/scripts/commands/endduel.py
+++ b/scripts/commands/endduel.py
@@ -19,7 +19,7 @@ def run(core, actor, target, commandString):
if not combatSvc.areInDuel(actor, target):
return
- combatSvc.handleEndDuel(actor, target)
+ combatSvc.handleEndDuel(actor, target, True)
return
\ No newline at end of file
diff --git a/scripts/commands/featuredSolo.py b/scripts/commands/featuredSolo.py
new file mode 100644
index 00000000..e7e943b0
--- /dev/null
+++ b/scripts/commands/featuredSolo.py
@@ -0,0 +1,14 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if actor.getLevel() < 90:
+ actor.sendSystemMessage('@performance:effect_lack_skill_self', 0)
+ return
+
+ if core.entertainmentService.performEffect(actor, 'FeaturedSolo', 'clienteffect/entertainer_featured_solo.cef', target) is True:
+ actor.sendSystemMessage('@performance:effect_perform_featured_solo', 0)
+ return
\ No newline at end of file
diff --git a/scripts/commands/findfriend.py b/scripts/commands/findfriend.py
new file mode 100644
index 00000000..c6f528ac
--- /dev/null
+++ b/scripts/commands/findfriend.py
@@ -0,0 +1,41 @@
+from resources.objects.waypoint import WaypointObject
+from engine.resources.common import CRC
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ ghost = actor.getSlottedObject('ghost')
+ friend = commandString.split(' ')[0]
+
+ if ghost.getFriendList().contains(friend):
+ friendObj = core.chatService.getObjectByFirstName(friend)
+ if friendObj is not None:
+ if friendObj.getSlottedObject('ghost').getFriendList().contains(actor.getCustomName().lower().split(' ')[0]):
+ createWaypoint(core, actor, friendObj)
+ return
+ return
+ return
+
+
+def createWaypoint(core, actor, friendObj):
+ ghost = actor.getSlottedObject('ghost')
+ friendName = friendObj.getCustomName().split(' ')[0]
+ wp = WaypointObject()
+
+ for wp in ghost.getWaypoints():
+ if wp.getName() == friendName and wp.getPlanet() == friendObj.getPlanet():
+ core.commandService.callCommand(actor, 'serverdestroyobject', wp, '')
+ break
+
+ waypoint = core.objectService.createObject('object/waypoint/shared_waypoint.iff', friendObj.getPlanet(), friendObj.getWorldPosition().x, friendObj.getWorldPosition().z, friendObj.getWorldPosition().y)
+ waypoint.setName(friendName)
+ waypoint.setActive(True)
+ waypoint.setColor(WaypointObject.YELLOW)
+ waypoint.setName(friendName)
+ waypoint.setPlanetCRC(CRC.StringtoCRC(friendObj.getPlanet().name))
+ waypoint.setStringAttribute('', '')
+ ghost.waypointAdd(waypoint)
+ actor.sendSystemMessage('A waypoint has been created in your datapad at the location.', 0)
+ return
diff --git a/scripts/commands/firejet.py b/scripts/commands/firejet.py
new file mode 100644
index 00000000..26261d56
--- /dev/null
+++ b/scripts/commands/firejet.py
@@ -0,0 +1,38 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ level = actor.getLevel()
+ command = 'FireJets1'
+ effect = 'clienteffect/entertainer_fire_jets_level_1.cef'
+ rLevel = 26 # minimum level to perform this effect
+
+ if commandString is None or commandString == '':
+ if level >= 75:
+ command = 'FireJets3'
+ effect = 'clienteffect/entertainer_fire_jets_level_3.cef'
+
+ elif level >= 50:
+ command = 'FireJets2'
+ effect = 'clienteffect/entertainer_fire_jets_level_2.cef'
+
+ if commandString is not None:
+ if commandString == '2':
+ command = 'FireJets2'
+ effect = 'clienteffect/entertainer_fire_jets_level_2.cef'
+ rLevel = 50
+
+ elif commandString == '3':
+ command = 'FireJets3'
+ effect = 'clienteffect/entertainer_fire_jets_level_3.cef'
+ rLevel = 75
+
+ if level < rLevel:
+ actor.sendSystemMessage('@performance:effect_lack_skill_self', 0)
+ return
+
+ if core.entertainmentService.performEffect(actor, command, effect, target) is True:
+ actor.sendSystemMessage('@performance:effect_perform_fire_jets', 0)
+ return
\ No newline at end of file
diff --git a/scripts/commands/firejet2.py b/scripts/commands/firejet2.py
new file mode 100644
index 00000000..f51758fb
--- /dev/null
+++ b/scripts/commands/firejet2.py
@@ -0,0 +1,14 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if actor.getLevel() < 76:
+ actor.sendSystemMessage('@performance:effect_lack_skill_self', 0)
+ return
+
+ if core.entertainmentService.performEffect(actor, 'FireJetsB', 'clienteffect/entertainer_fire_jets2.cef', target) is True:
+ actor.sendSystemMessage('@performance:effect_perform_fire_jets_2', 0)
+ return
\ No newline at end of file
diff --git a/scripts/commands/floorLights.py b/scripts/commands/floorLights.py
new file mode 100644
index 00000000..d69f30e8
--- /dev/null
+++ b/scripts/commands/floorLights.py
@@ -0,0 +1,14 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if actor.getLevel() < 82:
+ actor.sendSystemMessage('@performance:effect_lack_skill_self', 0)
+ return
+
+ if core.entertainmentService.performEffect(actor, 'DanceFloor', 'clienteffect/entertainer_dance_floor.cef', target) is True:
+ actor.sendSystemMessage('@performance:effect_perform_dance_floor', 0)
+ return
\ No newline at end of file
diff --git a/scripts/commands/flourish.py b/scripts/commands/flourish.py
new file mode 100644
index 00000000..51835b03
--- /dev/null
+++ b/scripts/commands/flourish.py
@@ -0,0 +1,26 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if len(commandString) == 0 or commandString == None or commandString == "":
+ actor.sendSystemMessage('@performance:flourish_format')
+ return
+
+ try:
+ flourish = int(commandString)
+ except ValueError:
+ actor.sendSystemMessage('@performance:flourish_not_valid', 0)
+ return
+
+ if flourish < 1 or flourish > 9:
+ actor.sendSystemMessage('@performance:flourish_not_valid', 0)
+ return
+
+ if actor.getPerformanceId() <= 0:
+ actor.sendSystemMessage('@performance:flourish_not_performing', 0)
+ return
+
+ core.entertainmentService.performFlourish(actor, flourish)
\ No newline at end of file
diff --git a/scripts/commands/forage.py b/scripts/commands/forage.py
new file mode 100644
index 00000000..bce7443e
--- /dev/null
+++ b/scripts/commands/forage.py
@@ -0,0 +1,74 @@
+import sys
+import engine.resources.scene.Point3D
+import resources.common.Forager
+import time
+
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ #if actor.getSkills('Foraging')==0:
+ #actor.sendSystemMessage('@skl_use:sys_forage_noskill'),0)
+
+ #if actor.isForaging()==1:
+ #actor.sendSystemMessage('@skl_use:sys_forage_already',0)
+ #return
+
+ if actor.getCombatFlag()!=0:
+ actor.sendSystemMessage('@skl_use:sys_forage_combatfail',0)
+ return
+
+ if actor.getPosture()!=0:
+ actor.sendSystemMessage('@skl_use:sys_forage_cant',0)
+ return
+
+ if core.terrainService.isWater(actor.getPlanet(), actor.getPosition().x, actor.getPosition().z):
+ actor.sendSystemMessage('You cannot forage while in water.',0)
+ return
+
+ if actor.getContainer() != None:
+ actor.sendSystemMessage('@skl_use:sys_forage_inside',0)
+ return
+
+ if actor.getAction() < 200:
+ actor.sendSystemMessage('@skl_use:sys_forage_attrib',0)
+ return
+
+ somepoint = engine.resources.scene.Point3D(0,0,0)
+ if actor.getAttachment('PostForagePosition')==None:
+ actor.setAttachment('PostForagePosition', somepoint)
+
+ oldposition = actor.getAttachment('PostForagePosition')
+ if actor.getPosition().getDistance2D(oldposition)<5:
+
+ actor.sendSystemMessage("@skl_use:sys_forage_empty", 0);
+ return
+
+
+ actor.sendSystemMessage('@skl_use:sys_forage_start', 0)
+
+ actor.setAttachment("PreForagePosition", actor.getPosition())
+ actor.setCurrentAnimation('forage')
+ time.sleep(1) # does NOT stall other python scripts, tested
+ # Each command might be its own thread
+
+ actor.setAttachment("PostForagePosition", actor.getPosition())
+
+ if actor.getCombatFlag()!=0:
+ actor.sendSystemMessage('@skl_use:sys_forage_combatfail',0)
+ return
+
+ oldposition = actor.getAttachment("PreForagePosition")
+ if actor.getPosition().getDistance2D(oldposition)>2:
+ actor.sendSystemMessage('@skl_use:sys_forage_movefail',0)
+ return
+
+
+
+ forager = resources.common.Forager()
+ forager.handleForageResults(actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/forcerun.py b/scripts/commands/forcerun.py
index df72153b..69a25ad8 100644
--- a/scripts/commands/forcerun.py
+++ b/scripts/commands/forcerun.py
@@ -4,6 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'fs_force_run')
+ core.buffService.addBuffToCreature(target, 'fs_force_run', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/fs_buff_ca_1.py b/scripts/commands/fs_buff_ca_1.py
index 141b3158..2d12673e 100644
--- a/scripts/commands/fs_buff_ca_1.py
+++ b/scripts/commands/fs_buff_ca_1.py
@@ -4,6 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'fs_buff_ca_1')
+ core.buffService.addBuffToCreature(actor, 'fs_buff_ca_1', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/fs_buff_def_1_1.py b/scripts/commands/fs_buff_def_1_1.py
index cd9637f1..0125c187 100644
--- a/scripts/commands/fs_buff_def_1_1.py
+++ b/scripts/commands/fs_buff_def_1_1.py
@@ -4,6 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'fs_buff_def_1_1')
+ core.buffService.addBuffToCreature(actor, 'fs_buff_def_1_1', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/fs_buff_invis_1.py b/scripts/commands/fs_buff_invis_1.py
index 57ed4a59..965d034c 100644
--- a/scripts/commands/fs_buff_invis_1.py
+++ b/scripts/commands/fs_buff_invis_1.py
@@ -4,6 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'invis_fs_buff_invis_1')
+ core.buffService.addBuffToCreature(actor, 'invis_fs_buff_invis_1', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/fs_saber_reflect_buff.py b/scripts/commands/fs_saber_reflect_buff.py
index 898e2530..29f49243 100644
--- a/scripts/commands/fs_saber_reflect_buff.py
+++ b/scripts/commands/fs_saber_reflect_buff.py
@@ -4,6 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'fs_saber_reflect')
+ core.buffService.addBuffToCreature(actor, 'fs_saber_reflect', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/gc.py b/scripts/commands/gc.py
new file mode 100644
index 00000000..8091acbe
--- /dev/null
+++ b/scripts/commands/gc.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if group is None:
+ return
+
+ core.chatService.sendChatRoomMessage(actor, group.getChatRoomId(), 0, commandString)
+ return
\ No newline at end of file
diff --git a/scripts/commands/getfriendlist.py b/scripts/commands/getfriendlist.py
index 0a478a48..41188658 100644
--- a/scripts/commands/getfriendlist.py
+++ b/scripts/commands/getfriendlist.py
@@ -1,11 +1,11 @@
-from protocol.swg import ChatOnGetFriendsList
+from protocol.swg.chat import ChatOnGetFriendsList
import sys
def setup():
return
def run(core, actor, target, commandString):
- ghost = actor.getSlottedObject('ghost')
- friendsListMessage = ChatOnGetFriendsList(ghost)
- actor.getClient().getSession().write(friendsListMessage.serialize())
+ #ghost = actor.getSlottedObject('ghost')
+ #friendsListMessage = ChatOnGetFriendsList(ghost)
+ #actor.getClient().getSession().write(friendsListMessage.serialize())
return
\ No newline at end of file
diff --git a/scripts/commands/getplayerid.py b/scripts/commands/getplayerid.py
new file mode 100644
index 00000000..bb4141a4
--- /dev/null
+++ b/scripts/commands/getplayerid.py
@@ -0,0 +1,21 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ commandArgs = commandString.split(" ")
+ target = core.chatService.getObjectByFirstName(commandArgs[0])
+
+ if len(commandArgs) > 1:
+ if commandArgs[1].startswith("id"):
+ actor.sendSystemMessage('Player Object ID: ' + target.getObjectId())
+ return
+
+ elif commandArgs[1].startswith("pid"):
+ actor.sendSystemMessage('Account ID: ' + str(core.characterService.getAccountId(target.getObjectId())), 0)
+ return
+ else:
+ actor.sendSystemMessage('Player Object ID: ' + str(target.getObjectId()) + ' Account ID: ' + str(core.characterService.getAccountId(target.getObjectId())), 0)
+ return
+ return
\ No newline at end of file
diff --git a/scripts/commands/giveitem.py b/scripts/commands/giveitem.py
index 4815a4ab..2d5aba72 100644
--- a/scripts/commands/giveitem.py
+++ b/scripts/commands/giveitem.py
@@ -2,20 +2,26 @@ import sys
def setup():
return
-
+
def run(core, actor, target, commandString):
-
+
+ if actor.getClient() and actor.getClient().isGM() == False:
+ return
+
if not commandString.startswith('object/tangible') and not commandString.startswith('object/weapon'):
return
-
+
object = core.objectService.createObject(commandString, actor.getPlanet())
+ #object.setCustomizationVariable('/private/index_color_blade', 0x02)
+ #object.setCustomizationVariable('private/alternate_shader_blade', 0x02)
+
if not object:
return
-
+
inventory = actor.getSlottedObject('inventory')
-
+
if inventory:
inventory.add(object)
-
+
return
\ No newline at end of file
diff --git a/scripts/commands/grantzoningrights.py b/scripts/commands/grantzoningrights.py
new file mode 100644
index 00000000..21cbbb8d
--- /dev/null
+++ b/scripts/commands/grantzoningrights.py
@@ -0,0 +1,40 @@
+import sys
+from java.lang import System
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+import main.NGECore
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if target == None:
+ return
+
+ #if !actor.hasSkill('Politician'):
+ #You must be a Politician to enable city zoning.
+ #actor.sendSystemMessage('@city/city:zoning_skill', 0)
+ #return
+
+ thisCity = main.NGECore.getInstance().playerCityService.getCityObjectIsIn(actor)
+
+ if thisCity == None:
+ #not_in_city_limits
+ actor.sendSystemMessage('@city/city:not_in_city_limits', 0)
+ return
+
+ if thisCity.getMayorID()!=actor.getObjectID() and not thisCity.isMilitiaMember(actor.getObjectID()):
+ #You must be the mayor of the city or a member of the city militia to grant zoning rights.
+ actor.sendSystemMessage('@city/city:grant_rights_fail', 0)
+ actor.sendSystemMessage('thisCity.getMayorID() %s' % thisCity.getMayorID(), 0)
+ actor.sendSystemMessage('actor.getObjectID() %s' % actor.getObjectID(), 0)
+ return
+
+ #You have granted %TO zoning rights for 24 hours.
+ actor.sendSystemMessage(OutOfBand.ProsePackage("@city/city:rights_granted_self", "TO", target.getCustomName()), 0)
+ target.setAttachment('Has24HZoningFor',thisCity.getCityID())
+ target.setAttachment('Has24HZoningUntil',System.currentTimeMillis()+60*60*24)
+ target.sendSystemMessage(OutOfBand.ProsePackage("@city/city:rights_granted", "TO", thisCity.getCityName()), 0)
+
+ return
\ No newline at end of file
diff --git a/scripts/commands/groupchat.py b/scripts/commands/groupchat.py
new file mode 100644
index 00000000..03a6ed26
--- /dev/null
+++ b/scripts/commands/groupchat.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if group is None:
+ return
+
+ room = core.chatService.getChatRoom(group.getChatRoomId())
+
+ if room is None:
+ return
+
+ core.chatService.sendChatRoomMessage(actor, room.getRoomId(), 0, commandString)
+ return
\ No newline at end of file
diff --git a/scripts/commands/groupdance.py b/scripts/commands/groupdance.py
new file mode 100644
index 00000000..ed38ed89
--- /dev/null
+++ b/scripts/commands/groupdance.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ newState = actor.toggleGroupDance()
+ msg = '@performance:dance_group_on' if newState else '@performance:dance_group_off'
+ actor.sendSystemMessage(msg, 0)
+ return
diff --git a/scripts/commands/guild.py b/scripts/commands/guild.py
new file mode 100644
index 00000000..2bc6b552
--- /dev/null
+++ b/scripts/commands/guild.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ guild = core.guildService.getGuildById(actor.getGuildId())
+
+ if guild is None:
+ return
+
+ core.chatService.sendChatRoomMessage(actor, guild.getChatRoomId(), 0, commandString)
+ return
\ No newline at end of file
diff --git a/scripts/commands/guildchangename.py b/scripts/commands/guildchangename.py
new file mode 100644
index 00000000..a294a9ce
--- /dev/null
+++ b/scripts/commands/guildchangename.py
@@ -0,0 +1,26 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if actor.getGuildId() == 0:
+ return
+
+ guildSvc = core.guildService
+
+ guild = guildSvc.getGuildById(actor.getGuildId())
+
+ if guild is None:
+ return
+
+ member = guild.getMember(actor.getObjectID())
+ if actor.getObjectID() != guild.getLeader() and member.hasChangeNamePermission() is False:
+ actor.sendSystemMessage('@guild:guild_no_permission_operation', 0)
+ return
+ else:
+ guildSvc.handleChangeGuildName(actor, guild)
+ return
+
+ return
\ No newline at end of file
diff --git a/scripts/commands/guilddisband.py b/scripts/commands/guilddisband.py
new file mode 100644
index 00000000..8f0e6124
--- /dev/null
+++ b/scripts/commands/guilddisband.py
@@ -0,0 +1,26 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if actor.getGuildId() == 0:
+ return
+
+ guildSvc = core.guildService
+
+ guild = guildSvc.getGuildById(actor.getGuildId())
+
+ if guild is None:
+ return
+
+ member = guild.getMember(actor.getObjectID())
+ if actor.getObjectID() != guild.getLeader() and member.hasDisbandPermission() is False:
+ actor.sendSystemMessage('@guild:guild_no_permission_operation', 0)
+ return
+ else:
+ guildSvc.showDisbandConfirmWindow(actor, target, guild)
+ return
+
+ return
diff --git a/scripts/commands/guildinfo.py b/scripts/commands/guildinfo.py
new file mode 100644
index 00000000..aa8a8450
--- /dev/null
+++ b/scripts/commands/guildinfo.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if actor.getGuildId() == 0:
+ return
+
+ guildSvc = core.guildService
+
+ guild = guildSvc.getGuildById(actor.getGuildId())
+
+ if guild is None:
+ return
+
+ guildSvc.showGuildInfoWindow(actor, guild)
+ return
diff --git a/scripts/commands/guildremove.py b/scripts/commands/guildremove.py
new file mode 100644
index 00000000..f974c160
--- /dev/null
+++ b/scripts/commands/guildremove.py
@@ -0,0 +1,36 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if commandString != " " and commandString != "":
+ target = core.objectService.getObjectByFirstName(commandString.split(" ")[0])
+
+ if target is None:
+ actor.sendSystemMessage('Could not find member ' + commandString + ' (CASE SENSITIVE!)', 0)
+ return
+
+ if actor.getGuildId() == 0:
+ return
+
+ if actor.getGuildId() != target.getGuildId():
+ actor.sendSystemMessage('@guild:guild_no_permission_operation', 0)
+ return
+
+ guildSvc = core.guildService
+
+ guild = guildSvc.getGuildById(actor.getGuildId())
+
+ if guild is None:
+ return
+
+ if actor.getObjectID() == target.getObjectID():
+ guildSvc.leaveGuild(actor, target, guild)
+ return
+ else:
+ guildSvc.showKickConfirmWindow(actor, target, guild)
+ return
+
+ return
diff --git a/scripts/commands/guildsay.py b/scripts/commands/guildsay.py
new file mode 100644
index 00000000..23ca291d
--- /dev/null
+++ b/scripts/commands/guildsay.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ guild = core.guildService.getGuildById(actor.getGuildId())
+
+ if guild is None:
+ return
+
+ core.chatService.sendChatRoomMessage(actor, guild.getChatRoomId(), 0, commandString)
+ return
\ No newline at end of file
diff --git a/scripts/commands/guildsponsor.py b/scripts/commands/guildsponsor.py
new file mode 100644
index 00000000..513af1ed
--- /dev/null
+++ b/scripts/commands/guildsponsor.py
@@ -0,0 +1,28 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if actor.getGuildId() == 0:
+ return
+
+ guildSvc = core.guildService
+
+ guild = guildSvc.getGuildById(actor.getGuildId())
+
+ if guild is None:
+ return
+
+ member = guild.getMember(actor.getObjectID())
+
+ if member is None:
+ return
+
+ if not member.hasSponsorPermission():
+ actor.sendSystemMessage('@guild:guild_no_permission_operation', 0)
+ return
+
+ guildSvc.handleGuildSponsorWindow(actor)
+ return
diff --git a/scripts/commands/harvesteractivate.py b/scripts/commands/harvesteractivate.py
new file mode 100644
index 00000000..f05ede73
--- /dev/null
+++ b/scripts/commands/harvesteractivate.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ core.harvesterService.handleHarvesterActivateCommand(actor, target, commandString)
+ return
+
+
\ No newline at end of file
diff --git a/scripts/commands/harvesterdeactivate.py b/scripts/commands/harvesterdeactivate.py
new file mode 100644
index 00000000..7989148f
--- /dev/null
+++ b/scripts/commands/harvesterdeactivate.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ core.harvesterService.handleHarvesterDeactivateCommand(actor, target, commandString)
+ return
diff --git a/scripts/commands/harvesterdiscardhopper.py b/scripts/commands/harvesterdiscardhopper.py
new file mode 100644
index 00000000..6ae345b9
--- /dev/null
+++ b/scripts/commands/harvesterdiscardhopper.py
@@ -0,0 +1,9 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ actor.sendSystemMessage('handleEmptyHarvester', 0)
+ core.harvesterService.handleEmptyHarvester(actor, target, commandString)
+ return
diff --git a/scripts/commands/harvesterselectresource.py b/scripts/commands/harvesterselectresource.py
new file mode 100644
index 00000000..cc1c18aa
--- /dev/null
+++ b/scripts/commands/harvesterselectresource.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ core.harvesterService.handleHarvesterSelectResourceCommand(actor, target, commandString)
+ return
diff --git a/scripts/commands/holoemote.py b/scripts/commands/holoemote.py
new file mode 100644
index 00000000..36c15235
--- /dev/null
+++ b/scripts/commands/holoemote.py
@@ -0,0 +1,76 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ player = actor.getSlottedObject('ghost')
+
+ if player is None:
+ return
+
+ if commandString is not None:
+ commandString = commandString.lower()
+
+ installedEmote = ''
+
+ if actor.hasCooldown('holoEmote'):
+ actor.sendSystemMessage('Your Holo-Emote generator is in use or recharging.', 0) # Not sure if this is correct.
+ return
+
+ if player.getHoloEmote() is not None:
+ installedEmote = player.getHoloEmote().replace('holoemote_','')
+
+ if commandString is None or commandString == "":
+ commandString = installedEmote
+
+ if installedEmote == None or installedEmote == "":
+ actor.sendSystemMessage('@image_designer:no_holoemote', 0)
+ return
+
+ if commandString == 'help':
+ helpWindow = core.suiService.createMessageBox(1, 'HOLO-EMOTE HELP', holoPrompt(player, installedEmote), actor, actor, 10)
+ core.suiService.openSUIWindow(helpWindow)
+ return
+
+ if player.getHoloEmoteUses() < 1:
+ actor.sendSystemMessage('@image_designer:no_charges_holoemote', 0)
+ return
+
+ if commandString == "kitty":
+ commandString = "technokitty"
+
+ if commandString != installedEmote and installedEmote != 'all':
+ actor.sendSystemMessage('Your installed Holo-Emote generator does not support that emote.', 0)
+ return
+
+ effectObj = 'clienteffect/holoemote_' + commandString + '.cef'
+ actor.playEffectObject(effectObj, 'head')
+ player.setHoloEmoteUses(player.getHoloEmoteUses() - 1)
+
+ actor.addCooldown('holoEmote', float(30))
+
+ return
+
+def holoPrompt(player, emote):
+ emotesToPlay = "Your Holo-Emote generator can only play the " + emote + " Holo-Emote.\n"
+ if emote == "all":
+ emotesToPlay = "Your Holo-Emote generator can play all Holo-Emotes available.\n"
+
+ remainingCharges = "You have " + str(player.getHoloEmoteUses()) + " charges remaining.\n"
+ if player.getHoloEmoteUses() == 1:
+ remainingCharges = "You have 1 charge remaining.\n"
+
+ body = "To play a Holo-Emote, type /holoemote .\n" \
+"To delete your Holo-Emote type /holoemote delete.\n" \
+"Purchasing a new Holo-Emote will automatically delete your current Holo-Emote.\n" \
+"\n" \
+"The available Holo-Emote names are:\n\n" \
+"Beehive\t Blossom\tBrainstorm\n" \
+"Bubblehead\t Bullhorns\tButterflies\n" \
+"Champagne\t Haunted\tHearts\n" \
+"Hologlitter\t Holonotes\tImperial\n" \
+"Kitty\t\t Phonytail\tRebel\n" \
+"Sparky"
+
+ return emotesToPlay + remainingCharges + body
diff --git a/scripts/commands/imagedesign.py b/scripts/commands/imagedesign.py
new file mode 100644
index 00000000..d9a87e92
--- /dev/null
+++ b/scripts/commands/imagedesign.py
@@ -0,0 +1,33 @@
+from protocol.swg.objectControllerObjects import ImageDesignStartMessage
+from protocol.swg import ObjControllerMessage
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if target is None and commandString is None:
+ design = ImageDesignStartMessage(actor.getObjectId(), actor.getObjectId(), actor.getObjectId())
+ obj = ObjControllerMessage(11, design)
+ actor.getClient().getSession().write(obj.serialize())
+ return
+
+ else:
+ if target is None and commandString is not None:
+ target = core.chatService.getObjectByFirstName(commandString)
+ if target is None:
+ return
+
+ if target.getGroupId() == actor.getGroupId():
+
+ tDesign = ImageDesignStartMessage(target.getObjectId(), actor.getObjectId(), target.getObjectId())
+ tObj = ObjControllerMessage(11, tDesign)
+ target.getClient().getSession().write(tObj.serialize())
+
+ design = ImageDesignStartMessage(actor.getObjectId(), actor.getObjectId(), target.getObjectId())
+ obj = ObjControllerMessage(11, design)
+ actor.getClient().getSession().write(obj.serialize())
+ return
+ return
+ return
\ No newline at end of file
diff --git a/scripts/commands/inspire.py b/scripts/commands/inspire.py
new file mode 100644
index 00000000..57cd0a29
--- /dev/null
+++ b/scripts/commands/inspire.py
@@ -0,0 +1,48 @@
+from protocol.swg.objectControllerObjects import BuffBuilderStartMessage
+from protocol.swg import ObjControllerMessage
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ playerObject = actor.getSlottedObject('ghost')
+
+ if not playerObject or playerObject.getProfession() != "entertainer_1a":
+ return
+
+ if target is None or actor.getObjectId() == target.getObjectId():
+ openBuffWindow = BuffBuilderStartMessage(actor.getObjectId(), actor.getObjectId(), actor.getObjectId())
+ objController = ObjControllerMessage(11, openBuffWindow)
+ actor.getClient().getSession().write(objController.serialize())
+ return
+
+ if target is None and commandString is not None:
+ target = core.chatService.getObjectByFirstName(commandString)
+ if target is None:
+ return
+
+ if actor.getPosture() != 0x09 and target.getObjectId() != actor.getObjectId():
+ actor.sendSystemMessage('@performance:insp_buff_must_perform', 2)
+ return
+
+ if not target.getPerformanceWatchee() or target.getPerformanceWatchee() != actor:
+ if actor.getPerformanceType():
+ actor.sendSystemMessage('@performance:insp_buff_must_watch', 2)
+ return
+ else:
+ actor.sendSystemMessage('@performance:insp_buff_must_listen', 2)
+ return
+
+ if target.getPosition().getDistance2D(actor.getWorldPosition()) > float(20):
+ actor.sendSystemMessage(target.getCustomName() + ' is too far away to inspire.', 0)
+ return
+
+ builderWindow = BuffBuilderStartMessage(actor.getObjectId(), actor.getObjectId(), target.getObjectId())
+ objController = ObjControllerMessage(11, builderWindow)
+ actor.getClient().getSession().write(objController.serialize())
+
+ recipientWindow = BuffBuilderStartMessage(target.getObjectId(), actor.getObjectId(), target.getObjectId())
+ objController2 = ObjControllerMessage(11, recipientWindow)
+ target.getClient().getSession().write(objController2.serialize())
+ return
diff --git a/scripts/commands/laserShow.py b/scripts/commands/laserShow.py
new file mode 100644
index 00000000..df9af800
--- /dev/null
+++ b/scripts/commands/laserShow.py
@@ -0,0 +1,14 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if actor.getLevel() < 42:
+ actor.sendSystemMessage('@performance:effect_lack_skill_self', 0)
+ return
+
+ if core.entertainmentService.performEffect(actor, 'LaserShow', 'clienteffect/entertainer_laser_show.cef', target) is True:
+ actor.sendSystemMessage('@performance:effect_perform_laser_show', 0)
+ return
diff --git a/scripts/commands/lfg.py b/scripts/commands/lfg.py
new file mode 100644
index 00000000..4d22f5ca
--- /dev/null
+++ b/scripts/commands/lfg.py
@@ -0,0 +1,10 @@
+from resources.datatables import PlayerFlags
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ ghost = actor.getSlottedObject('ghost')
+ ghost.toggleFlag(PlayerFlags.LFG)
+ return
\ No newline at end of file
diff --git a/scripts/commands/loot.py b/scripts/commands/loot.py
new file mode 100644
index 00000000..19ae81f3
--- /dev/null
+++ b/scripts/commands/loot.py
@@ -0,0 +1,14 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if not target:
+ return
+
+ #actor.sendSystemMessage('LOOT SCRIPT COMMAND', 0)
+ core.lootService.handleLootRequest(actor,target)
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/lootall.py b/scripts/commands/lootall.py
new file mode 100644
index 00000000..7d0154a3
--- /dev/null
+++ b/scripts/commands/lootall.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ actor.sendSystemMessage('LootALL.', 0)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_buff_health_1.py b/scripts/commands/me_buff_health_1.py
new file mode 100644
index 00000000..ad02456d
--- /dev/null
+++ b/scripts/commands/me_buff_health_1.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_health_0', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_health_0', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_health_0', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_buff_health_2.py b/scripts/commands/me_buff_health_2.py
new file mode 100644
index 00000000..fb9880d2
--- /dev/null
+++ b/scripts/commands/me_buff_health_2.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_health', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_health', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_health', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_buff_health_3.py b/scripts/commands/me_buff_health_3.py
new file mode 100644
index 00000000..dd4c396c
--- /dev/null
+++ b/scripts/commands/me_buff_health_3.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_health_2', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_health_2', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_health_2', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_cure_affliction_1.py b/scripts/commands/me_cure_affliction_1.py
new file mode 100644
index 00000000..4b52e823
--- /dev/null
+++ b/scripts/commands/me_cure_affliction_1.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+ core.buffService.addBuffToCreature(actor, 'me_cure_affliction_1', actor)
+ return
\ No newline at end of file
diff --git a/scripts/commands/me_enhance_action_1.py b/scripts/commands/me_enhance_action_1.py
new file mode 100644
index 00000000..9239af4d
--- /dev/null
+++ b/scripts/commands/me_enhance_action_1.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_action_1', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_action_1', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_action_1', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_enhance_action_2.py b/scripts/commands/me_enhance_action_2.py
new file mode 100644
index 00000000..1c9b8dff
--- /dev/null
+++ b/scripts/commands/me_enhance_action_2.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_action_2', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_action_2', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_action_2', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_enhance_action_3.py b/scripts/commands/me_enhance_action_3.py
new file mode 100644
index 00000000..a4d9dd4a
--- /dev/null
+++ b/scripts/commands/me_enhance_action_3.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_action_3', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_action_3', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_action_3', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_enhance_agility_1.py b/scripts/commands/me_enhance_agility_1.py
new file mode 100644
index 00000000..50b163ac
--- /dev/null
+++ b/scripts/commands/me_enhance_agility_1.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_agility_1', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_agility_1', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_agility_1', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_enhance_agility_2.py b/scripts/commands/me_enhance_agility_2.py
new file mode 100644
index 00000000..0df03459
--- /dev/null
+++ b/scripts/commands/me_enhance_agility_2.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_agility_2', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_agility_2', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_agility_2', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_enhance_agility_3.py b/scripts/commands/me_enhance_agility_3.py
new file mode 100644
index 00000000..fe489909
--- /dev/null
+++ b/scripts/commands/me_enhance_agility_3.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_agility_3', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_agility_3', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_agility_3', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_enhance_block_1.py b/scripts/commands/me_enhance_block_1.py
new file mode 100644
index 00000000..d1f27220
--- /dev/null
+++ b/scripts/commands/me_enhance_block_1.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_melee_gb_1', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_melee_gb_1', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_melee_gb_1', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_enhance_dodge_1.py b/scripts/commands/me_enhance_dodge_1.py
new file mode 100644
index 00000000..9702a6f3
--- /dev/null
+++ b/scripts/commands/me_enhance_dodge_1.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_ranged_gb_1', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_ranged_gb_1', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_ranged_gb_1', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_enhance_precision_1.py b/scripts/commands/me_enhance_precision_1.py
new file mode 100644
index 00000000..a5ddce5a
--- /dev/null
+++ b/scripts/commands/me_enhance_precision_1.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_precision_1', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_precision_1', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_precision_1', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_enhance_precision_2.py b/scripts/commands/me_enhance_precision_2.py
new file mode 100644
index 00000000..9c6906d2
--- /dev/null
+++ b/scripts/commands/me_enhance_precision_2.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_precision_2', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_precision_2', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_precision_2', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_enhance_precision_3.py b/scripts/commands/me_enhance_precision_3.py
new file mode 100644
index 00000000..a4997749
--- /dev/null
+++ b/scripts/commands/me_enhance_precision_3.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_precision_3', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_precision_3', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_precision_3', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_enhance_strength_1.py b/scripts/commands/me_enhance_strength_1.py
new file mode 100644
index 00000000..cf3529bc
--- /dev/null
+++ b/scripts/commands/me_enhance_strength_1.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_strength_1', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_strength_1', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_strength_1', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_enhance_strength_2.py b/scripts/commands/me_enhance_strength_2.py
new file mode 100644
index 00000000..13ddfe22
--- /dev/null
+++ b/scripts/commands/me_enhance_strength_2.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_strength_2', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_strength_2', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_strength_2', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_enhance_strength_3.py b/scripts/commands/me_enhance_strength_3.py
new file mode 100644
index 00000000..2a822999
--- /dev/null
+++ b/scripts/commands/me_enhance_strength_3.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ if target and target.getSlottedObject("ghost"):
+ if group and target in group.getMemberList():
+ core.buffService.addGroupBuff(target, 'me_buff_strength_3', actor)
+ else:
+ core.buffService.addBuffToCreature(target, 'me_buff_strength_3', actor)
+ else:
+ core.buffService.addGroupBuff(actor, 'me_buff_strength_3', actor)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_evasion_1.py b/scripts/commands/me_evasion_1.py
new file mode 100644
index 00000000..6fb5001a
--- /dev/null
+++ b/scripts/commands/me_evasion_1.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+ core.buffService.addBuffToCreature(actor, 'me_evasion_1', actor)
+ return
\ No newline at end of file
diff --git a/scripts/commands/me_serotonin_boost_1.py b/scripts/commands/me_serotonin_boost_1.py
new file mode 100644
index 00000000..1e45f39c
--- /dev/null
+++ b/scripts/commands/me_serotonin_boost_1.py
@@ -0,0 +1,9 @@
+import sys
+
+def setup(core, actor, buff):
+ return
+
+def run(core, actor, target, commandString):
+ core.buffService.addBuffToCreature(actor, 'me_serotonin_boost_1')
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/me_stasis_self_1.py b/scripts/commands/me_stasis_self_1.py
index fc808c70..192637a1 100644
--- a/scripts/commands/me_stasis_self_1.py
+++ b/scripts/commands/me_stasis_self_1.py
@@ -18,7 +18,7 @@ def run(core, actor, target, commandString):
if not combatSvc.applySpecialCost(actor, weapon, CombatCommand('me_stasis_self_1')):
return
- core.buffService.addBuffToCreature(actor, 'me_stasis_self_1')
+ core.buffService.addBuffToCreature(actor, 'me_stasis_self_1', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/meditate.py b/scripts/commands/meditate.py
new file mode 100644
index 00000000..8e0ed60f
--- /dev/null
+++ b/scripts/commands/meditate.py
@@ -0,0 +1,23 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ ##To do make it reset moodanimations when meditation is cancled.
+
+ # if core.collectionService.isComplete(actor, 'inv_holocron_collection_02') is False:
+ # return
+
+ if actor.getPosture() != 0x08:
+ actor.sendSystemMessage('You need to sit',0)
+ actor.setMoodAnimation('neutral')
+ return
+ if actor.getPosture() == 0x08:
+ actor.setMoodAnimation('meditating')
+ return
+ if actor.getPosture() == 0x00:
+ actor.setMoodAnimation('neutral')
+ return
+ return
+
diff --git a/scripts/commands/mount.py b/scripts/commands/mount.py
new file mode 100644
index 00000000..40b6e080
--- /dev/null
+++ b/scripts/commands/mount.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ if not target:
+ return
+
+ if actor.getObjectID() != target.getOwnerId():
+ return
+
+ if core.mountService.isMounted(actor) is False:
+ core.mountService.mount(actor, target)
+
+ return
diff --git a/scripts/commands/movefurniture.py b/scripts/commands/movefurniture.py
new file mode 100644
index 00000000..46295121
--- /dev/null
+++ b/scripts/commands/movefurniture.py
@@ -0,0 +1,38 @@
+import sys
+from engine.resources.scene import Point3D
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ tarObj = core.objectService.getObject(actor.getTargetId())
+ container = actor.getContainer()
+ parsedMsg = commandString.split(' ', 2)
+
+ if tarObj.getAttachment('initialized') is not None and target.getAttachment('initialized') == True:
+ return
+
+ if core.housingService.getPermissions(actor, container): # i should probably relook into my permissions system... it kinda sucks
+ if parsedMsg[0] == "up":
+ core.simulationService.transform(tarObj, Point3D(0, float(parsedMsg[1]) * 0.01, 0))
+ return
+ elif parsedMsg[0] == "down":
+ core.simulationService.transform(tarObj, Point3D(0, float(parsedMsg[1]) * -0.01, 0))
+ return
+ elif parsedMsg[0] == "forward":
+ core.simulationService.transform(tarObj, Point3D(0, 0, float(parsedMsg[1]) * 0.01))
+ return
+ elif parsedMsg[0] == "back":
+ core.simulationService.transform(tarObj, Point3D(0, 0, float(parsedMsg[1]) * -0.01))
+ return
+ elif parsedMsg[0] == "right":
+ core.simulationService.transform(tarObj, Point3D(float(parsedMsg[1]) * 0.01, 0, 0))
+ return
+ elif parsedMsg[0] == "left":
+ core.simulationService.transform(tarObj, Point3D(float(parsedMsg[1]) * -0.01, 0, 0))
+ return
+ elif container.getTemplate() == "object/cell/shared_cell.iff":
+ actor.sendSystemMessage("You do not have permission to access that container!", 0)
+ return
+
+ return
diff --git a/scripts/commands/newbiehelper.py b/scripts/commands/newbiehelper.py
new file mode 100644
index 00000000..277ecd01
--- /dev/null
+++ b/scripts/commands/newbiehelper.py
@@ -0,0 +1,10 @@
+from resources.datatables import PlayerFlags
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ ghost = actor.getSlottedObject('ghost')
+ ghost.toggleFlag(PlayerFlags.HELPER)
+ return
\ No newline at end of file
diff --git a/scripts/commands/npcconversationselect.py b/scripts/commands/npcconversationselect.py
new file mode 100644
index 00000000..92bd4bf3
--- /dev/null
+++ b/scripts/commands/npcconversationselect.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ #print int(commandString)
+ core.conversationService.handleConversationSelection(actor, int(commandString))
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/npcconversationstop.py b/scripts/commands/npcconversationstop.py
new file mode 100644
index 00000000..f7b6b21b
--- /dev/null
+++ b/scripts/commands/npcconversationstop.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ if actor.getConversingNpc():
+ core.conversationService.handleEndConversation(actor, actor.getConversingNpc())
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/of_buff_def_1.py b/scripts/commands/of_buff_def_1.py
index d7403af1..a83218bd 100644
--- a/scripts/commands/of_buff_def_1.py
+++ b/scripts/commands/of_buff_def_1.py
@@ -4,9 +4,7 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_buff_def_1')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_buff_def_1')
+
+ core.buffService.addGroupBuff(actor, 'of_buff_def_1', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_buff_def_2.py b/scripts/commands/of_buff_def_2.py
index cd5fd42d..f8f1b6be 100644
--- a/scripts/commands/of_buff_def_2.py
+++ b/scripts/commands/of_buff_def_2.py
@@ -4,9 +4,7 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_buff_def_2')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_buff_def_2')
+
+ core.buffService.addGroupBuff(actor, 'of_buff_def_2', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_buff_def_3.py b/scripts/commands/of_buff_def_3.py
index 85b34c54..9215bcf2 100644
--- a/scripts/commands/of_buff_def_3.py
+++ b/scripts/commands/of_buff_def_3.py
@@ -4,9 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_buff_def_3')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_buff_def_3')
+ core.buffService.addGroupBuff(actor, 'of_buff_def_3', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_buff_def_4.py b/scripts/commands/of_buff_def_4.py
index 0831b80f..819db023 100644
--- a/scripts/commands/of_buff_def_4.py
+++ b/scripts/commands/of_buff_def_4.py
@@ -4,9 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_buff_def_4')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_buff_def_4')
+ core.buffService.addGroupBuff(actor, 'of_buff_def_4', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_buff_def_5.py b/scripts/commands/of_buff_def_5.py
index f3577253..f919171c 100644
--- a/scripts/commands/of_buff_def_5.py
+++ b/scripts/commands/of_buff_def_5.py
@@ -4,9 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_buff_def_5')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_buff_def_5')
+ core.buffService.addGroupBuff(actor, 'of_buff_def_5', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_buff_def_6.py b/scripts/commands/of_buff_def_6.py
index 890aea37..54aaa36e 100644
--- a/scripts/commands/of_buff_def_6.py
+++ b/scripts/commands/of_buff_def_6.py
@@ -4,9 +4,7 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_buff_def_6')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_buff_def_6')
+
+ core.buffService.addGroupBuff(actor, 'of_buff_def_6', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_buff_def_7.py b/scripts/commands/of_buff_def_7.py
index 7235a9a0..a7b8e72a 100644
--- a/scripts/commands/of_buff_def_7.py
+++ b/scripts/commands/of_buff_def_7.py
@@ -4,9 +4,7 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_buff_def_7')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_buff_def_7')
+
+ core.buffService.addGroupBuff(actor, 'of_buff_def_7', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_buff_def_8.py b/scripts/commands/of_buff_def_8.py
index 3ef2ec72..d84ba723 100644
--- a/scripts/commands/of_buff_def_8.py
+++ b/scripts/commands/of_buff_def_8.py
@@ -4,9 +4,7 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_buff_def_8')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_buff_def_8')
+
+ core.buffService.addGroupBuff(actor, 'of_buff_def_8', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_buff_def_9.py b/scripts/commands/of_buff_def_9.py
index ecf3917c..45f6a8f8 100644
--- a/scripts/commands/of_buff_def_9.py
+++ b/scripts/commands/of_buff_def_9.py
@@ -4,9 +4,7 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_buff_def_9')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_buff_def_9')
+
+ core.buffService.addGroupBuff(actor, 'of_buff_def_9', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_charge_1.py b/scripts/commands/of_charge_1.py
index 8b1194d2..74dfbc79 100644
--- a/scripts/commands/of_charge_1.py
+++ b/scripts/commands/of_charge_1.py
@@ -4,9 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_charge_1')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_charge_1')
+ core.buffService.addBuffToCreature(actor, 'of_charge_1', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_drillmaster_1.py b/scripts/commands/of_drillmaster_1.py
index 313f855b..179b494a 100644
--- a/scripts/commands/of_drillmaster_1.py
+++ b/scripts/commands/of_drillmaster_1.py
@@ -4,9 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_drillmaster_1')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_drillmaster_1')
+ core.buffService.addGroupBuff(actor, 'of_drillmaster_1', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_emergency_shield.py b/scripts/commands/of_emergency_shield.py
index 0a9cb543..73586f60 100644
--- a/scripts/commands/of_emergency_shield.py
+++ b/scripts/commands/of_emergency_shield.py
@@ -4,6 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_emergency_shield')
+ core.buffService.addBuffToCreature(actor, 'of_emergency_shield', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_firepower_1.py b/scripts/commands/of_firepower_1.py
index 50eba86a..442a5d45 100644
--- a/scripts/commands/of_firepower_1.py
+++ b/scripts/commands/of_firepower_1.py
@@ -4,6 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_firepower')
+ core.buffService.addBuffToCreature(actor, 'of_firepower', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_focus_fire_1.py b/scripts/commands/of_focus_fire_1.py
index 4857b1ce..1cd0503c 100644
--- a/scripts/commands/of_focus_fire_1.py
+++ b/scripts/commands/of_focus_fire_1.py
@@ -4,9 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_focus_fire_1')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_focus_fire_1')
+ core.buffService.addGroupBuff(actor, 'of_focus_fire_1', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_focus_fire_2.py b/scripts/commands/of_focus_fire_2.py
index 2eb8248d..b7fe9e07 100644
--- a/scripts/commands/of_focus_fire_2.py
+++ b/scripts/commands/of_focus_fire_2.py
@@ -4,8 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_focus_fire_1')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_focus_fire_2')
- return
\ No newline at end of file
+ core.buffService.addGroupBuff(actor, 'of_focus_fire_2', actor)
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/of_focus_fire_3.py b/scripts/commands/of_focus_fire_3.py
index bac08eb4..a7cd6223 100644
--- a/scripts/commands/of_focus_fire_3.py
+++ b/scripts/commands/of_focus_fire_3.py
@@ -4,8 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_focus_fire_1')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_focus_fire_3')
- return
\ No newline at end of file
+ core.buffService.addGroupBuff(actor, 'of_focus_fire_3', actor)
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/of_focus_fire_4.py b/scripts/commands/of_focus_fire_4.py
index 4091e213..208f53e5 100644
--- a/scripts/commands/of_focus_fire_4.py
+++ b/scripts/commands/of_focus_fire_4.py
@@ -4,8 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_focus_fire_1')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_focus_fire_4')
- return
\ No newline at end of file
+ core.buffService.addGroupBuff(actor, 'of_focus_fire_4', actor)
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/of_focus_fire_5.py b/scripts/commands/of_focus_fire_5.py
index 704dc3c4..7842cb4f 100644
--- a/scripts/commands/of_focus_fire_5.py
+++ b/scripts/commands/of_focus_fire_5.py
@@ -4,8 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_focus_fire_1')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_focus_fire_5')
- return
\ No newline at end of file
+ core.buffService.addGroupBuff(actor, 'of_focus_fire_5', actor)
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/of_focus_fire_6.py b/scripts/commands/of_focus_fire_6.py
index 5027e12c..ae915fa1 100644
--- a/scripts/commands/of_focus_fire_6.py
+++ b/scripts/commands/of_focus_fire_6.py
@@ -4,8 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_focus_fire_1')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_focus_fire_6')
- return
\ No newline at end of file
+ core.buffService.addGroupBuff(actor, 'of_focus_fire_6', actor)
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/of_inspiration_1.py b/scripts/commands/of_inspiration_1.py
index 95c691d9..fc017af7 100644
--- a/scripts/commands/of_inspiration_1.py
+++ b/scripts/commands/of_inspiration_1.py
@@ -4,9 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_inspiration_1')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_inspiration_1')
+ core.buffService.addGroupBuff(actor, 'of_inspiration_1', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_inspiration_2.py b/scripts/commands/of_inspiration_2.py
index f667ecd4..44ae030d 100644
--- a/scripts/commands/of_inspiration_2.py
+++ b/scripts/commands/of_inspiration_2.py
@@ -4,9 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_inspiration_2')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_inspiration_2')
+ core.buffService.addGroupBuff(actor, 'of_inspiration_2', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_inspiration_3.py b/scripts/commands/of_inspiration_3.py
index ce4e0b49..52711f2a 100644
--- a/scripts/commands/of_inspiration_3.py
+++ b/scripts/commands/of_inspiration_3.py
@@ -4,9 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_inspiration_3')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_inspiration_3')
+ core.buffService.addGroupBuff(actor, 'of_inspiration_3', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_inspiration_4.py b/scripts/commands/of_inspiration_4.py
index 198e36b5..853d793d 100644
--- a/scripts/commands/of_inspiration_4.py
+++ b/scripts/commands/of_inspiration_4.py
@@ -4,9 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_inspiration_4')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_inspiration_4')
+ core.buffService.addGroupBuff(actor, 'of_inspiration_4', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_inspiration_5.py b/scripts/commands/of_inspiration_5.py
index e114bec1..8723fc61 100644
--- a/scripts/commands/of_inspiration_5.py
+++ b/scripts/commands/of_inspiration_5.py
@@ -4,9 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_inspiration_5')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_inspiration_5')
+ core.buffService.addGroupBuff(actor, 'of_inspiration_5', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_inspiration_6.py b/scripts/commands/of_inspiration_6.py
index 230aaa5f..5459e9ec 100644
--- a/scripts/commands/of_inspiration_6.py
+++ b/scripts/commands/of_inspiration_6.py
@@ -4,9 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_inspiration_6')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_inspiration_6')
+ core.buffService.addGroupBuff(actor, 'of_inspiration_6', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_medical_sup_1.py b/scripts/commands/of_medical_sup_1.py
new file mode 100644
index 00000000..52ae6c13
--- /dev/null
+++ b/scripts/commands/of_medical_sup_1.py
@@ -0,0 +1,54 @@
+from engine.resources.container import StaticContainerPermissions
+import time
+import sys
+
+def setup(core, actor, target, command):
+ return
+
+def run(core, actor, target, commandString):
+ doStimDrop(core, actor)
+ return
+
+def doStimDrop(core, actor):
+ actor.sendSystemMessage('Stims incoming Mr. Bossman!', 0)
+ stcSvc = core.staticService
+ shuttle = stcSvc.spawnObject('object/creature/npc/theme_park/shared_lambda_shuttle.iff', actor.getPlanet().getName(), long(0), actor.getPosition().x, actor.getPosition().y, actor.getPosition().z, actor.getOrientation().y, actor.getOrientation().w)
+ shuttle.setPosture(0)
+ time.sleep(10) # Wait time before shuttle arrives after command is called
+ shuttle.setPosture(2)
+ time.sleep(20) # wait time for the crate to show (length of landing animation for shuttle)
+ spawnCrate(core, actor, shuttle)
+ time.sleep(5) # Wait time for the shuttle to leave after crate is spawned
+ shuttle.setPosture(0)
+ time.sleep(20) # How long the take-off sequence is, until the Shuttle is destroyed
+ core.objectService.destroyObject(shuttle)
+ return
+
+def spawnCrate(core, actor, shuttle):
+ crate = core.staticService.spawnObject('object/tangible/container/drum/shared_supply_drop_crate.iff', shuttle.getPlanet().getName(), long(0), shuttle.getPosition().x, shuttle.getPosition().y, shuttle.getPosition().z, shuttle.getOrientation().y, shuttle.getOrientation().w)
+ crate.setCustomName('Supply Crate')
+
+ group = core.objectService.getObject(actor.getGroupId())
+
+ permissions = StaticContainerPermissions()
+ permissions.canRemove(group, crate)
+ permissions.canView(group, crate)
+ crate.setContainerPermissions(permissions)
+
+ if actor.hasSkill('expertise_of_tactical_sup_1'):
+ for i in range(0, 8):
+ tactical = core.objectService.createObject('object/tangible/loot/generic_usable/shared_stim_syringe_generic.iff', actor.getPlanet()) #FIXME: Use the correct template
+ tactical.setCustomName('Tactical Serum A')
+ tactical.setStringAttribute('proc_name', '@ui_buff:of_tactical_drop_6')
+ tactical.setAttachment("tempUseCount", 1)
+ crate.add(tactical)
+
+ for i in range(0, 8):
+ stimpack = core.objectService.createObject('object/tangible/medicine/instant_stimpack/shared_stimpack_e.iff', actor.getPlanet()) #FIXME: Use the correct template
+ stimpack.setCustomName('Field Stimpack A')
+ crate.add(stimpack)
+
+ time.sleep(60)
+ core.objectService.destroyObject(crate)
+
+ return
\ No newline at end of file
diff --git a/scripts/commands/of_purge_1.py b/scripts/commands/of_purge_1.py
index 7a6edae9..1d1f6bae 100644
--- a/scripts/commands/of_purge_1.py
+++ b/scripts/commands/of_purge_1.py
@@ -4,6 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_purge_1')
+ core.buffService.addBuffToCreature(actor, 'of_purge_1', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_scatter_1.py b/scripts/commands/of_scatter_1.py
index c1ae742a..855c1841 100644
--- a/scripts/commands/of_scatter_1.py
+++ b/scripts/commands/of_scatter_1.py
@@ -4,9 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_scatter_1')
- group = core.objectService.getObject(actor.getGroupId())
- for creature in group.getMemberList():
- core.buffService.addBuffToCreature(creature, 'of_scatter_1')
+ core.buffService.addGroupBuff(actor, 'of_scatter_1', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/of_stimulator_1.py b/scripts/commands/of_stimulator_1.py
index c9b5a1c1..25efda68 100644
--- a/scripts/commands/of_stimulator_1.py
+++ b/scripts/commands/of_stimulator_1.py
@@ -4,6 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'of_stimulator_1')
+ core.buffService.addBuffToCreature(actor, 'of_stimulator_1', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/permissionlistmodify.py b/scripts/commands/permissionlistmodify.py
new file mode 100644
index 00000000..5d75a1e2
--- /dev/null
+++ b/scripts/commands/permissionlistmodify.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ permissionType = 'Undetermined'
+ commandArgs = commandString.split(' ')
+ if len(commandArgs) > 3:
+ permissionType = commandArgs[2]
+ if permissionType=='ENTRY' | permissionType=='BAN':
+ core.housingService.handlePermissionListModify(actor, target, commandString)
+ if permissionType=='ADMIN' | permissionType=='HOPPER':
+ core.harvesterService.handlePermissionListModify(actor, target, commandString)
+ return
+
+
\ No newline at end of file
diff --git a/scripts/commands/placestructure.py b/scripts/commands/placestructure.py
new file mode 100644
index 00000000..fa7bc65a
--- /dev/null
+++ b/scripts/commands/placestructure.py
@@ -0,0 +1,25 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ cmdArgs = commandString.split(" ")
+
+ deedId = long(cmdArgs[0])
+ deed = core.objectService.getObject(deedId)
+
+ if deed == actor:
+ deed = actor.getUseTarget()
+
+ if deed.getTemplate().startswith('object/tangible/deed/harvester_deed') is True or deed.getTemplate().startswith('object/tangible/deed/generator_deed') is True:
+ core.harvesterService.handlePlaceStructureCommand(actor, target, commandString)
+ return
+
+ positionX = float(cmdArgs[1])
+ positionZ = float(cmdArgs[2])
+ rotation = float(cmdArgs[3])
+
+ core.housingService.placeStructure(actor, deed, positionX, positionZ, rotation)
+
+ return
diff --git a/scripts/commands/planetchat.py b/scripts/commands/planetchat.py
new file mode 100644
index 00000000..827fef78
--- /dev/null
+++ b/scripts/commands/planetchat.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ room = core.chatService.getChatRoomByAddress('SWG.' + core.getGalaxyName() + '.' + actor.getPlanet().getName() + '.Planet')
+
+ if room is None:
+ return
+
+ core.chatService.sendChatRoomMessage(actor, room.getRoomId(), 0, commandString)
+ return
\ No newline at end of file
diff --git a/scripts/commands/purchaseticket.py b/scripts/commands/purchaseticket.py
index 1f6de430..9e6998ef 100644
--- a/scripts/commands/purchaseticket.py
+++ b/scripts/commands/purchaseticket.py
@@ -4,8 +4,6 @@ def setup():
return
def run(core, actor, target, commandString):
- #print ('Command string: ' + commandString)
-
trvSvc = core.travelService
cmdArgs = commandString.split(" ")
@@ -14,8 +12,8 @@ def run(core, actor, target, commandString):
departureLoc = cmdArgs[1].replace("_"," ")
arrivalPlanet = cmdArgs[2]
arrivalLoc = cmdArgs[3].replace("_", " ")
- # 4 int
- # 5 int
- trvSvc.purchaseTravelTicket(actor, departurePlanet, departureLoc, arrivalPlanet, arrivalLoc, '1')
+ roundTrip = cmdArgs[4]
+
+ trvSvc.purchaseTravelTicket(actor, departurePlanet, departureLoc, arrivalPlanet, arrivalLoc, roundTrip)
return
\ No newline at end of file
diff --git a/scripts/commands/pvp.py b/scripts/commands/pvp.py
index 93e9051b..34f6c5ff 100644
--- a/scripts/commands/pvp.py
+++ b/scripts/commands/pvp.py
@@ -1,74 +1,86 @@
from resources.objects.creature import CreatureObject
-from protocol.swg import UpdatePVPStatusMessage
+from resources.datatables import PvpStatus
+from resources.datatables import FactionStatus
import sys
+import time
def setup():
return
def run(core, actor, target, commandString):
- actorFaction = actor.getFaction()
- actorStatus = actor.getFactionStatus()
- pvpStatus = UpdatePVPStatusMessage(actor.getObjectId())
-
- if commandString == ('imperial') and actorFaction != "imperial":
- actor.setFaction('imperial')
- return
-
- if commandString == ('rebel') and actorFaction != "rebel":
- actor.setFaction('rebel')
- return
-
- if commandString == ('neutral') and actorFaction != "neutral":
- actor.setFaction('neutral')
- return
-
- if actorStatus == 0 and actorFaction == "imperial":
- actor.setFactionStatus(1)
- #print ("FactionStatus: " + str(actor.getFactionStatus()))
- actor.sendSystemMessage('You are no longer On Leave.', 0)
- return
+ faction = actor.getFaction()
+ factionStatus = actor.getFactionStatus()
- if actorStatus == 0 and actorFaction == "rebel":
- actor.setFactionStatus(1)
- #print ("FactionStatus: " + str(actor.getFactionStatus()))
- actor.sendSystemMessage('You are no longer On Leave.', 0)
- return
+ if actor.getPvpStatus(PvpStatus.GoingOvert) or actor.getPvpStatus(PvpStatus.GoingCovert):
+ actor.sendSystemMessage('@faction_recruiter:pvp_status_changing', 0)
+ return
+ if core.gcwService.isInPvpZone(actor):
+ actor.sendSystemMessage('@gcw:pvp_advanced_region_cannot_go_covert', 0)
+ return
- if actorStatus == 1 and actorFaction == "imperial":
- actor.setFactionStatus(2)
- pvpStatus.setFaction(UpdatePVPStatusMessage.factionCRC.Imperial)
- pvpStatus.setStatus(55)
- actor.notifyObservers(pvpStatus.serialize(), True)
- actor.sendSystemMessage('@faction_recruiter:overt_complete', 0)
- print ("FactionStatus: " + str(actor.getFactionStatus()))
- return
-
- if actorStatus == 1 and actorFaction == "rebel":
- actor.setFactionStatus(2)
- pvpStatus.setFaction(UpdatePVPStatusMessage.factionCRC.Rebel)
- pvpStatus.setStatus(55)
- actor.notifyObservers(pvpStatus.serialize(), True)
- actor.sendSystemMessage('@faction_recruiter:overt_complete', 0)
- print ("FactionStatus: " + str(actor.getFactionStatus()))
- return
-
- if actorStatus == 2 and actorFaction == "imperial":
- actor.setFactionStatus(1)
- pvpStatus.setFaction(UpdatePVPStatusMessage.factionCRC.Imperial)
- pvpStatus.setStatus(16)
- actor.notifyObservers(pvpStatus.serialize(), True)
- actor.sendSystemMessage('@faction_recruiter:covert_complete', 0)
- print ("FactionStatus: " + str(actor.getFactionStatus()))
- return
-
- if actorStatus == 2 and actorFaction == "rebel":
- actor.setFactionStatus(1)
- pvpStatus.setFaction(UpdatePVPStatusMessage.factionCRC.Rebel)
- pvpStatus.setStatus(16)
- actor.notifyObservers(pvpStatus.serialize(), True)
- actor.sendSystemMessage('@faction_recruiter:covert_complete', 0)
- print ("FactionStatus: " + str(actor.getFactionStatus()))
- return
-
-
- return
\ No newline at end of file
+ if commandString != '' and commandString != faction:
+ if commandString == 'rebel' or commandString == 'imperial' or commandString == 'neutral':
+ if faction != 'neutral':
+ actor.sendSystemMessage('@faction_recruiter:sui_resig_complete_in_5', 0)
+
+ if actor.getFactionStatus() == FactionStatus.SpecialForces:
+ actor.setPvpStatus(PvpStatus.GoingCovert, True)
+ time.sleep(300)
+
+ actor.setPvpStatus(PvpStatus.GoingCovert | PvpStatus.Overt | PvpStatus.Attackable | PvpStatus.Aggressive | PvpStatus.Enemy, False)
+ actor.setFactionStatus(FactionStatus.OnLeave)
+
+ if actor.getFaction() != '' and actor.getFaction() != 'neutral':
+ time.sleep(1)
+ actor.setFaction('')
+ actor.sendSystemMessage('@faction_recruiter:resign_complete', 0)
+
+ if commandString == 'neutral' or commandString == 'resign':
+ time.sleep(1)
+ actor.setFaction('')
+ actor.sendSystemMessage('@faction_recruiter:resign_complete', 0)
+ return
+
+ time.sleep(1)
+ actor.setFaction(commandString)
+ return
+
+ if faction == 'neutral' or faction == '':
+ actor.sendSystemMessage('@faction_recruiter:not_aligned', 0)
+ return
+
+ if factionStatus == FactionStatus.OnLeave:
+ actor.sendSystemMessage('@faction_recruiter:on_leave_to_covert', 0)
+ actor.setPvpStatus(PvpStatus.GoingCovert, True)
+ time.sleep(1)
+ actor.setFactionStatus(FactionStatus.Combatant)
+ actor.setPvpStatus(PvpStatus.GoingCovert, False)
+ actor.sendSystemMessage('@faction_recruiter:covert_complete', 0)
+ actor.updatePvpStatus()
+ return
+
+ if factionStatus == FactionStatus.Combatant:
+ actor.sendSystemMessage('@faction_recruiter:covert_to_overt', 0)
+ actor.setPvpStatus(PvpStatus.GoingOvert, True)
+ time.sleep(30)
+ if core.gcwService.isInPvpZone(actor):
+ return
+ actor.setFactionStatus(FactionStatus.SpecialForces)
+ actor.setPvpStatus(PvpStatus.GoingOvert, False)
+ actor.sendSystemMessage('@faction_recruiter:overt_complete', 0)
+ actor.updatePvpStatus()
+ return
+
+ if factionStatus == FactionStatus.SpecialForces:
+ actor.sendSystemMessage('@faction_recruiter:overt_to_covert', 0)
+ actor.setPvpStatus(PvpStatus.GoingCovert, True)
+ time.sleep(300)
+ if core.gcwService.isInPvpZone(actor):
+ return
+ actor.setFactionStatus(FactionStatus.Combatant)
+ actor.setPvpStatus(PvpStatus.GoingCovert, False)
+ actor.sendSystemMessage('@faction_recruiter:covert_complete', 0)
+ actor.updatePvpStatus()
+ return
+
+ return
diff --git a/scripts/commands/removeBuff.py b/scripts/commands/removeBuff.py
new file mode 100644
index 00000000..cd63145f
--- /dev/null
+++ b/scripts/commands/removeBuff.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ buffObj = actor.getBuffByCRC(int(commandString))
+
+ if buffObj is None:
+ return
+
+ if buffObj.isRemovableByPlayer() and buffObj.isDebuff() is False:
+ core.buffService.removeBuffFromCreature(actor, buffObj)
+ return
\ No newline at end of file
diff --git a/scripts/commands/removefriend.py b/scripts/commands/removefriend.py
index d4474d39..0958fd79 100644
--- a/scripts/commands/removefriend.py
+++ b/scripts/commands/removefriend.py
@@ -6,6 +6,6 @@ def setup():
def run(core, actor, target, commandString):
ghost = actor.getSlottedObject('ghost')
chatSvc = core.chatService
- chatSvc.removeFriend(ghost, commandString, 1)
+ chatSvc.removeFriend(ghost, commandString)
return
\ No newline at end of file
diff --git a/scripts/commands/removeignore.py b/scripts/commands/removeignore.py
new file mode 100644
index 00000000..4561dd79
--- /dev/null
+++ b/scripts/commands/removeignore.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ actorGhost = actor.getSlottedObject("ghost")
+ chatSrvc = core.chatService
+ chatSrvc.removeFromIgnoreList(actor, commandString)
+ return
\ No newline at end of file
diff --git a/scripts/commands/requestbiography.py b/scripts/commands/requestbiography.py
new file mode 100644
index 00000000..41ed2382
--- /dev/null
+++ b/scripts/commands/requestbiography.py
@@ -0,0 +1,24 @@
+import sys
+from protocol.swg.objectControllerObjects import BiographyUpdate
+from protocol.swg import ObjControllerMessage
+
+
+# Called when open Character tab
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ if actor is None:
+ return
+
+ if target is None:
+ return
+
+ tGhost = target.getSlottedObject('ghost')
+
+ bioUpdate = BiographyUpdate(actor.getObjectId(), target.getObjectId(), tGhost.getBiography())
+ objMsg = ObjControllerMessage(11, bioUpdate)
+ actor.getClient().getSession().write(objMsg.serialize())
+
+ return
\ No newline at end of file
diff --git a/scripts/commands/requestcoresample.py b/scripts/commands/requestcoresample.py
new file mode 100644
index 00000000..2931588a
--- /dev/null
+++ b/scripts/commands/requestcoresample.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ core.surveyService.requestSampling(actor, target, commandString);
+ return
\ No newline at end of file
diff --git a/scripts/commands/requestsurvey.py b/scripts/commands/requestsurvey.py
new file mode 100644
index 00000000..ccff8b8a
--- /dev/null
+++ b/scripts/commands/requestsurvey.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ core.surveyService.requestSurvey(actor, target, commandString);
+ return
\ No newline at end of file
diff --git a/scripts/commands/requestwaypointatposition.py b/scripts/commands/requestwaypointatposition.py
new file mode 100644
index 00000000..2acdedc3
--- /dev/null
+++ b/scripts/commands/requestwaypointatposition.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ commandArgs = commandString.split("(^-,=+_)color_13548(,+-=_^)=1")
+ newString = commandArgs[0]
+
+ core.commandService.callCommand(actor, 'waypoint', None, newString)
+ return
\ No newline at end of file
diff --git a/scripts/commands/resourcecontainersplit.py b/scripts/commands/resourcecontainersplit.py
new file mode 100644
index 00000000..ae3869c5
--- /dev/null
+++ b/scripts/commands/resourcecontainersplit.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ target.splitContainer(actor,target,commandString)
+ return
\ No newline at end of file
diff --git a/scripts/commands/resourcecontainertransfer.py b/scripts/commands/resourcecontainertransfer.py
new file mode 100644
index 00000000..8a369843
--- /dev/null
+++ b/scripts/commands/resourcecontainertransfer.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ target.transferContainer(actor,target,commandString)
+ return
\ No newline at end of file
diff --git a/scripts/commands/resourceemptyhopper.py b/scripts/commands/resourceemptyhopper.py
new file mode 100644
index 00000000..7989148f
--- /dev/null
+++ b/scripts/commands/resourceemptyhopper.py
@@ -0,0 +1,8 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ core.harvesterService.handleHarvesterDeactivateCommand(actor, target, commandString)
+ return
diff --git a/scripts/commands/roleplay.py b/scripts/commands/roleplay.py
new file mode 100644
index 00000000..312e93fc
--- /dev/null
+++ b/scripts/commands/roleplay.py
@@ -0,0 +1,11 @@
+from java.lang import Integer
+from resources.datatables import PlayerFlags
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ ghost = actor.getSlottedObject('ghost')
+ ghost.toggleFlag(PlayerFlags.ROLEPLAYER)
+ return
\ No newline at end of file
diff --git a/scripts/commands/rotatefurniture.py b/scripts/commands/rotatefurniture.py
new file mode 100644
index 00000000..66b1dc27
--- /dev/null
+++ b/scripts/commands/rotatefurniture.py
@@ -0,0 +1,30 @@
+import sys
+from engine.resources.scene import Point3D
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ tarObj = core.objectService.getObject(actor.getTargetId())
+
+ container = actor.getContainer()
+ parsedMsg = commandString.split(' ', 2)
+
+ if tarObj.getAttachment('initialized') is not None and target.getAttachment('initialized') == True:
+ return
+
+ if core.housingService.getPermissions(actor, container): # i should probably relook into my permissions system... it kinda sucks
+ if parsedMsg[0] == "pitch":
+ core.simulationService.transform(tarObj, float(parsedMsg[1]), Point3D(1, 0, 0)) # this is messed up ???
+ return
+ elif parsedMsg[0] == "yaw":
+ core.simulationService.transform(tarObj, float(parsedMsg[1]), Point3D(0, 1, 0)) # this is correct
+ return
+ elif parsedMsg[0] == "roll":
+ core.simulationService.transform(tarObj, float(parsedMsg[1]), Point3D(0, 0, 1)) # this is messed up ???
+ return
+ elif container.getTemplate() == "object/cell/shared_cell.iff":
+ actor.sendSystemMessage("You do not have permission to access that container!", 0)
+ return
+
+ return
diff --git a/scripts/commands/saberblock.py b/scripts/commands/saberblock.py
index 55e12c59..4a69c0ff 100644
--- a/scripts/commands/saberblock.py
+++ b/scripts/commands/saberblock.py
@@ -4,6 +4,6 @@ def setup(core, actor, buff):
return
def run(core, actor, target, commandString):
- core.buffService.addBuffToCreature(actor, 'saberblock')
+ core.buffService.addBuffToCreature(actor, 'saberblock', actor)
return
\ No newline at end of file
diff --git a/scripts/commands/server.py b/scripts/commands/server.py
new file mode 100644
index 00000000..0514fa98
--- /dev/null
+++ b/scripts/commands/server.py
@@ -0,0 +1,40 @@
+import sys
+from engine.resources.scene import Point3D
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ playerObject = actor.getSlottedObject('ghost')
+
+ if not playerObject:
+ return
+
+ commandArgs = commandString.split(' ')
+ command = commandArgs[0]
+ if len(commandArgs) > 1:
+ arg1 = commandArgs[1]
+ if len(commandArgs) > 2:
+ arg2 = commandArgs[2]
+ if len(commandArgs) > 3:
+ arg3 = commandArgs[3]
+ if len(commandArgs) > 4:
+ arg4 = commandArgs[4]
+
+ if not command:
+ return
+
+ if command == 'lockServer':
+ core.setGalaxyStatus(3)
+ if command == 'unlockServer':
+ core.setGalaxyStatus(2)
+ if command == 'info':
+ actor.sendSystemMessage(str(core.getActiveZoneClients()) + ' online characters.', 0)
+ if command == 'shutdown':
+ core.initiateShutdown()
+ if command == 'getheight':
+ actor.sendSystemMessage(str(core.terrainService.getHeight(actor.getPlanetId(), actor.getWorldPosition().x, actor.getWorldPosition().z)), 0)
+
+
+ return
diff --git a/scripts/commands/serverdestroyobject.py b/scripts/commands/serverdestroyobject.py
index ae58c794..81c01698 100644
--- a/scripts/commands/serverdestroyobject.py
+++ b/scripts/commands/serverdestroyobject.py
@@ -1,3 +1,4 @@
+from resources.common import Console
import sys
def setup():
@@ -18,11 +19,10 @@ def run(core, actor, target, commandString):
if not target.getPermissions().canRemove(actor, target):
return
if parent and not parent.getPermissions().canRemove(actor, parent):
- return
- if not target.isSubChildOf(actor):
+ Console.println("Doesn't have permission!")
return
- parent.remove(target)
+ #parent.remove(target)
core.objectService.destroyObject(target)
return
\ No newline at end of file
diff --git a/scripts/commands/setbiography.py b/scripts/commands/setbiography.py
new file mode 100644
index 00000000..2d113622
--- /dev/null
+++ b/scripts/commands/setbiography.py
@@ -0,0 +1,25 @@
+import sys
+from protocol.swg.objectControllerObjects import BiographyUpdate
+from protocol.swg import ObjControllerMessage
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ if actor is None:
+ return
+
+ if len(commandString) > 200:
+ return
+
+ ghost = actor.getSlottedObject('ghost')
+
+ if ghost is None:
+ return
+
+ ghost.setBiography(commandString)
+
+ bioUpdate = BiographyUpdate(actor.getObjectId(), actor.getObjectId(), commandString)
+ objMsg = ObjControllerMessage(11, bioUpdate)
+ actor.getClient().getSession().write(objMsg.serialize())
+ return
\ No newline at end of file
diff --git a/scripts/commands/setcurrentskilltitle.py b/scripts/commands/setcurrentskilltitle.py
index 9ae1cb6e..160c9091 100644
--- a/scripts/commands/setcurrentskilltitle.py
+++ b/scripts/commands/setcurrentskilltitle.py
@@ -4,6 +4,13 @@ def setup():
return
def run(core, actor, target, commandString):
+
playerObject = actor.getSlottedObject('ghost')
- playerObject.setTitle(str(commandString))
+ #print ("Title set to: " + commandString)
+ #print ("List of Titles: " + playerObject.getTitleList().toString())
+ if playerObject is None:
+ return
+
+ if str(commandString) in playerObject.getTitleList() or str(commandString) == "citizenship" or str(commandString) == "": playerObject.setTitle(str(commandString))
+
return
\ No newline at end of file
diff --git a/scripts/commands/setgodmode.py b/scripts/commands/setgodmode.py
new file mode 100644
index 00000000..1f419588
--- /dev/null
+++ b/scripts/commands/setgodmode.py
@@ -0,0 +1,137 @@
+import sys
+from engine.resources.scene import Point3D
+from protocol.swg import ObjControllerMessage
+from protocol.swg import UnknownAbilityPacket
+from engine.resources.objects import SWGObject
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ playerObject = actor.getSlottedObject('ghost')
+
+ if not playerObject:
+ return
+
+ commandArgs = commandString.split(' ')
+ command = commandArgs[0]
+ if len(commandArgs) > 1:
+ arg1 = commandArgs[1]
+ if len(commandArgs) > 2:
+ arg2 = commandArgs[2]
+ if len(commandArgs) > 3:
+ arg3 = commandArgs[3]
+ if len(commandArgs) > 4:
+ arg4 = commandArgs[4]
+ if len(commandArgs) > 5:
+ arg5 = commandArgs[5]
+
+ if not command:
+ return
+
+ if actor.getClient().isGM() is False:
+ return
+
+ if playerObject.getGodLevel() == 0:
+ actor.addAbility("admin")
+ playerObject.setGodLevel(50)
+
+ if command == 'giveExperience' and arg1:
+ core.playerService.giveExperience(actor, int(arg1))
+
+ if command == 'level' and arg1:
+ core.playerService.grantLevel(actor, int(arg1))
+
+ elif command == 'setSpeed' and arg1:
+ actor.sendSystemMessage('Your speed was ' + str(actor.getSpeedMultiplierBase()) + '. Don\'t forget to set this back or it\'ll permanently imbalance your speed. Default without buffs or mods is 1.', 2)
+ actor.setSpeedMultiplierBase(float(arg1))
+ actor.sendSystemMessage('Your new speed is ' + str(actor.getSpeedMultiplierBase()) + '.', 2)
+
+ elif command == 'teleport' and arg2 and arg3 and arg4:
+ position = Point3D(float(arg2), float(arg3), float(arg4))
+ core.simulationService.transferToPlanet(actor, core.terrainService.getPlanetByName(arg1), position, actor.getOrientation(), None)
+
+ elif command == 'teleportplayer' and arg1 and arg2 and arg3 and arg4 and arg5:
+ player = core.chatService.getObjectByFirstName(arg1)
+ if player:
+ position = Point3D(float(arg3), float(arg4), float(arg5))
+ core.simulationService.transferToPlanet(player, core.terrainService.getPlanetByName(arg2), position, player.getOrientation(), None)
+
+ elif command == 'credits' and arg1:
+ actor.setCashCredits(actor.getCashCredits() + int(arg1))
+ actor.sendSystemMessage('The Galactic Empire has transferred ' + arg1 + ' credits to you for your service.', 0)
+
+ elif command == 'addability' and arg1:
+ actor.addAbility(str(arg1))
+ actor.sendSystemMessage('You have learned ' + arg1 + '.', 0)
+
+ elif command == 'anim' and arg1:
+ actor.doSkillAnimation(arg1)
+ actor.sendSystemMessage('Performed ' + arg1 ,0)
+
+ elif command == 'changeBio' and arg1:
+ actor.getSlottedObject('ghost').setBiography(arg1)
+
+ elif command == 'spawn' and arg1 and arg2:
+ pos = actor.getWorldPosition()
+ core.spawnService.spawnCreature(arg1, actor.getPlanet().getName(), 0, pos.x, pos.y, pos.z, 1, 0, 1, 0, int(arg2))
+
+ elif command == 'instance' and arg1:
+ core.instanceService.queue(arg1, actor)
+
+ elif command == 'action' and arg1:
+ actor.setAction(int(arg1))
+
+ elif command == 'health' and arg1:
+ actor.setHealth(int(arg1))
+
+ elif command == 'id':
+ actor.sendSystemMessage('Your id is: ' + str(actor.getObjectId()), 0)
+
+ elif command == 'cust' and arg1 and arg2 and arg3:
+ obj = core.objectService.getObject(long(arg1))
+ obj.setCustomizationVariable(str(arg2), int(arg3))
+
+ elif command == 'buff' and arg1:
+ core.buffService.addBuffToCreature(actor, str(arg1), actor)
+
+ elif command == 'stealth':
+ if (actor.isInStealth()):
+ actor.setInStealth(False)
+ actor.setRadarVisible(True)
+ else:
+ actor.setInStealth(True)
+ actor.setRadarVisible(False)
+
+ elif command == 'holoEmote' and arg1:
+ playerObject.setHoloEmote('holoemote_' + arg1)
+ playerObject.setHoloEmoteUses(20)
+ actor.sendSystemMessage('Holo-Emote Generator set to ' + 'holoemote_' + arg1, 0)
+
+ elif command == 'off':
+ if playerObject.getGodLevel > 0:
+ actor.removeAbility("admin")
+ playerObject.setGodLevel(0)
+
+ elif command == 'setBounty':
+ if actor.getFaction() == "":
+ actor.sendSystemMessage('You must be aligned in order to place a bounty on yourself.', 0)
+ return
+ core.playerService.sendSetBountyWindow(actor, actor)
+ return
+
+ elif command == 'genloot':
+ object = core.lootService.generateLootItem(actor, arg1)
+
+ inventory = actor.getSlottedObject('inventory')
+
+ if inventory:
+ inventory.add(object)
+
+ elif command == 'unknownAbilityPacket' and arg1:
+ packet = UnknownAbilityPacket(arg1)
+ actor.getClient().getSession().write(packet.serialize())
+ actor.sendSystemMessage('Sent UnknownAbilityPacket for ability ' + arg1, 0)
+ return
+ return
diff --git a/scripts/commands/setspeed.py b/scripts/commands/setspeed.py
index e5929c25..c73266de 100644
--- a/scripts/commands/setspeed.py
+++ b/scripts/commands/setspeed.py
@@ -5,6 +5,5 @@ def setup():
def run(core, actor, target, commandString):
actor.setSpeedMultiplierBase(float(commandString))
- core.buffService.addBuffToCreature(actor, 'bh_prescience')
return
\ No newline at end of file
diff --git a/scripts/commands/setwaypointactivestatus.py b/scripts/commands/setwaypointactivestatus.py
index 70d5b50c..24199d36 100644
--- a/scripts/commands/setwaypointactivestatus.py
+++ b/scripts/commands/setwaypointactivestatus.py
@@ -9,6 +9,10 @@ def run(core, actor, target, commandString):
return
waypointTarget = core.objectService.getObject(target.getObjectID())
wp = playerObject.getWaypointFromList(target)
+
+ if wp is None:
+ return
+
if wp.isActive() == True:
wp.setActive(False)
playerObject.waypointUpdate(wp)
diff --git a/scripts/commands/sitserver.py b/scripts/commands/sitserver.py
index 2641b8a3..9e732988 100644
--- a/scripts/commands/sitserver.py
+++ b/scripts/commands/sitserver.py
@@ -23,10 +23,9 @@ def run(core, actor, target, commandString):
actor.setStateBitmask(32768)
actor.setTurnRadius(0)
return
-
+ # sit w/o chair
actor.setPosture(8)
actor.setSpeedMultiplierBase(0)
actor.setTurnRadius(0)
-
return
\ No newline at end of file
diff --git a/scripts/commands/smokebomb.py b/scripts/commands/smokebomb.py
new file mode 100644
index 00000000..a9da5abb
--- /dev/null
+++ b/scripts/commands/smokebomb.py
@@ -0,0 +1,38 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ level = actor.getLevel()
+ command = 'SmokeBomb1'
+ effect = 'clienteffect/entertainer_smoke_bomb_level_1.cef'
+ rLevel = 50 # minimum level to perform this effect
+
+ if commandString is None or commandString == '':
+ if level >= 90:
+ command = 'SmokeBomb3'
+ effect = 'clienteffect/entertainer_smoke_bomb_level_3.cef'
+
+ elif level >= 75:
+ command = 'SmokeBomb2'
+ effect = 'clienteffect/entertainer_smoke_bomb_level_2.cef'
+
+ if commandString is not None:
+ if commandString == '2':
+ command = 'SmokeBomb2'
+ effect = 'clienteffect/entertainer_smoke_bomb_level_2.cef'
+ rLevel = 75
+
+ elif commandString == '3':
+ command = 'SmokeBomb3'
+ effect = 'clienteffect/entertainer_smoke_bomb_level_3.cef'
+ rLevel = 90
+
+ if level < rLevel:
+ actor.sendSystemMessage('@performance:effect_lack_skill_self', 0)
+ return
+
+ if core.entertainmentService.performEffect(actor, command, effect, target) is True:
+ actor.sendSystemMessage('@performance:effect_perform_smoke_bomb', 0)
+ return
\ No newline at end of file
diff --git a/scripts/commands/spatialchatinternal.py b/scripts/commands/spatialchatinternal.py
index 451f6318..3a588dac 100644
--- a/scripts/commands/spatialchatinternal.py
+++ b/scripts/commands/spatialchatinternal.py
@@ -9,6 +9,7 @@ def run(core, actor, target, commandString):
chatMsg = parsedMsg[5]
chatType = int(parsedMsg[1])
moodId = int(parsedMsg[2])
- chatService.handleSpatialChat(actor, target, chatMsg, chatType, moodId)
+ languageId = int(parsedMsg[4])
+ chatService.spatialChat(actor, target, chatMsg, chatType, moodId, languageId, None)
return
\ No newline at end of file
diff --git a/scripts/commands/spotlight.py b/scripts/commands/spotlight.py
new file mode 100644
index 00000000..204c0017
--- /dev/null
+++ b/scripts/commands/spotlight.py
@@ -0,0 +1,39 @@
+from protocol.swg import PlayClientEffectObjectMessage
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ level = actor.getLevel()
+ command = 'SpotLight1'
+ effect = 'clienteffect/entertainer_spot_light_level_1.cef'
+ rLevel = 1 # minimum level to perform this effect
+
+ if commandString is None or commandString == '':
+ if level >= 30:
+ command = 'SpotLight3'
+ effect = 'clienteffect/entertainer_spot_light_level_3.cef'
+
+ elif level >= 20:
+ command = 'SpotLight2'
+ effect = 'clienteffect/entertainer_spot_light_level_2.cef'
+
+ if commandString is not None:
+ if commandString == '2':
+ command = 'SpotLight2'
+ effect = 'clienteffect/entertainer_spot_light_level_2.cef'
+ rLevel = 20
+
+ elif commandString == '3':
+ command = 'SpotLight3'
+ effect = 'clienteffect/entertainer_spot_light_level_3.cef'
+ rLevel = 30
+
+ if level < rLevel:
+ actor.sendSystemMessage('@performance:effect_lack_skill_self', 0)
+ return
+
+ if core.entertainmentService.performEffect(actor, command, effect, None) is True:
+ actor.sendSystemMessage('@performance:effect_perform_spot_light', 0)
+ return
diff --git a/scripts/commands/startdance.py b/scripts/commands/startdance.py
new file mode 100644
index 00000000..ce557827
--- /dev/null
+++ b/scripts/commands/startdance.py
@@ -0,0 +1,110 @@
+from services.sui import SUIWindow
+from services.sui import SUIService
+from services.sui.SUIWindow import Trigger
+from services.sui.SUIService import ListBoxType
+from java.util import Vector
+from java.util import HashMap
+from resources.datatables import Posture
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ entSvc = core.entertainmentService
+ global actorObject
+ global coreObject
+ global availableDances
+ global suiWindow
+ actorObject = actor
+ coreObject = core
+
+ if len(commandString) > 0:
+ params = commandString.split(" ")
+ startDance(core, actor, params[0], 0)
+ return
+ else:
+
+ availableDances = entSvc.getAvailableDances(actor)
+
+ suiSvc = core.suiService
+ suiWindow = suiSvc.createListBox(ListBoxType.LIST_BOX_OK_CANCEL, "@performance:select_dance", "@performance:available_dances", availableDances, actor, None, 10)
+
+ returnList = Vector()
+ returnList.add("List.lstList:SelectedRow")
+ suiWindow.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleStartdance)
+
+ suiSvc.openSUIWindow(suiWindow)
+ return
+ return
+
+
+def handleStartdance(core, owner, eventType, returnList):
+
+ item = suiWindow.getMenuItems().get(int(returnList.get(0)))
+
+ if not item:
+ return
+
+ #if eventType == 0:
+ startDance(coreObject, actorObject, '', int(item.getObjectId()))
+ return
+
+def startDance(core, actor, danceName, visual):
+
+ entSvc = core.entertainmentService
+
+ if visual <= 0:
+ visual = entSvc.getDanceVisualId(danceName)
+
+ if visual <= 0:
+ actor.sendSystemMessage('@performance:dance_unknown_self',0)
+ return
+
+ if not entSvc.isDance(visual):
+ actor.sendSystemMessage('@performance:dance_unknown_self',0)
+ return
+
+ if not entSvc.canDance(actor, visual):
+ actor.sendSystemMessage('@performance:dance_lack_skill_self',0)
+ return
+
+ if actor.getPosture() == 0x09:
+ actor.sendSystemMessage('@performance:already_performing_self',0)
+ return
+
+ #TODO: check costume
+
+ if actor.getPosture() != Posture.Upright:
+ actor.sendSystemMessage('@performance:dance_fail', 0)
+ return
+
+ actor.sendSystemMessage('@performance:dance_start_self',0);
+ # i'm not sure about this. i think stopping just stopped any watchers anyways
+ # method doesn't exist now.
+ #actor.notifyAudience('@performance:dance_start_other');
+
+ danceVisual = 'dance_' + str(visual)
+
+ if not actor.getPerformanceWatchee():
+ #this also notifies the client with a delta4
+ actor.setPerformanceWatchee(actor)
+ actor.addSpectator(actor)
+
+ #this should send a CREO3
+ actor.setPosture(0x09);
+
+ playerObject = actor.getSlottedObject('ghost')
+ if playerObject and playerObject.getProfession() == "entertainer_1a" and actor.getLevel() != 90:
+ entSvc.startPerformanceExperience(actor)
+
+ dance = entSvc.getDance(visual)
+
+ # performanceId > 0 seems to trigger the note bubble stuff, so use 0 here
+ # instead of dance.getLineNumber()
+ # send CREO6 here
+ # second param is some sort of counter or start tick
+ entSvc.startPerformance(actor, dance.getLineNumber(), -842249156 , danceVisual, 1)
+
+ return
diff --git a/scripts/commands/stopdance.py b/scripts/commands/stopdance.py
new file mode 100644
index 00000000..1427496b
--- /dev/null
+++ b/scripts/commands/stopdance.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ entSvc = core.entertainmentService
+ perf = entSvc.getPerformanceByIndex(actor.getPerformanceId())
+
+ if actor.getPosture() != 0x09 or not perf or perf.getDanceVisualId() < 0:
+ actor.sendSystemMessage('@performance:dance_not_performing', 0)
+ return
+
+ actor.stopPerformance()
+ return
diff --git a/scripts/commands/stopwatching.py b/scripts/commands/stopwatching.py
new file mode 100644
index 00000000..555ee4ab
--- /dev/null
+++ b/scripts/commands/stopwatching.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ performer = target
+ if commandString is not None and target is None:
+ performer = core.chatService.getObjectByFirstName(commandString)
+
+ if performer is None:
+ return
+ performer.removeSpectator(actor)
+ actor.setPerformanceWatchee(None)
+ if not actor.getPerformanceListenee():
+ actor.setMoodAnimation('')
+
+ actor.sendSystemMessage('@performance:dance_watch_stop_self',0)
+ return
diff --git a/scripts/commands/suspendtest.py b/scripts/commands/suspendtest.py
new file mode 100644
index 00000000..61d95fd7
--- /dev/null
+++ b/scripts/commands/suspendtest.py
@@ -0,0 +1,30 @@
+import sys
+import resources.common.Forager
+import time
+
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ actor.sendSystemMessage('Test1', 1)
+ time.sleep(1)
+ actor.sendSystemMessage('Test2', 1)
+ time.sleep(1)
+ actor.sendSystemMessage('Test3', 1)
+ time.sleep(1)
+ actor.sendSystemMessage('Test4', 1)
+ time.sleep(1)
+ actor.sendSystemMessage('Test5', 1)
+ time.sleep(1)
+ actor.sendSystemMessage('Test6', 1)
+ time.sleep(1)
+ actor.sendSystemMessage('Test7', 1)
+ time.sleep(1)
+ actor.sendSystemMessage('Test8', 1)
+ time.sleep(1)
+
+
+
+ return
+
\ No newline at end of file
diff --git a/scripts/commands/teleporttarget.py b/scripts/commands/teleporttarget.py
new file mode 100644
index 00000000..f497fe25
--- /dev/null
+++ b/scripts/commands/teleporttarget.py
@@ -0,0 +1,29 @@
+import sys
+from engine.resources.scene import Point3D
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+
+ playerObject = actor.getSlottedObject('ghost')
+
+ if not playerObject:
+ return
+
+ commandArgs = commandString.split(' ')
+ if len(commandArgs) > 0:
+ arg1 = commandArgs[0]
+ if len(commandArgs) > 1:
+ arg2 = commandArgs[1]
+ if len(commandArgs) > 2:
+ arg3 = commandArgs[2]
+ if len(commandArgs) > 3:
+ arg4 = commandArgs[3]
+
+ if arg1 and arg2 and arg3 and arg4 target:
+ position = Point3D(float(arg2), float(arg3), float(arg4))
+ core.simulationService.transferToPlanet(target, core.terrainService.getPlanetByName(arg1), position, actor.getOrientation(), None)
+
+
+ return
diff --git a/scripts/commands/tip.py b/scripts/commands/tip.py
index b0b4331c..b34992f2 100644
--- a/scripts/commands/tip.py
+++ b/scripts/commands/tip.py
@@ -1,6 +1,4 @@
-from resources.objects.creature import CreatureObject
from java.util import Date
-from engine.resources.objects import SWGObject
from services.chat import ChatService
from services.chat import Mail
from services.sui import SUIWindow
@@ -8,6 +6,7 @@ from services.sui import SUIService
from services.sui.SUIWindow import Trigger
from services.sui.SUIService import MessageBoxType
from java.util import Vector
+from main import NGECore
import sys
# initialize global vars (happens at compile time)
@@ -81,7 +80,8 @@ def run(core, actor, target, commandString):
return
return
-def handleBankTip(core, owner, eventType, returnList):
+def handleBankTip(owner, window, eventType, returnList):
+ core = NGECore.getInstance()
chatSvc = core.chatService
actorGlobal = core.objectService.getObject(actorID)
targetGlobal = core.objectService.getObject(targetID)
@@ -115,7 +115,7 @@ def handleBankTip(core, owner, eventType, returnList):
actorMail.setSubject('@base_player:wire_mail_subject')
actorMail.setSenderName('bank')
- targetGlobal.setBankCredits(int(tipAmount))
+ targetGlobal.setBankCredits(int(tipAmount) + int(targetGlobal.getBankCredits()))
actorGlobal.setBankCredits(int(actorFunds) - int(totalLost))
actorGlobal.sendSystemMessage('You have successfully sent ' + tipAmount + ' bank credits to ' + targetGlobal.getCustomName(), 0)
targetGlobal.sendSystemMessage('You have successfully received ' + tipAmount + ' bank credits from ' + actorGlobal.getCustomName(), 0)
diff --git a/scripts/commands/toggleawayfromkeyboard.py b/scripts/commands/toggleawayfromkeyboard.py
new file mode 100644
index 00000000..21fddc02
--- /dev/null
+++ b/scripts/commands/toggleawayfromkeyboard.py
@@ -0,0 +1,10 @@
+from resources.datatables import PlayerFlags
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ ghost = actor.getSlottedObject('ghost')
+ ghost.toggleFlag(PlayerFlags.AFK)
+ return
diff --git a/scripts/commands/toggledisplayingfactionrank.py b/scripts/commands/toggledisplayingfactionrank.py
new file mode 100644
index 00000000..e39aad18
--- /dev/null
+++ b/scripts/commands/toggledisplayingfactionrank.py
@@ -0,0 +1,10 @@
+from resources.datatables import PlayerFlags
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ ghost = actor.getSlottedObject('ghost')
+ ghost.toggleFlag(PlayerFlags.FACTIONRANK)
+ return
diff --git a/scripts/commands/transferitemarmor.py b/scripts/commands/transferitemarmor.py
index ab107cf3..8e166cbc 100644
--- a/scripts/commands/transferitemarmor.py
+++ b/scripts/commands/transferitemarmor.py
@@ -4,10 +4,18 @@ def setup():
return
def run(core, actor, target, commandString):
+
parsedMsg = commandString.split(' ', 3)
objService = core.objectService
containerID = long(parsedMsg[1])
container = objService.getObject(containerID)
+
+ canEquip = core.equipmentService.canEquip(actor, target)
+
+ if canEquip[0] is False and container == actor:
+ actor.sendSystemMessage(canEquip[1], 0)
+ return
+
if target and container and target.getContainer():
oldContainer = target.getContainer()
if container == oldContainer:
@@ -15,19 +23,34 @@ def run(core, actor, target, commandString):
return;
replacedObject = None
slotName = None
+ replacedObjects = []
+ slotNames = None
if actor == container:
- slotName = container.getSlotNameForObject(target)
- replacedObject = container.getSlottedObject(slotName)
-
+ slotNames = container.getSlotNamesForObject(target)
+ for slotName in slotNames:
+ object = container.getSlottedObject(slotName)
+ if not object in replacedObjects and not object == None:
+ replacedObjects.append(object)
+
oldContainer.transferTo(actor, container, target)
if actor == container:
if target.getTemplate().find('/wearables/') or target.getTemplate().find('/weapon/'):
- core.equipmentService.equip(actor, target, replacedObject)
+ core.equipmentService.equip(actor, target)
+ for object in replacedObjects:
+ core.equipmentService.unequip(actor, object)
#path = 'scripts/' + target.getTemplate().rpartition('/')[0] + '/'
#module = target.getTemplate().rpartition('/')[2].replace('shared_', '').replace('.iff', '')
#core.scriptService.callScript(path, 'equip', module, core, actor, target)
-
+
+ if container == actor.getSlottedObject('appearance_inventory'):
+ actor.addObjectToAppearanceEquipList(target)
+ for object in replacedObjects:
+ actor.removeObjectFromAppearanceEquipList(object)
+
+ if oldContainer == actor.getSlottedObject('appearance_inventory'):
+ actor.removeObjectFromAppearanceEquipList(target)
+
if actor == oldContainer:
if target.getTemplate().find('/wearables/') or target.getTemplate().find('/weapon/'):
#path = 'scripts/' + target.getTemplate().rpartition('/')[0] + '/'
diff --git a/scripts/commands/transferitemmisc.py b/scripts/commands/transferitemmisc.py
index 53eef0d6..2df5ab93 100644
--- a/scripts/commands/transferitemmisc.py
+++ b/scripts/commands/transferitemmisc.py
@@ -1,5 +1,6 @@
import sys
-
+from engine.resources.scene import Quaternion
+
def setup():
return
@@ -8,6 +9,47 @@ def run(core, actor, target, commandString):
objService = core.objectService
containerID = long(parsedMsg[1])
container = objService.getObject(containerID)
+ actorContainer = actor.getContainer()
+
+ if container == None: return
+
+ if not 'cell' in container.getTemplate() and container.isFull():
+ actor.sendSystemMessage('@container_error_message:container03', 0)
+ return
+
+ if container.getTemplate().startswith("object/tangible/inventory/shared_lightsaber_inventory") or target.getContainer().getTemplate().startswith("object/tangible/inventory/shared_lightsaber_inventory"):
+ core.equipmentService.calculateLightsaberAttributes(actor, target, container)
+ return;
+
+ if target.getTemplate() == 'object/tangible/item/shared_loot_cash.iff':
+ core.lootService.handleCreditPickUp(actor,target)
+ core.objectService.destroyObject(target)
+ return
+
+ if target.isLootItem():
+ target.setLootItem(0)
+ actor.sendSystemMessage('You looted ' + target.getObjectName().getStfValue() + ' from corpse.', 0)
+
+ if actorContainer != None and (container.getTemplate() == "object/cell/shared_cell.iff") & core.housingService.getPermissions(actor, actorContainer):
+ target.getContainer().transferTo(actor, container, target)
+ core.simulationService.teleport(target, actor.getPosition(), Quaternion(1,0,0,0), containerID)
+ return
+
+ elif target.getContainer().getTemplate() == "object/cell/shared_cell.iff" and core.housingService.getPermissions(actor, target.getContainer()):
+ target.getContainer().transferTo(actor, container, target)
+ return
+
+ elif actorContainer != None and container.getTemplate() == "object/cell/shared_cell.iff":
+ actor.sendSystemMessage("You do not have permission to access that container!", 0)
+ return
+
+ canEquip = core.equipmentService.canEquip(actor, target)
+
+ if canEquip[0] is False and container == actor:
+ actor.sendSystemMessage(canEquip[1], 0)
+ return
+
+
if target and container and target.getContainer():
oldContainer = target.getContainer()
@@ -17,19 +59,35 @@ def run(core, actor, target, commandString):
replacedObject = None
slotName = None
+ replacedObjects = []
+ slotNames = None
if actor == container:
- slotName = container.getSlotNameForObject(target)
- replacedObject = container.getSlottedObject(slotName)
-
+ slotNames = container.getSlotNamesForObject(target)
+ for slotName in slotNames:
+ object = container.getSlottedObject(slotName)
+ if not object in replacedObjects and not object == None:
+ replacedObjects.append(object)
+
oldContainer.transferTo(actor, container, target)
+ for object in replacedObjects:
+ core.equipmentService.unequip(actor, object)
+
if actor == container:
if target.getTemplate().find('/wearables/') or target.getTemplate().find('/weapon/'):
- core.equipmentService.equip(actor, target, replacedObject)
+ core.equipmentService.equip(actor, target)
+
#path = 'scripts/' + target.getTemplate().rpartition('/')[0] + '/'
#module = target.getTemplate().rpartition('/')[2].replace('shared_', '').replace('.iff', '')
#core.scriptService.callScript(path, 'equip', module, core, actor, target)
-
+ if container == actor.getSlottedObject('appearance_inventory'):
+ actor.addObjectToAppearanceEquipList(target)
+ for object in replacedObjects:
+ actor.removeObjectFromAppearanceEquipList(object)
+
+ if oldContainer == actor.getSlottedObject('appearance_inventory'):
+ actor.removeObjectFromAppearanceEquipList(target)
+
if actor == oldContainer:
if target.getTemplate().find('/wearables/') or target.getTemplate().find('/weapon/'):
#path = 'scripts/' + target.getTemplate().rpartition('/')[0] + '/'
@@ -37,4 +95,4 @@ def run(core, actor, target, commandString):
#core.scriptService.callScript(path, 'unequip', module, core, actor, target)
core.equipmentService.unequip(actor, target)
- return
\ No newline at end of file
+ return
diff --git a/scripts/commands/transferitemweapon.py b/scripts/commands/transferitemweapon.py
index 0bb7f55f..b07c4e03 100644
--- a/scripts/commands/transferitemweapon.py
+++ b/scripts/commands/transferitemweapon.py
@@ -4,6 +4,9 @@ def setup():
return
def run(core, actor, target, commandString):
+
+
+
parsedMsg = commandString.split(' ', 3)
objService = core.objectService
containerID = long(parsedMsg[1])
@@ -14,17 +17,30 @@ def run(core, actor, target, commandString):
print 'Error: New container is same as old container.'
return;
+ canEquip = core.equipmentService.canEquip(actor, target)
+
+ if canEquip[0] is False and container == actor:
+ actor.sendSystemMessage(canEquip[1], 0)
+ return
+
replacedObject = None
slotName = None
+ replacedObjects = []
+ slotNames = None
if actor == container:
- slotName = container.getSlotNameForObject(target)
- replacedObject = container.getSlottedObject(slotName)
-
+ slotNames = container.getSlotNamesForObject(target)
+ for slotName in slotNames:
+ object = container.getSlottedObject(slotName)
+ if not object in replacedObjects and not object == None:
+ replacedObjects.append(object)
+
oldContainer.transferTo(actor, container, target)
if actor == container:
if target.getTemplate().find('/wearables/') or target.getTemplate().find('/weapon/'):
- core.equipmentService.equip(actor, target, replacedObject)
+ core.equipmentService.equip(actor, target)
+ for object in replacedObjects:
+ core.equipmentService.unequip(actor, object)
#path = 'scripts/' + target.getTemplate().rpartition('/')[0] + '/'
#module = target.getTemplate().rpartition('/')[2].replace('shared_', '').replace('.iff', '')
#core.scriptService.callScript(path, 'equip', module, core, actor, target)
diff --git a/scripts/commands/ventriloquism.py b/scripts/commands/ventriloquism.py
new file mode 100644
index 00000000..1781fbd1
--- /dev/null
+++ b/scripts/commands/ventriloquism.py
@@ -0,0 +1,38 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ level = actor.getLevel()
+ command = 'Ventriloquism1'
+ effect = 'clienteffect/entertainer_ventriloquism_level_1.cef'
+ rLevel = 58 # minimum level to perform this effect
+
+ if commandString is None or commandString == '':
+ if level >= 90:
+ command = 'Ventriloquism3'
+ effect = 'clienteffect/entertainer_ventriloquism_level_3.cef'
+
+ elif level >= 75:
+ command = 'Ventriloquism2'
+ effect = 'clienteffect/entertainer_ventriloquism_level_2.cef'
+
+ if commandString is not None:
+ if commandString == '2':
+ command = 'Ventriloquism2'
+ effect = 'clienteffect/entertainer_ventriloquism_level_2.cef'
+ rLevel = 75
+
+ elif commandString == '3':
+ command = 'Ventriloquism3'
+ effect = 'clienteffect/entertainer_ventriloquism_level_3.cef'
+ rLevel = 90
+
+ if level < rLevel:
+ actor.sendSystemMessage('@performance:effect_lack_skill_self', 0)
+ return
+
+ if core.entertainmentService.performEffect(actor, command, effect, target) is True:
+ actor.sendSystemMessage('@performance:effect_perform_ventriloquism', 0)
+ return
\ No newline at end of file
diff --git a/scripts/commands/watch.py b/scripts/commands/watch.py
new file mode 100644
index 00000000..98627f98
--- /dev/null
+++ b/scripts/commands/watch.py
@@ -0,0 +1,35 @@
+import sys
+
+def setup():
+ return
+
+def run(core, actor, target, commandString):
+ entSvc = core.entertainmentService
+
+ if not target and commandString is not None:
+ target = core.chatService.getObjectByFirstName(commandString)
+
+ if target is None or actor.getPerformanceWatchee():
+ return
+
+
+ if target.getWorldPosition().getDistance2D(actor.getWorldPosition()) > float(20):
+ actor.sendSystemMessage(target.getCustomName() + ' is too far away to watch.', 0)
+ return
+
+ if not target.isPlayer():
+ actor.sendSystemMessage('@performance:dance_watch_npc', 0)
+ return
+
+ perf = entSvc.getPerformanceByIndex(target.getPerformanceId())
+
+ if target.getPosture() != 0x09 or not perf or perf.getDanceVisualId() < 0:
+ actor.sendSystemMessage(target.getCustomName() + ' is not dancing.',0)
+ return
+
+ if target.getCoverCharge() > 0 or target.getCoverCharge() == None:
+ core.entertainmentService.handleCoverCharge(actor, target)
+ return
+ else:
+ core.entertainmentService.startSpectating(actor, target, True)
+ return
\ No newline at end of file
diff --git a/scripts/commands/waypoint.py b/scripts/commands/waypoint.py
index 64e33136..b646ff14 100644
--- a/scripts/commands/waypoint.py
+++ b/scripts/commands/waypoint.py
@@ -22,43 +22,86 @@ def run(core, actor, target, commandString):
planet = core.terrainService.getPlanetByName(commandArgs[0])
waypoint = core.objectService.createObject('object/waypoint/shared_waypoint.iff', planet, float(commandArgs[1]), float(commandArgs[2]), float(commandArgs[3]))
waypoint.setActive(True)
- waypoint.setColor(colorCheck(core, actor, target, commandString, commandArgs[4]))
+ waypoint.setColor(colorCheck(commandArgs[4]))
name = commandString.split(" ", 5)
waypoint.setName(name[5])
waypoint.setPlanetCRC(crc.StringtoCRC(planet.getName()))
- actorPlayer.getWaypoints().add(waypoint)
+ waypoint.setStringAttribute('', '') # This simply allows the attributes to display (nothing else has to be done)
actorPlayer.waypointAdd(waypoint)
- actor.sendSystemMessage('A waypoint has been created in your datapad at your location.', 0)
+ actor.sendSystemMessage('A waypoint has been created in your datapad at the location.', 0)
return
+
#/wp X Z Y NAME
- if isFloat(commandArgs[0]) and isFloat(commandArgs[1]) and isFloat(commandArgs[2]):
+ if len(commandArgs) >= 4 and isFloat(commandArgs[0]) and isFloat(commandArgs[1]) and isFloat(commandArgs[2]):
waypoint = core.objectService.createObject('object/waypoint/shared_waypoint.iff', actor.getPlanet(), float(commandArgs[0]), float(commandArgs[2]), float(commandArgs[1]))
waypoint.setActive(True)
waypoint.setColor(WaypointObject.BLUE)
name = commandString.split(" ", 3)
waypoint.setName(name[3])
waypoint.setPlanetCRC(crc.StringtoCRC(actor.getPlanet().getName()))
- actorPlayer.getWaypoints().add(waypoint)
+ waypoint.setStringAttribute('', '') # This simply allows the attributes to display (nothing else has to be done)
actorPlayer.waypointAdd(waypoint)
- actor.sendSystemMessage('A waypoint has been created in your datapad at your location.', 0)
+ actor.sendSystemMessage('A waypoint has been created in your datapad at the location.', 0)
+ return
+ #/wp X Z Name
+ elif len(commandArgs) >= 3 and isFloat(commandArgs[0]) and isFloat(commandArgs[1]):
+ waypoint = core.objectService.createObject('object/waypoint/shared_waypoint.iff', actor.getPlanet(), float(commandArgs[0]), float(commandArgs[1]), actor.getWorldPosition().y)
+ waypoint.setActive(True)
+ waypoint.setColor(WaypointObject.BLUE)
+ name = commandString.split(" ", 2)
+ waypoint.setName(name[2])
+ waypoint.setPlanetCRC(crc.StringtoCRC(actor.getPlanet().getName()))
+ waypoint.setStringAttribute('', '') # This simply allows the attributes to display (nothing else has to be done)
+ actorPlayer.waypointAdd(waypoint)
+ actor.sendSystemMessage('A waypoint has been created in your datapad at the location.', 0)
+ return
+ #/wp X Z
+ elif len(commandArgs) >= 2 and isFloat(commandArgs[0]) and isFloat(commandArgs[1]):
+ waypoint = core.objectService.createObject('object/waypoint/shared_waypoint.iff', actor.getPlanet(), float(commandArgs[0]), float(commandArgs[1]), actor.getWorldPosition().y)
+ waypoint.setActive(True)
+ waypoint.setColor(WaypointObject.BLUE)
+ waypoint.setName("Waypoint")
+ waypoint.setPlanetCRC(crc.StringtoCRC(actor.getPlanet().getName()))
+ waypoint.setStringAttribute('', '') # This simply allows the attributes to display (nothing else has to be done)
+ actorPlayer.waypointAdd(waypoint)
+ actor.sendSystemMessage('A waypoint has been created in your datapad at the location.', 0)
return
- #/wp NAME
+ #/wp planet x z y name
+ elif len(commandArgs) >= 3 and isFloat(commandArgs[2]) and isFloat(commandArgs[3]) and isFloat(commandArgs[4]):
+ waypoint = core.objectService.createObject('object/waypoint/shared_waypoint.iff', core.terrainService.getPlanetByName(commandArgs[1]), float(commandArgs[2]), float(commandArgs[4]), float(commandArgs[3]))
+ waypoint.setActive(True)
+ waypoint.setColor(WaypointObject.BLUE)
+ name = commandString.split(" ", 5)
+ if name == "":
+ name = "Waypoint"
+
+ waypoint.setName(name[5])
+ waypoint.setPlanetCRC(crc.StringtoCRC(actor.getPlanet().getName()))
+ waypoint.setStringAttribute('', '') # This simply allows the attributes to display (nothing else has to be done)
+ actorPlayer.waypointAdd(waypoint)
+ actor.sendSystemMessage('A waypoint has been created in your datapad at the location.', 0)
+ return
+
+ #/wp
else:
waypoint = core.objectService.createObject('object/waypoint/shared_waypoint.iff', actor.getPlanet(), actor.getWorldPosition().x, actor.getWorldPosition().z, actor.getWorldPosition().y)
waypoint.setActive(True)
waypoint.setColor(WaypointObject.BLUE)
- waypoint.setName(commandString)
+ if commandString == '':
+ waypoint.setName(actor.getPlanet().name.capitalize())
+ else:
+ waypoint.setName(commandString)
waypoint.setPlanetCRC(crc.StringtoCRC(actor.getPlanet().getName()))
- actorPlayer.getWaypoints().add(waypoint)
+ waypoint.setStringAttribute('', '') # This simply allows the attributes to display (nothing else has to be done)
actorPlayer.waypointAdd(waypoint)
actor.sendSystemMessage('A waypoint has been created in your datapad at your location.', 0)
return
return
-def colorCheck(core, actor, target, commandString, validcolors):
+def colorCheck(validcolors):
if validcolors == "blue":
return WaypointObject.BLUE
if validcolors == "green":
diff --git a/scripts/conversation/byxle.py b/scripts/conversation/byxle.py
new file mode 100644
index 00000000..71c08205
--- /dev/null
+++ b/scripts/conversation/byxle.py
@@ -0,0 +1,15 @@
+from resources.common import ConversationOption
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+from java.util import Vector
+import sys
+
+def startConversation(core, actor, npc):
+ convSvc = core.conversationService
+
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_byxle', 's_48')
+ return
+
+def endConversation(core, actor, npc):
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_byxle', 's_48')
+ return
\ No newline at end of file
diff --git a/scripts/conversation/demo.py b/scripts/conversation/demo.py
new file mode 100644
index 00000000..35ab97b6
--- /dev/null
+++ b/scripts/conversation/demo.py
@@ -0,0 +1,60 @@
+from resources.common import ConversationOption
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+from java.util import Vector
+import sys
+
+def startConversation(core, actor, npc):
+ convSvc = core.conversationService
+
+ convSvc.sendConversationMessage(actor, npc, OutOfBand(ProsePackage('conversation/respecseller:s_31')))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand(ProsePackage('conversation/respecseller:s_32')), 0))
+ options.add(ConversationOption(OutOfBand(ProsePackage('conversation/respecseller:s_33')), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen)
+
+ return
+
+def handleFirstScreen(core, actor, npc, selection):
+ convSvc = core.conversationService
+
+ # TODO: check for prices
+
+ if selection == 0: # respec
+ convSvc.sendConversationMessage(actor, npc, OutOfBand(ProsePackage('conversation/respecseller:s_58')))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand(ProsePackage('conversation/respecseller:s_60')), 0))
+ options.add(ConversationOption(OutOfBand(ProsePackage('conversation/respecseller:s_64')), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleRespecScreen)
+
+ if selection == 1: # expertise reset
+ convSvc.sendConversationMessage(actor, npc, OutOfBand(ProsePackage('conversation/respecseller:s_35')))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand(ProsePackage('conversation/respecseller:s_71')), 0))
+ options.add(ConversationOption(OutOfBand(ProsePackage('conversation/respecseller:s_72')), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleResetScreen)
+
+ return
+
+def handleRespecScreen(core, actor, npc, selection):
+ if selection == 0:
+ core.skillService.sendRespecWindow(actor)
+
+ core.conversationService.handleEndConversation(actor, npc)
+
+ return
+
+def handleResetScreen(core, actor, npc, selection):
+ if selection == 0:
+ core.skillService.resetExpertise(actor)
+
+ core.conversationService.handleEndConversation(actor, npc)
+
+ return
+
+def endConversation(core, actor, npc):
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/respecseller', 's_38')
+ return
diff --git a/scripts/conversation/dunir.py b/scripts/conversation/dunir.py
new file mode 100644
index 00000000..189e1748
--- /dev/null
+++ b/scripts/conversation/dunir.py
@@ -0,0 +1,15 @@
+from resources.common import ConversationOption
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+from java.util import Vector
+import sys
+
+def startConversation(core, actor, npc):
+ convSvc = core.conversationService
+
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_dunir', 's_37')
+ return
+
+def endConversation(core, actor, npc):
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_dunir', 's_37')
+ return
\ No newline at end of file
diff --git a/scripts/conversation/gendra.py b/scripts/conversation/gendra.py
new file mode 100644
index 00000000..25277b59
--- /dev/null
+++ b/scripts/conversation/gendra.py
@@ -0,0 +1,15 @@
+from resources.common import ConversationOption
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+from java.util import Vector
+import sys
+
+def startConversation(core, actor, npc):
+ convSvc = core.conversationService
+
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_gendra', 's_99')
+ return
+
+def endConversation(core, actor, npc):
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_gendra', 's_99')
+ return
\ No newline at end of file
diff --git a/scripts/conversation/imp_recruiter.py b/scripts/conversation/imp_recruiter.py
new file mode 100644
index 00000000..3b506483
--- /dev/null
+++ b/scripts/conversation/imp_recruiter.py
@@ -0,0 +1,311 @@
+from resources.common import ConversationOption
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+from resources.common import RadialOptions
+from resources.datatables import PvpStatus
+from resources.datatables import FactionStatus
+
+from services.sui import SUIWindow
+from services.sui.SUIWindow import Trigger
+
+from java.util import Vector
+import sys
+
+
+impRecruiterRef = 0
+
+
+def startConversation(core, actor, npc):
+ global coreRef
+ global impRecruiterRef
+ coreRef = core
+ impRecruiterRef = npc
+ convSvc = core.conversationService
+ faction = actor.getFaction()
+ factionStatus = actor.getFactionStatus()
+
+ if actor.getPvpStatus(PvpStatus.GoingOvert) or actor.getPvpStatus(PvpStatus.GoingCovert):
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_444')
+ return
+ elif actor.getFaction() != 'rebel' and actor.getFaction() != 'imperial':
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_414'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_428'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_85'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen)
+
+ return
+ elif actor.getFaction() == 'imperial' and actor.getFactionStatus() == FactionStatus.OnLeave:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_80'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_49'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_410'), 1))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_324'), 2))
+ convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen)
+
+ return
+ elif actor.getFaction() == 'imperial' and actor.getFactionStatus() == FactionStatus.Combatant:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_310'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_49'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_410'), 1))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_324'), 2))
+ convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen)
+
+ return
+ elif actor.getFactionStatus() == FactionStatus.SpecialForces:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_310'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_49'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_410'), 1))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_324'), 2))
+ convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen)
+
+ return
+ elif actor.getFaction() == 'rebel':
+ npc.setCurrentAnimation('all_b_emt_backhand')
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_308')
+ return
+ return
+
+def handleFirstScreen(core, actor, npc, selection):
+
+ convSvc = core.conversationService
+ if actor.getFaction() != 'rebel' and actor.getFaction() != 'imperial':
+ if selection == 0:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_432'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_434'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_440'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen)
+ return
+
+ if selection == 1:
+ return
+
+ if selection == 2:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_442')
+ return
+ return
+ elif actor.getFaction() == 'imperial' and actor.getFactionStatus() == FactionStatus.OnLeave:
+ if selection == 0:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_50'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_97'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_93'), 1))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_88'), 2))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_55'), 3))
+ convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen)
+
+ return
+ if selection == 1:
+ percent = core.guildService.getGuildObject().getCurrentServerGCWTotalPercentMap().get(actor.getPlanet().getName()).getPercent().intValue()
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage("@conversation/faction_recruiter_imperial:s_412", percent, "TO", str(100 - percent)))
+ return
+ if selection == 2:
+ return
+ return
+ elif actor.getFaction() == 'imperial' and actor.getFactionStatus() == FactionStatus.Combatant:
+ if selection == 0:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('conversation/faction_recruiter_imperial', 's_55'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_74'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_93'), 1))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_88'), 2))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_55'), 3))
+ convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen)
+
+ return
+ if selection == 1:
+ percent = core.guildService.getGuildObject().getCurrentServerGCWTotalPercentMap().get(actor.getPlanet().getName()).getPercent().intValue()
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage("@conversation/faction_recruiter_imperial:s_412", percent, "TO", str(100 - percent)))
+ return
+
+ if selection == 2:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_90'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_92'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_96'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen)
+
+ return
+ return
+ elif actor.getFaction() == 'imperial' and actor.getFactionStatus() == FactionStatus.SpecialForces:
+ if selection == 0:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_50'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_74'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_97'), 1))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_88'), 2))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_55'), 3))
+ convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen)
+
+ return
+ if selection == 1:
+ percent = core.guildService.getGuildObject().getCurrentServerGCWTotalPercentMap().get(actor.getPlanet().getName()).getPercent().intValue()
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage("@conversation/faction_recruiter_imperial:s_412", percent, "TO", str(100 - percent)))
+ return
+ if selection == 2:
+ return
+ return
+
+
+def handleSecondScreen(core, actor, npc, selection):
+ convSvc = core.conversationService
+
+
+ if actor.getFaction() != 'rebel' and actor.getFaction() != 'imperial':
+ if selection == 0:
+ core.factionService.join(actor, 'imperial')
+ core.factionService.changeFactionStatus(actor, FactionStatus.OnLeave)
+
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_116'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_438'), 0))
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_100')
+
+ return
+ if selection == 1:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_442')
+ return
+ return
+ elif actor.getFaction() == 'imperial' and actor.getFactionStatus() == FactionStatus.OnLeave:
+ if selection == 0:
+ core.factionService.changeFactionStatus(actor, FactionStatus.Combatant)
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_300')
+ return
+
+ if selection == 1:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_64'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_66'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_302'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleFourthScreen)
+ return
+ if selection == 2:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_90'))
+
+ options = Vector()
+ options.add(ConversationOption(outOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_92'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_96'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleThirdScreen)
+ return
+ if selection == 3:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_95')
+ return
+ return
+ elif actor.getFaction() == 'imperial' and actor.getFactionStatus() == FactionStatus.Combatant:
+ if selection == 0:
+ core.factionService.changeFactionStatus(actor, FactionStatus.SpecialForces)
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_76'))
+
+ options = Vector()
+ options.add(ConversationOption(outOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_79'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_70'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleFithScreen)
+ return
+
+ if selection == 1:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_64'))
+
+ options = Vector()
+ options.add(ConversationOption(outOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_66'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_302'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleFourthScreen)
+
+ return
+ if selection == 2:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_90'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_92'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_96'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleThirdScreen)
+
+ return
+ if selection == 3:
+ return
+ return
+ elif actor.getFaction() == 'imperial' and actor.getFactionStatus() == FactionStatus.SpecialForces:
+ if selection == 0:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('conversation/faction_recruiter_imperial:s_76'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_79'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_70'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleFithScreen)
+
+ return
+ if selection == 1:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_54'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_56'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_84'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleSixthScreen)
+
+ return
+ if selection == 2:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_90'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_92'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_imperial:s_96'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleThirdScreen)
+
+ return
+ if selection == 3:
+ return
+ return
+
+def handleThirdScreen(core, actor, npc, selection):
+ if selection == 0:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_94')
+ core.factionService.resign(actor)
+ return
+
+ if selection == 1:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_98')
+ return
+ return
+
+def handleFourthScreen(core, actor, npc, selection):
+ if selection == 0:
+ core.factionService.changeFactionStatus(actor, FactionStatus.Combatant)
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_68')
+ return
+ if selection == 1:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_72')
+ return
+ return
+
+def handleFithScreen(core, actor, npc, selection):
+ if selection == 0:
+ core.factionService.changeFactionStatus(actor, FactionStatus.OnLeave)
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_82')
+ return
+
+def handleSixthScreen(core, actor, npc, selection):
+ if selection == 0:
+ actor.setFactionStatus(FactionStatus.Combatant)
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_58')
+ return
+ if selection == 1:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_57')
+ return
+ return
+
+def endConversation(core, actor, npc):
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_304')
+ return
\ No newline at end of file
diff --git a/scripts/conversation/junk_dealer.py b/scripts/conversation/junk_dealer.py
new file mode 100644
index 00000000..b0741467
--- /dev/null
+++ b/scripts/conversation/junk_dealer.py
@@ -0,0 +1,223 @@
+from resources.common import ConversationOption
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+from resources.common import RadialOptions
+from services.sui import SUIWindow
+from services.sui.SUIWindow import Trigger
+from java.util import Vector
+from main import NGECore
+import sys
+
+def startConversation(core, actor, npc):
+ convSvc = core.conversationService
+
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_bef51e38'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_54fab04f'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_48'), 1))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_3aa18b2d'), 2))
+
+ buyBack = actor.getAttachment('buy_back')
+
+ if buyBack is not None and buyBack != 0 and core.objectService.objsInContainer(actor, core.objectService.getObject(buyBack)) > 0:
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_43'), 3))
+
+ convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen)
+ return
+
+def handleFirstScreen(core, actor, npc, selection):
+ convSvc = core.conversationService
+
+ if selection == 0:
+ # sell items
+
+ sellItemListRef = core.lootService.getSellableInventoryItems(actor)
+
+ if len(sellItemListRef) == 0:
+ actor.sendSystemMessage('@loot_dealer:no_items', 1)
+ startConversation(core, actor, npc)
+ return # no point
+
+ convSvc.sendStopConversation(actor, npc, 'conversation/junk_dealer_generic', 's_84a67771')
+ core.lootService.handleJunkDealerSellWindow(actor, npc, sellItemListRef)
+ return
+
+ if selection == 1:
+ # Mark Items
+ convSvc.sendStopConversation(actor, npc, 'conversation/junk_dealer_generic', 's_50')
+ core.lootService.handleJunkDealerMarkItems(actor, npc)
+ return
+
+ if selection == 2:
+ lootKitScreen1(core, actor, npc)
+ return
+
+ if selection == 3:
+ # buy back
+
+ buyHistory = core.objectService.objsInContainer(actor, core.objectService.getObject(actor.getAttachment('buy_back')))
+ if buyHistory == 0:
+ actor.sendSystemMessage('@loot_dealer:no_buy_back_items_found', 1)
+ startConversation(core,actor,npc)
+ return
+
+ convSvc.sendStopConversation(actor, npc, 'conversation/junk_dealer_generic', 's_44')
+ core.lootService.handleJunkDealerBuyBackWindow(actor, npc)
+ return
+ return
+
+def endConversation(core, actor, npc):
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/junk_dealer_generic', 's_4bd9d15e')
+ return
+
+def handleLootScreenSelection1(core, actor, npc, selection):
+
+ convSvc = core.conversationService
+ if selection == 0:
+ lootKitScreen1(core, actor, npc)
+
+ return
+
+def handleLootScreenSelection2(core, actor, npc, selection):
+
+ convSvc = core.conversationService
+ if selection == 0:
+ lootKitScreen2(core, actor, npc)
+
+ return
+
+def handleLootScreenSelection3(core, actor, npc, selection):
+
+ convSvc = core.conversationService
+ if selection == 0:
+ lootKitScreen3(core, actor, npc)
+
+ return
+
+def handleLootScreenSelection4(core, actor, npc, selection):
+
+ convSvc = core.conversationService
+ if selection == 0:
+ lootKitScreen4(core, actor, npc)
+
+ return
+
+def handleLootScreenSelection5(core, actor, npc, selection):
+
+ convSvc = core.conversationService
+ if selection == 0:
+ lootKitScreen5a(core, actor, npc)
+
+ if selection == 1:
+ lootKitScreen5b(core, actor, npc)
+
+ return
+
+def handleLootScreenSelection6(core, actor, npc, selection):
+
+ convSvc = core.conversationService
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_14efaaa2'))
+ if selection == 0:
+ template = 'object/tangible/loot/collectible/kits/shared_orange_rug_kit.iff'
+ addLootKit(core, actor, npc,template)
+
+ if selection == 1:
+ template = 'object/tangible/loot/collectible/kits/shared_blue_rug_kit.iff'
+ addLootKit(core, actor, npc,template)
+
+ if selection == 2:
+ template = 'object/tangible/loot/collectible/kits/shared_gong_kit.iff'
+ addLootKit(core, actor, npc,template)
+
+ if selection == 3:
+ template = 'object/tangible/loot/collectible/kits/shared_light_table_kit.iff'
+ addLootKit(core, actor, npc,template)
+
+ if selection == 4:
+ template = 'object/tangible/loot/collectible/kits/shared_sculpture_kit.iff'
+ addLootKit(core, actor, npc,template)
+
+ return
+
+def addLootKit(core, actor, npc,template):
+
+ kit = core.objectService.createObject(template, actor.getPlanet())
+ inventory = actor.getSlottedObject('inventory')
+ inventory.add(kit)
+ return
+
+def lootKitScreen1(core, actor, npc):
+
+ convSvc = core.conversationService
+
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_d9e6b751'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_6d53d062'), 0))
+
+ convSvc.sendConversationOptions(actor, npc, options, handleLootScreenSelection2)
+
+ return
+
+def lootKitScreen2(core, actor, npc):
+
+ convSvc = core.conversationService
+
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_e29f48dc'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_324b9b0f'), 0))
+
+ convSvc.sendConversationOptions(actor, npc, options, handleLootScreenSelection3)
+
+ return
+
+def lootKitScreen3(core, actor, npc):
+
+ convSvc = core.conversationService
+
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_12fe83a6'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_e1a103e5'), 0))
+
+ convSvc.sendConversationOptions(actor, npc, options, handleLootScreenSelection4)
+
+ return
+
+def lootKitScreen4(core, actor, npc):
+
+ convSvc = core.conversationService
+
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_4d65752'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_d347bee3'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_b60b73f8'), 1))
+
+ convSvc.sendConversationOptions(actor, npc, options, handleLootScreenSelection5)
+
+ return
+
+def lootKitScreen5a(core, actor, npc):
+
+ convSvc = core.conversationService
+
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_3fc7eb45'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_ee977dee'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_8f39769'), 1))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_fe657cdd'), 2))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_9ede4b84'), 3))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/junk_dealer_generic:s_87c5851b'), 4))
+
+ convSvc.sendConversationOptions(actor, npc, options, handleLootScreenSelection6)
+
+ return
+
+def lootKitScreen5b(core, actor, npc):
+
+ startConversation(core,actor,npc)
+ return
\ No newline at end of file
diff --git a/scripts/conversation/mayor_mikdanyel_guhrantt.py b/scripts/conversation/mayor_mikdanyel_guhrantt.py
new file mode 100644
index 00000000..32d86b84
--- /dev/null
+++ b/scripts/conversation/mayor_mikdanyel_guhrantt.py
@@ -0,0 +1,15 @@
+from resources.common import ConversationOption
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+from java.util import Vector
+import sys
+
+def startConversation(core, actor, npc):
+ convSvc = core.conversationService
+
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/mos_eisley_mayor', 's_117')
+ return
+
+def endConversation(core, actor, npc):
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/mos_eisley_mayor', 's_117')
+ return
\ No newline at end of file
diff --git a/scripts/conversation/medical_cloning_droid.py b/scripts/conversation/medical_cloning_droid.py
new file mode 100644
index 00000000..8089c5f5
--- /dev/null
+++ b/scripts/conversation/medical_cloning_droid.py
@@ -0,0 +1,122 @@
+from resources.common import ConversationOption
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+from resources.common import RadialOptions
+
+
+from services.sui import SUIWindow
+from services.sui.SUIWindow import Trigger
+
+from java.util import Vector
+import sys
+
+
+
+
+def startConversation(core, actor, npc):
+ global coreRef
+ coreRef = core
+ convSvc = core.conversationService
+
+
+ if actor.getBuffByName('cloning_sickness'):
+
+ level = int(actor.getLevel())
+
+ if level <= 10:
+ cloningFee = 100
+ elif level >= 11:
+ cloningFee = (((actor.getLevel() + 17) * actor.getLevel())/2)
+ elif level == 90:
+ cloningFee = 5000
+
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage("@conversation/clone_droid:s_6", int(cloningFee)))
+ prose1 = ProsePackage('conversation/clone_droid', 's_8')
+ outOfBand2 = OutOfBand()
+ outOfBand2.addProsePackage(prose1)
+ prose2 = ProsePackage('conversation/clone_droid', 's_12')
+ outOfBand3 = OutOfBand()
+ outOfBand3.addProsePackage(prose2)
+ option1 = ConversationOption(outOfBand2, 0)
+ option2 = ConversationOption(outOfBand3, 1)
+
+
+ options = Vector()
+ options.add(option1)
+ options.add(option2)
+
+ convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen)
+ return
+ else:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/clone_droid', 's_14')
+ return
+ return
+
+def handleFirstScreen(core, actor, npc, selection):
+
+ convSvc = core.conversationService
+ if selection == 0:
+ prose = ProsePackage('conversation/clone_droid', 's_10')
+ outOfBand = OutOfBand()
+ outOfBand.addProsePackage(prose)
+ convSvc.sendConversationMessage(actor, npc, outOfBand)
+ prose2 = ProsePackage('conversation/clone_droid', 's_12')
+ outOfBand2 = OutOfBand()
+ outOfBand2.addProsePackage(prose2)
+ option1 = ConversationOption(outOfBand2, 0)
+
+
+ options = Vector()
+ options.add(option1)
+
+ convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen)
+
+ return
+
+
+ if selection == 1:
+ if actor.getLevel() <= 10:
+ cloningFee = 100
+ elif actor.getLevel() >= 11:
+ cloningFee = (((actor.getLevel() + 17) * actor.getLevel())/2)
+ elif actor.getLevel() == 90:
+ cloningFee = 5000
+
+
+ if actor.getCashCredits() >= cloningFee:
+ core.buffService.removeBuffFromCreature(actor, actor.getBuffByName("cloning_sickness"));
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/clone_droid', 's_14')
+ actor.setCashCredits(actor.getCashCredits() - int(cloningFee))
+ return
+ elif actor.getCashCredits() <= cloningFee:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/clone_droid', 's_16')
+ return
+ return
+
+
+def handleSecondScreen(core, actor, npc, selection):
+ convSvc = core.conversationService
+
+ if actor.getLevel() <= 10:
+ cloningFee = 100
+ elif actor.getLevel() >= 11:
+ cloningFee = (((actor.getLevel() + 17) * actor.getLevel())/2)
+ elif actor.getLevel() == 90:
+ cloningFee = 5000
+
+ if selection == 0:
+ if actor.getCashCredits() >= cloningFee:
+ core.buffService.removeBuffFromCreature(actor, actor.getBuffByName("cloning_sickness"));
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/clone_droid', 's_14')
+ actor.setCashCredits(actor.getCashCredits() - int(cloningFee))
+ return
+ elif actor.getCashCredits() <= cloningFee:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/clone_droid', 's_16')
+ return
+ return
+
+def endConversation(core, actor, npc):
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/clone_droid', 's_4')
+ return
+
+
\ No newline at end of file
diff --git a/scripts/conversation/missions/bounty_droid_probot.py b/scripts/conversation/missions/bounty_droid_probot.py
new file mode 100644
index 00000000..78fd806b
--- /dev/null
+++ b/scripts/conversation/missions/bounty_droid_probot.py
@@ -0,0 +1,54 @@
+from resources.common import ConversationOption
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+from java.util import Vector
+import time
+import sys
+
+def startConversation(core, actor, npc):
+ convSvc = core.conversationService
+
+ probotRequester = core.objectService.getObject(long(npc.getAttachment('probotRequester')))
+
+ if probotRequester is None:
+ core.objectService.destroyObject(npc)
+ return
+
+ if probotRequester.getObjectId() != actor.getObjectId():
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/bounty_probot:s_6'))
+ return
+
+ mission = core.objectService.getObject(long(npc.getAttachment('attachedMission')))
+
+ if mission is None:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/bounty_probot:s_4'))
+ return
+
+ objective = mission.getObjective()
+
+ if objective is None:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/bounty_probot:s_4'))
+ return
+
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/bounty_probot:s_5'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/bounty_probot:s_8'), 0))
+ convSvc.sendConversationOptions(actor, npc, options, handleBioTransmit)
+ return
+
+def handleBioTransmit(core, actor, npc, selection):
+ core.conversationService.handleEndConversation(actor, npc)
+ actor.sendSystemMessage('@mission/mission_generic:probe_droid_takeoff', 0)
+
+ npc.setPosture(8)
+
+ time.sleep(7)
+ objective = core.objectService.getObject(long(npc.getAttachment('attachedMission'))).getObjective()
+ objective.beginArakydUpdate(actor)
+ core.objectService.destroyObject(npc)
+ return
+
+def endConversation(core, actor, npc):
+ core.conversationService.sendStopConversation(actor, npc, '', '')
+ return
diff --git a/scripts/conversation/missions/deliver.py b/scripts/conversation/missions/deliver.py
new file mode 100644
index 00000000..774e3e01
--- /dev/null
+++ b/scripts/conversation/missions/deliver.py
@@ -0,0 +1,70 @@
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+from resources.objectives import DeliveryMissionObjective
+import sys
+
+def startConversation(core, actor, npc):
+ missionId = npc.getAttachment('assignedMission')
+
+ if missionId is None:
+ return
+
+ mission = core.objectService.getObject(missionId)
+
+ if mission is None:
+ return
+
+ objective = mission.getObjective()
+
+ if mission.getGrandparent().getObjectId() != actor.getObjectId() or objective is None:
+ core.conversationService.sendStopConversation(actor, npc, 'mission/mission_generic', 'npc_job_request_no_job')
+ return
+
+ if objective.getObjectivePhase() == 0:
+ handlePickupStage(core, actor, npc, objective, mission)
+ return
+
+ elif objective.getObjectivePhase() == 1:
+ handleDeliveryStage(core, actor, npc, objective, mission)
+ return
+
+ elif objective.getObjectivePhase() == 2:
+ handleCompletionStage(core, actor, npc, objective, mission)
+ return
+ return
+
+def endConversation(core, actor, npc):
+ core.conversationService.sendStopConversation(actor, npc, 'mission/mission_generic', 'npc_job_request_no_job')
+ return
+
+def handlePickupStage(core, actor, npc, objective, mission):
+
+ if objective.getMissionGiver().getObjectId() != npc.getObjectId():
+ endConversation(core, actor, npc)
+ return
+
+ core.conversationService.sendStopConversation(actor, npc, mission.getMissionDescription(), 'm' + str(mission.getMissionId()) + 'p')
+ objective.createDeliveryItem(core, actor)
+ objective.update(core, actor)
+ return
+
+def handleDeliveryStage(core, actor, npc, objective, mission):
+
+ if objective.getDropOffNpc().getObjectId() != npc.getObjectId():
+ endConversation(core, actor, npc)
+ return
+
+ core.conversationService.sendStopConversation(actor, npc, mission.getMissionDescription(), 'm' + str(mission.getMissionId()) + 'r')
+ core.objectService.destroyObject(objective.getDeliveryObject())
+ objective.update(core, actor)
+ return
+
+def handleCompletionStage(core, actor, npc, objective, mission):
+
+ if objective.getMissionGiver().getObjectId() != npc.getObjectId():
+ endConversation(core, actor, npc)
+ return
+
+ core.conversationService.sendStopConversation(actor, npc, mission.getMissionDescription(), 'm' + str(mission.getMissionId()) + 's')
+ core.missionService.handleMissionComplete(actor, mission)
+ return
\ No newline at end of file
diff --git a/scripts/conversation/niko.py b/scripts/conversation/niko.py
new file mode 100644
index 00000000..87e9d576
--- /dev/null
+++ b/scripts/conversation/niko.py
@@ -0,0 +1,15 @@
+from resources.common import ConversationOption
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+from java.util import Vector
+import sys
+
+def startConversation(core, actor, npc):
+ convSvc = core.conversationService
+
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_niko', 's_71')
+ return
+
+def endConversation(core, actor, npc):
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_niko', 's_71')
+ return
\ No newline at end of file
diff --git a/scripts/conversation/reb_recruiter.py b/scripts/conversation/reb_recruiter.py
new file mode 100644
index 00000000..d1b8a1a3
--- /dev/null
+++ b/scripts/conversation/reb_recruiter.py
@@ -0,0 +1,307 @@
+from resources.common import ConversationOption
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+from resources.common import RadialOptions
+from resources.datatables import PvpStatus
+from resources.datatables import FactionStatus
+
+from services.sui import SUIWindow
+from services.sui.SUIWindow import Trigger
+
+from java.util import Vector
+import sys
+
+
+impRecruiterRef = 0
+
+def startConversation(core, actor, npc):
+ global coreRef
+ global impRecruiterRef
+ coreRef = core
+ impRecruiterRef = npc
+ convSvc = core.conversationService
+ faction = actor.getFaction()
+ factionStatus = actor.getFactionStatus()
+
+ if actor.getPvpStatus(PvpStatus.GoingOvert) or actor.getPvpStatus(PvpStatus.GoingCovert):
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_364')
+ return
+ elif actor.getFaction() != 'rebel' and actor.getFaction() != 'imperial':
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_334'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_348'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_83'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen)
+
+ return
+ elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.OnLeave:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_216'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_49'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_330'), 1))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_248'), 2))
+ convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen)
+
+ return
+ elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.Combatant:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_216'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_49'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_330'), 1))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_248'), 2))
+ convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen)
+
+ return
+ elif actor.getFactionStatus() == FactionStatus.SpecialForces:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_216'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('conversation/faction_recruiter_rebel', 's_49'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('conversation/faction_recruiter_rebel', 's_330'), 1))
+ options.add(ConversationOption(OutOfBand.ProsePackage('conversation/faction_recruiter_rebel', 's_248'), 2))
+ convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen)
+
+ return
+ elif actor.getFaction() == 'imperial':
+ npc.setCurrentAnimation('all_b_emt_backhand')
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_230')
+ return
+ return
+
+def handleFirstScreen(core, actor, npc, selection):
+ convSvc = core.conversationService
+
+ if actor.getFaction() != 'rebel' and actor.getFaction() != 'imperial':
+ if selection == 0:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_352'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_354'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_360'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen)
+
+ return
+ if selection == 1:
+ return
+ if selection == 2:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_362')
+ return
+ return
+ elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.OnLeave:
+ if selection == 0:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_50'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_95'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_93'), 1))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_74'), 2))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_360'), 3))
+ convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen)
+
+ return
+ if selection == 1:
+ percent = core.guildService.getGuildObject().getCurrentServerGCWTotalPercentMap().get(actor.getPlanet().getName()).getPercent().intValue()
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage("@conversation/faction_recruiter_rebel:s_332", percent, "TO", str(100 - percent)))
+ return
+ if selection == 2:
+ return
+ return
+ elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.Combatant:
+ if selection == 0:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('conversation/faction_recruiter_rebel', 's_50'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_86'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_93'), 1))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_74'), 2))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_360'), 3))
+ convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen)
+
+ return
+ if selection == 1:
+ percent = core.guildService.getGuildObject().getCurrentServerGCWTotalPercentMap().get(actor.getPlanet().getName()).getPercent().intValue()
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage("@conversation/faction_recruiter_rebel:s_332", percent, "TO", str(100 - percent)))
+ return
+ if selection == 2:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_76'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_78'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_360'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen)
+
+ return
+ return
+ elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.SpecialForces:
+ if selection == 0:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_50'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_90'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_95'), 1))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_78'), 2))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_360'), 3))
+ convSvc.sendConversationOptions(actor, npc, options, handleSecondScreen)
+
+ return
+ if selection == 1:
+ percent = core.guildService.getGuildObject().getCurrentServerGCWTotalPercentMap().get(actor.getPlanet().getName()).getPercent().intValue()
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage("@conversation/faction_recruiter_rebel:s_332", percent, "TO", str(100 - percent)))
+ return
+ if selection == 2:
+ return
+ return
+
+def handleSecondScreen(core, actor, npc, selection):
+ convSvc = core.conversationService
+
+
+ if actor.getFaction() != 'rebel' and actor.getFaction() != 'imperial':
+ if selection == 0:
+ core.factionService.join(actor, 'rebel')
+ core.factionService.changeFactionStatus(actor, FactionStatus.OnLeave)
+
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_99'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_358'), 0))
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_356')
+
+ return
+ if selection == 1:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_362')
+ return
+ return
+ elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.OnLeave:
+ if selection == 0:
+ core.factionService.changeFactionStatus(actor, FactionStatus.Combatant)
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_224')
+ return
+ if selection == 1:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_64'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_66'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_226'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleFourthScreen)
+
+ return
+ if selection == 2:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_76'))
+
+ options = Vector()
+ options.add(ConversationOption(outOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_78'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_360'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleThirdScreen)
+
+ return
+ if selection == 3:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_97')
+ return
+ return
+ elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.Combatant:
+ if selection == 0:
+ core.factionService.changeFactionStatus(actor, FactionStatus.SpecialForces)
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_88'))
+
+ options = Vector()
+ options.add(ConversationOption(outOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_90'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_94'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleFithScreen)
+
+ return
+ if selection == 1:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_64'))
+
+ options = Vector()
+ options.add(ConversationOption(outOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_66'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_226'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleFourthScreen)
+
+ return
+ if selection == 2:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_76'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_78'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_360'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleThirdScreen)
+
+ return
+ if selection == 3:
+ return
+ return
+ elif actor.getFaction() == 'rebel' and actor.getFactionStatus() == FactionStatus.SpecialForces:
+ if selection == 0:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('conversation/faction_recruiter_rebel:s_88'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_90'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_94'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleFithScreen)
+
+ return
+ if selection == 1:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_54'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_56'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_360'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleSixthScreen)
+
+ return
+ if selection == 2:
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_76'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_74'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/faction_recruiter_rebel:s_360'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleThirdScreen)
+
+ return
+ if selection == 3:
+ return
+ return
+
+def handleThirdScreen(core, actor, npc, selection):
+ if selection == 0:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_58')
+ core.factionService.resign(actor)
+ return
+ if selection == 1:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_80')
+ return
+ return
+
+def handleFourthScreen(core, actor, npc, selection):
+ if selection == 0:
+ core.factionService.changeFactionStatus(actor, FactionStatus.SpecialForces)
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_224')
+ return
+ if selection == 1:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_72')
+ return
+ return
+
+def handleFithScreen(core, actor, npc, selection):
+ if selection == 0:
+ core.factionService.changeFactionStatus(actor, FactionStatus.OnLeave)
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_58')
+ return
+
+def handleSixthScreen(core, actor, npc, selection):
+ if selection == 0:
+ core.factionService.changeFactionStatus(actor, FactionStatus.Combatant)
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_92')
+ return
+ if selection == 1:
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_rebel', 's_57')
+ return
+ return
+
+def endConversation(core, actor, npc):
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/faction_recruiter_imperial', 's_304')
+ return
\ No newline at end of file
diff --git a/scripts/conversation/reimos.py b/scripts/conversation/reimos.py
new file mode 100644
index 00000000..dcc7a6e1
--- /dev/null
+++ b/scripts/conversation/reimos.py
@@ -0,0 +1,15 @@
+from resources.common import ConversationOption
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+from java.util import Vector
+import sys
+
+def startConversation(core, actor, npc):
+ convSvc = core.conversationService
+
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_reimos_v2', 's_36')
+ return
+
+def endConversation(core, actor, npc):
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_reimos_v2', 's_36')
+ return
\ No newline at end of file
diff --git a/scripts/conversation/respec.py b/scripts/conversation/respec.py
new file mode 100644
index 00000000..1c54294c
--- /dev/null
+++ b/scripts/conversation/respec.py
@@ -0,0 +1,60 @@
+from resources.common import ConversationOption
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+from java.util import Vector
+import sys
+
+def startConversation(core, actor, npc):
+ convSvc = core.conversationService
+
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/respecseller:s_31'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/respecseller:s_32'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/respecseller:s_33'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleFirstScreen)
+
+ return
+
+def handleFirstScreen(core, actor, npc, selection):
+ convSvc = core.conversationService
+
+ # TODO: check for prices
+
+ if selection == 0: # respec
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/respecseller:s_58'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/respecseller:s_60'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/respecseller:s_64'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleRespecScreen)
+
+ if selection == 1: # expertise reset
+ convSvc.sendConversationMessage(actor, npc, OutOfBand.ProsePackage('@conversation/respecseller:s_35'))
+
+ options = Vector()
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/respecseller:s_71'), 0))
+ options.add(ConversationOption(OutOfBand.ProsePackage('@conversation/respecseller:s_72'), 1))
+ convSvc.sendConversationOptions(actor, npc, options, handleResetScreen)
+
+ return
+
+def handleRespecScreen(core, actor, npc, selection):
+ if selection == 0:
+ core.skillService.sendRespecWindow(actor)
+
+ core.conversationService.handleEndConversation(actor, npc)
+
+ return
+
+def handleResetScreen(core, actor, npc, selection):
+ if selection == 0:
+ core.skillService.resetExpertise(actor)
+
+ core.conversationService.handleEndConversation(actor, npc)
+
+ return
+
+def endConversation(core, actor, npc):
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/respecseller', 's_38')
+ return
diff --git a/scripts/conversation/toggi.py b/scripts/conversation/toggi.py
new file mode 100644
index 00000000..0654f9c3
--- /dev/null
+++ b/scripts/conversation/toggi.py
@@ -0,0 +1,15 @@
+from resources.common import ConversationOption
+from resources.common import OutOfBand
+from resources.common import ProsePackage
+from java.util import Vector
+import sys
+
+def startConversation(core, actor, npc):
+ convSvc = core.conversationService
+
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_toggi', 's_4')
+ return
+
+def endConversation(core, actor, npc):
+ core.conversationService.sendStopConversation(actor, npc, 'conversation/tatooine_eisley_toggi', 's_4')
+ return
\ No newline at end of file
diff --git a/scripts/demo.py b/scripts/demo.py
index 2b7889ee..1b5dbf3d 100644
--- a/scripts/demo.py
+++ b/scripts/demo.py
@@ -2,474 +2,473 @@ import sys
def CreateStartingCharacter(core, object):
- testObject = core.objectService.createObject('object/weapon/ranged/rifle/shared_rifle_t21.iff', object.getPlanet())
- testObject.setCustomName('This is a Jython Rifle')
- testObject.setStringAttribute('crafter', 'Light')
- testObject.setDamageType('@obj_attr_n:armor_eff_energy')
- testObject.setElementalType('@obj_attr_n:elemental_cold')
- testObject.setStringAttribute('cat_wpn_damage.damage', '0-0')
- testObject.setMinDamage(425)
- testObject.setMaxDamage(1150)
- testObject.setElementalDamage(50)
- testObject.setIntAttribute('cat_wpn_damage.weapon_dps', testObject.getDamagePerSecond())
- testObject.setIntAttribute('cat_skill_mod_bonus.@stat_n:precision_modified', 35)
- object.addSkillMod('kinetic' , 10000)
- object.addSkillMod('energy' , 10000)
- object.addSkillMod('heat' , 6000)
- object.addSkillMod('cold' , 6000)
- object.addSkillMod('acid' , 6000)
- object.addSkillMod('electricity' , 6000)
- object.addSkillMod('combat_strikethrough_value' , 50)
- object.addSkillMod('display_only_dodge' , 2000)
- object.addSkillMod('display_only_parry' , 1000)
- object.addSkillMod('display_only_strikethrough' , 500)
- object.addSkillMod('display_only_critical' , 2500)
- object.addSkillMod('display_only_evasion' , 1000)
- object.addSkillMod('display_only_glancing_blow' , 750)
- object.addSkillMod('display_only_block' , 2000)
- object.addSkillMod('combat_block_value' , 0)
-
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(testObject)
+ #testObject = core.objectService.createObject('object/weapon/ranged/rifle/shared_rifle_t21.iff', object.getPlanet())
+ #testObject.setCustomName('This is a Jython Rifle')
+ #testObject.setStringAttribute('crafter', 'Light')
+ #testObject.setDamageType('@obj_attr_n:armor_eff_energy')
+ #testObject.setElementalType('@obj_attr_n:elemental_cold')
+ #testObject.setStringAttribute('cat_wpn_damage.damage', '0-0')
+ #testObject.setMinDamage(425)
+ #testObject.setMaxDamage(1150)
+ #testObject.setElementalDamage(50)
+ #testObject.setIntAttribute('cat_wpn_damage.weapon_dps', testObject.getDamagePerSecond())
+ #testObject.setIntAttribute('cat_skill_mod_bonus.@stat_n:precision_modified', 35)
+ #object.addSkillMod('kinetic' , 0)
+ #object.addSkillMod('energy' , 0)
+ #object.addSkillMod('heat' , 0)
+ #object.addSkillMod('cold' , 0)
+ #object.addSkillMod('acid' , 0)
+ #object.addSkillMod('electricity' , 0)
+ #object.addSkillMod('combat_strikethrough_value' , 50)
+ #object.addSkillMod('display_only_dodge' , 2000)
+ #object.addSkillMod('display_only_parry' , 1000)
+ #object.addSkillMod('display_only_strikethrough' , 500)
+ #object.addSkillMod('display_only_critical' , 2500)
+ #object.addSkillMod('display_only_evasion' , 1000)
+ #object.addSkillMod('display_only_glancing_blow' , 750)
+ #object.addSkillMod('display_only_block' , 2000)
+ #object.addSkillMod('combat_block_value' , 0)
- testClothing = core.objectService.createObject('object/tangible/wearables/cape/shared_cape_rebel_01.iff', object.getPlanet())
- testClothing.setCustomName('Test Cape')
- testCloak = core.objectService.createObject('object/tangible/wearables/robe/shared_robe_jedi_dark_s05.iff', object.getPlanet())
- testCloak.setCustomName('Test Cloak')
-
- inventory.add(testClothing)
- inventory.add(testCloak)
- profession = object.getSlottedObject('ghost').getProfession()
- if profession == 'commando_1a':
- object.addSkillMod('expertise_devastation_bonus' , 20)
- testObject2 = core.objectService.createObject('object/weapon/ranged/heavy/shared_heavy_rocket_launcher.iff', object.getPlanet())
- testObject2.setCustomName('Test Heavy Weapon')
- testObject2.setStringAttribute('crafter', 'Light')
- testObject2.setDamageType('@obj_attr_n:armor_eff_kinetic')
- testObject2.setElementalType('@obj_attr_n:elemental_heat')
- testObject2.setStringAttribute('cat_wpn_damage.damage', '0-0')
- testObject2.setMinDamage(550)
- testObject2.setMaxDamage(1315)
- testObject2.setElementalDamage(216)
- testObject2.setIntAttribute('cat_wpn_damage.weapon_dps', testObject2.getDamagePerSecond())
- inventory.add(testObject2)
-
- addProfessionAbilities(core, object, profession)
+# #inventory = object.getSlottedObject('inventory')
+# #if not inventory:
+# # return
+# #inventory.add(testObject)
- heroism1 = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s10.iff', object.getPlanet())
- heroism1.setStfFilename('static_item_n')
- heroism1.setStfName('item_necklace_set_hero_01_01')
- heroism1.setDetailFilename('static_item_d')
- heroism1.setDetailName('item_necklace_set_hero_01_01')
- heroism1.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_hero_1')
- heroism1.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_hero_2')
- heroism1.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_hero_3')
- heroism1.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
- heroism1.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 30)
- heroism1.setIntAttribute('cat_stat_mod_bonus.food_strength_modified' , 30)
+# #testClothing = core.objectService.createObject('object/tangible/wearables/cape/shared_cape_rebel_01.iff', object.getPlanet())
+# #testClothing.setCustomName('Test Cape')
+# #testCloak = core.objectService.createObject('object/tangible/wearables/robe/shared_robe_jedi_dark_s05.iff', object.getPlanet())
+# #testCloak.setCustomName('Test Cloak')
+
+# #inventory.add(testClothing)
+# #inventory.add(testCloak)
+# #profession = object.getSlottedObject('ghost').getProfession()
+# #if profession == 'commando_1a':
+# # object.addSkillMod('expertise_devastation_bonus' , 20)
+# # testObject2 = core.objectService.createObject('object/weapon/ranged/heavy/shared_heavy_rocket_launcher.iff', object.getPlanet())
+# # testObject2.setCustomName('Test Heavy Weapon')
+# # testObject2.setStringAttribute('crafter', 'Light')
+# # testObject2.setDamageType('@obj_attr_n:armor_eff_kinetic')
+# # testObject2.setElementalType('@obj_attr_n:elemental_heat')
+# # testObject2.setStringAttribute('cat_wpn_damage.damage', '0-0')
+# # testObject2.setMinDamage(550)
+# # testObject2.setMaxDamage(1315)
+# # testObject2.setElementalDamage(216)
+# # testObject2.setIntAttribute('cat_wpn_damage.weapon_dps', testObject2.getDamagePerSecond())
+# # inventory.add(testObject2)
+#
+# addProfessionAbilities(core, object, profession)
+
+# heroism1 = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s10.iff', object.getPlanet())
+ # heroism1.setStfFilename('static_item_n')
+ # heroism1.setStfName('item_necklace_set_hero_01_01')
+ # heroism1.setDetailFilename('static_item_d')
+ # heroism1.setDetailName('item_necklace_set_hero_01_01')
+# heroism1.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_hero_1')
+# heroism1.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_hero_2')
+# heroism1.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_hero_3')
+# heroism1.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
+# heroism1.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 30)
+# heroism1.setIntAttribute('cat_stat_mod_bonus.food_strength_modified' , 30)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(heroism1)
+ # inventory = object.getSlottedObject('inventory')
+ # if not inventory:
+ # return
+ # inventory.add(heroism1)
- heroism2 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff', object.getPlanet())
- heroism2.setStfFilename('static_item_n')
- heroism2.setStfName('item_bracelet_r_set_hero_01_01')
- heroism2.setDetailFilename('static_item_d')
- heroism2.setDetailName('item_bracelet_r_set_hero_01_01')
- heroism2.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_hero_1')
- heroism2.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_hero_2')
- heroism2.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_hero_3')
- heroism2.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
- heroism2.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 30)
- heroism2.setIntAttribute('cat_stat_mod_bonus.food_strength_modified' , 30)
+ # heroism2 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff', object.getPlanet())
+ # heroism2.setStfFilename('static_item_n')
+ # heroism2.setStfName('item_bracelet_r_set_hero_01_01')
+ # heroism2.setDetailFilename('static_item_d')
+ # heroism2.setDetailName('item_bracelet_r_set_hero_01_01')
+ # heroism2.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_hero_1')
+ # heroism2.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_hero_2')
+ # heroism2.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_hero_3')
+ # heroism2.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
+ # heroism2.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 30)
+ # heroism2.setIntAttribute('cat_stat_mod_bonus.food_strength_modified' , 30)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(heroism2)
+# inventory = object.getSlottedObject('inventory')
+# if not inventory:
+# return
+# inventory.add(heroism2)
- heroism3 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s03_l.iff', object.getPlanet())
- heroism3.setStfFilename('static_item_n')
- heroism3.setStfName('item_bracelet_l_set_hero_01_01')
- heroism3.setDetailFilename('static_item_d')
- heroism3.setDetailName('item_bracelet_l_set_hero_01_01')
- heroism3.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_hero_1')
- heroism3.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_hero_2')
- heroism3.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_hero_3')
- heroism3.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
- heroism3.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 30)
- heroism3.setIntAttribute('cat_stat_mod_bonus.food_strength_modified' , 30)
+# heroism3 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s03_l.iff', object.getPlanet())
+# heroism3.setStfFilename('static_item_n')
+# heroism3.setStfName('item_bracelet_l_set_hero_01_01')
+# heroism3.setDetailFilename('static_item_d')
+# heroism3.setDetailName('item_bracelet_l_set_hero_01_01')
+# heroism3.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_hero_1')
+# heroism3.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_hero_2')
+# heroism3.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_hero_3')
+ # heroism3.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
+ # heroism3.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 30)
+ # heroism3.setIntAttribute('cat_stat_mod_bonus.food_strength_modified' , 30)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(heroism3)
+ # inventory = object.getSlottedObject('inventory')
+ # if not inventory:
+ # return
+ # inventory.add(heroism3)
- heroism4 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s04.iff', object.getPlanet())
- heroism4.setStfFilename('static_item_n')
- heroism4.setStfName('item_ring_set_hero_01_01')
- heroism4.setDetailFilename('static_item_d')
- heroism4.setDetailName('item_ring_set_hero_01_01')
- heroism4.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_hero_1')
- heroism4.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_hero_2')
- heroism4.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_hero_3')
- heroism4.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
- heroism4.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 30)
- heroism4.setIntAttribute('cat_stat_mod_bonus.food_strength_modified' , 30)
+ # heroism4 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s04.iff', object.getPlanet())
+ # heroism4.setStfFilename('static_item_n')
+ # heroism4.setStfName('item_ring_set_hero_01_01')
+ # heroism4.setDetailFilename('static_item_d')
+ # heroism4.setDetailName('item_ring_set_hero_01_01')
+ # heroism4.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_hero_1')
+ # heroism4.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_hero_2')
+ # heroism4.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_hero_3')
+ # heroism4.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
+ # heroism4.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 30)
+ # heroism4.setIntAttribute('cat_stat_mod_bonus.food_strength_modified' , 30)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(heroism4)
+# inventory = object.getSlottedObject('inventory')
+# if not inventory:
+# return
+# inventory.add(heroism4)
- heroism5 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s02.iff', object.getPlanet())
- heroism5.setStfFilename('static_item_n')
- heroism5.setStfName('item_ring_a_set_hero')
- heroism5.setDetailFilename('static_item_d')
- heroism5.setDetailName('item_ring_a_set_hero')
- heroism5.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_hero_1')
- heroism5.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_hero_2')
- heroism5.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_hero_3')
- heroism5.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
- heroism5.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 30)
- heroism5.setIntAttribute('cat_stat_mod_bonus.food_strength_modified' , 30)
+ # heroism5 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s02.iff', object.getPlanet())
+ # heroism5.setStfFilename('static_item_n')
+ # heroism5.setStfName('item_ring_a_set_hero')
+ # heroism5.setDetailFilename('static_item_d')
+ # heroism5.setDetailName('item_ring_a_set_hero')
+ # heroism5.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_hero_1')
+ # heroism5.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_hero_2')
+ # heroism5.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_hero_3')
+ # heroism5.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
+ # heroism5.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 30)
+ # heroism5.setIntAttribute('cat_stat_mod_bonus.food_strength_modified' , 30)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(heroism5)
+ # inventory = object.getSlottedObject('inventory')
+ # if not inventory:
+ # return
+ # inventory.add(heroism5)
return
def addProfessionAbilities(core, object, profession):
-
- if profession == 'force_sensitive_1a':
- testObject = core.objectService.createObject('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gcw_s01_gen5.iff', object.getPlanet())
- testObject.setCustomName('Lightsaber')
- testObject.setStringAttribute('crafter', 'Light')
- testObject.setDamageType('@obj_attr_n:armor_eff_energy')
- testObject.setElementalType('@obj_attr_n:elemental_cold')
- testObject.setStringAttribute('cat_wpn_damage.damage', '0-0')
- testObject.setMinDamage(600)
- testObject.setMaxDamage(1190)
- testObject.setElementalDamage(72)
- testObject.setIntAttribute('cat_wpn_damage.weapon_dps', testObject.getDamagePerSecond())
- inventory = object.getSlottedObject('inventory')
- inventory.add(testObject)
+
+# if profession == 'force_sensitive_1a':
+# testObject = core.objectService.createObject('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gcw_s01_gen5.iff', object.getPlanet())
+# testObject.setCustomName('Lightsaber')
+# testObject.setStringAttribute('crafter', 'Light')
+# testObject.setDamageType('@obj_attr_n:armor_eff_energy')
+# testObject.setElementalType('@obj_attr_n:elemental_cold')
+# testObject.setStringAttribute('cat_wpn_damage.damage', '0-0')
+# testObject.setMinDamage(600)
+# testObject.setMaxDamage(1190)
+# testObject.setElementalDamage(72)
+# testObject.setIntAttribute('cat_wpn_damage.weapon_dps', testObject.getDamagePerSecond())
+# inventory = object.getSlottedObject('inventory')
+# inventory.add(testObject)
##Case Sensitive
- object.addAbility('fs_sweep_7')
- object.addAbility('fs_drain_7')
- object.addAbility('forceRun')
- object.addAbility('fs_dm_cc_crit_5')
- object.addAbility('fs_maelstrom_5')
- object.addAbility('fs_ae_dm_cc_6')
- object.addAbility('fs_sh_3')
- object.addAbility('fs_dm_cc_6')
- object.addAbility('fs_dm_7')
- object.addAbility('fs_buff_def_1_1')
- object.addAbility('fs_buff_ca_1')
- object.addAbility('saberBlock')
- elif profession == 'medic_1a':
- object.addAbility('me_bacta_bomb_5')
- object.addAbility('me_bacta_grenade_5')
- object.addAbility('me_bacta_ampule_6')
- object.addAbility('me_ae_heal_6')
- object.addAbility('me_dm_8')
- object.addAbility('me_dm_dot_6')
- object.addAbility('me_drag_1')
- object.addAbility('me_rv_pvp_single')
- object.addAbility('me_rv_area')
- object.addAbility('me_rv_pvp_area')
- object.addAbility('me_reckless_stimulation_6')
- object.addAbility('me_sh_1')
- object.addAbility('me_stasis_1')
- object.addAbility('me_stasis_self_1')
- object.addAbility('me_thyroid_rupture_1')
- object.addAbility('me_traumatize_5')
- object.addAbility('me_induce_insanity_1')
- elif profession == 'commando_1a':
- object.addAbility('co_del_ae_cc_2_2')
- object.addAbility('co_del_ae_dm_3')
- object.addAbility('co_del_ae_cc_1_3')
- object.addAbility('co_hw_dot')
- object.addAbility('co_ae_hw_dot')
- elif profession == 'bounty_hunter_1a':
- object.addAbility('bh_shields_1')
- object.addAbility('bh_dm_8')
- object.addAbility('bh_sh_3')
- object.addAbility('bh_armor_sprint_1')
- object.addAbility('bh_prescience')
- object.addAbility('bh_dm_crit_8')
- object.addAbility('crippleShot')
- object.addAbility('bh_fumble_6')
- object.addAbility('bh_intimidate_6')
- object.addAbility('bh_flawless_strike')
+ # object.addAbility('fs_sweep_7')
+ # object.addAbility('fs_drain_7')
+ # object.addAbility('forceRun')
+ # object.addAbility('fs_dm_cc_crit_5')
+ # object.addAbility('fs_maelstrom_5')
+ # object.addAbility('fs_ae_dm_cc_6')
+ # object.addAbility('fs_sh_3')
+ # object.addAbility('fs_dm_cc_6')
+ # object.addAbility('fs_dm_7')
+ # object.addAbility('fs_buff_def_1_1')
+ # object.addAbility('fs_buff_ca_1')
+ # object.addAbility('saberBlock')
+ #elif profession == 'medic_1a':
+ # object.addAbility('me_bacta_bomb_5')
+ # object.addAbility('me_bacta_grenade_5')
+ # object.addAbility('me_bacta_ampule_6')
+ # object.addAbility('me_ae_heal_6')
+ # object.addAbility('me_dm_8')
+ # object.addAbility('me_dm_dot_6')
+ # object.addAbility('me_drag_1')
+ # object.addAbility('me_rv_pvp_single')
+ # object.addAbility('me_rv_area')
+ # object.addAbility('me_rv_pvp_area')
+ # object.addAbility('me_reckless_stimulation_6')
+ # object.addAbility('me_sh_1')
+ # object.addAbility('me_stasis_1')
+ # object.addAbility('me_stasis_self_1')
+ # object.addAbility('me_thyroid_rupture_1')
+ # object.addAbility('me_traumatize_5')
+ # object.addAbility('me_induce_insanity_1')
+ #elif profession == 'commando_1a':
+ # object.addAbility('co_del_ae_cc_2_2')
+ # object.addAbility('co_del_ae_dm_3')
+ # object.addAbility('co_del_ae_cc_1_3')
+ # object.addAbility('co_hw_dot')
+ # object.addAbility('co_ae_hw_dot')
+ #elif profession == 'bounty_hunter_1a':
+ #object.addAbility('bh_shields_1')
+ #object.addAbility('bh_dm_8')
+ #object.addAbility('bh_sh_3')
+ #object.addAbility('bh_armor_sprint_1')
+ #object.addAbility('bh_prescience')
+ #object.addAbility('bh_dm_crit_8')
+ #object.addAbility('crippleShot')
+ #object.addAbility('bh_fumble_6')
+ #object.addAbility('bh_intimidate_6')
+ #object.addAbility('bh_flawless_strike')
- direfate1 = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s03.iff', object.getPlanet())
- direfate1.setStfFilename('static_item_n')
- direfate1.setStfName('item_necklace_set_bh_utility_b_01_01')
- direfate1.setDetailFilename('static_item_d')
- direfate1.setDetailName('item_necklace_set_bh_utility_b_01_01')
- direfate1.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
- direfate1.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
- direfate1.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
- direfate1.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_root' , 1)
- direfate1.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare' , 1)
- direfate1.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_dm_cc' , 2)
+ # direfate1 = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s03.iff', object.getPlanet())
+ # direfate1.setStfFilename('static_item_n')
+ # direfate1.setStfName('item_necklace_set_bh_utility_b_01_01')
+ # direfate1.setDetailFilename('static_item_d')
+ # direfate1.setDetailName('item_necklace_set_bh_utility_b_01_01')
+ # direfate1.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
+ # direfate1.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
+ # direfate1.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
+ # direfate1.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_root' , 1)
+ # direfate1.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare' , 1)
+ # direfate1.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_dm_cc' , 2)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(direfate1)
+ # inventory = object.getSlottedObject('inventory')
+ # if not inventory:
+ # return
+ # inventory.add(direfate1)
- direfate2 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s04_r.iff', object.getPlanet())
- direfate2.setStfFilename('static_item_n')
- direfate2.setStfName('item_bracelet_r_set_bh_utility_b_01_01')
- direfate2.setDetailFilename('static_item_d')
- direfate2.setDetailName('item_bracelet_r_set_bh_utility_b_01_01')
- direfate2.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
- direfate2.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
- direfate2.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
- direfate2.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_root' , 1)
- direfate2.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare' , 1)
- direfate2.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_dm_cc' , 2)
+ # direfate2 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s04_r.iff', object.getPlanet())
+ # direfate2.setStfFilename('static_item_n')
+ # direfate2.setStfName('item_bracelet_r_set_bh_utility_b_01_01')
+ # direfate2.setDetailFilename('static_item_d')
+ # direfate2.setDetailName('item_bracelet_r_set_bh_utility_b_01_01')
+ # direfate2.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
+ # direfate2.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
+ # direfate2.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_root' , 1)
+ # direfate2.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare' , 1)
+ # direfate2.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_dm_cc' , 2)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(direfate2)
+ # inventory = object.getSlottedObject('inventory')
+ # if not inventory:
+ # return
+ # inventory.add(direfate2)
- direfate3 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s04_l.iff', object.getPlanet())
- direfate3.setStfFilename('static_item_n')
- direfate3.setStfName('item_bracelet_l_set_bh_utility_b_01_01')
- direfate3.setDetailFilename('static_item_d')
- direfate3.setDetailName('item_bracelet_l_set_bh_utility_b_01_01')
- direfate3.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
- direfate3.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
- direfate3.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
- direfate3.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_root' , 1)
- direfate3.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare' , 1)
- direfate3.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_dm_cc' , 2)
+ # direfate3 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s04_l.iff', object.getPlanet())
+ # direfate3.setStfFilename('static_item_n')
+ # direfate3.setStfName('item_bracelet_l_set_bh_utility_b_01_01')
+ # direfate3.setDetailFilename('static_item_d')
+ # direfate3.setDetailName('item_bracelet_l_set_bh_utility_b_01_01')
+ # direfate3.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
+ # direfate3.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
+ # direfate3.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
+ # direfate3.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_root' , 1)
+ # direfate3.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare' , 1)
+ # direfate3.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_dm_cc' , 2)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(direfate3)
+ # inventory = object.getSlottedObject('inventory')
+ # if not inventory:
+ # return
+ # inventory.add(direfate3)
- direfate4 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s01.iff', object.getPlanet())
- direfate4.setStfFilename('static_item_n')
- direfate4.setStfName('item_ring_set_bh_utility_b_01_01')
- direfate4.setDetailFilename('static_item_d')
- direfate4.setDetailName('item_ring_set_bh_utility_b_01_01')
- direfate4.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
- direfate4.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
- direfate4.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
- direfate4.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_root' , 1)
- direfate4.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare' , 1)
- direfate4.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_dm_cc' , 2)
+ # direfate4 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s01.iff', object.getPlanet())
+ # direfate4.setStfFilename('static_item_n')
+ # direfate4.setStfName('item_ring_set_bh_utility_b_01_01')
+ # direfate4.setDetailFilename('static_item_d')
+ # direfate4.setDetailName('item_ring_set_bh_utility_b_01_01')
+ # direfate4.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
+ # direfate4.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
+ # direfate4.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
+ # direfate4.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_root' , 1)
+ # direfate4.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare' , 1)
+ # direfate4.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_dm_cc' , 2)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(direfate4)
+ # inventory = object.getSlottedObject('inventory')
+ # if not inventory:
+ # return
+ # inventory.add(direfate4)
- direfate5 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s03.iff', object.getPlanet())
- direfate5.setStfFilename('static_item_n')
- direfate5.setStfName('item_ring_a_set_bh_utility_b')
- direfate5.setDetailFilename('static_item_d')
- direfate5.setDetailName('item_ring_a_set_bh_utility_b')
- direfate5.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
- direfate5.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
- direfate5.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
- direfate5.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_root' , 1)
- direfate5.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare' , 1)
- direfate5.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_dm_cc' , 2)
+ # direfate5 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s03.iff', object.getPlanet())
+ # direfate5.setStfFilename('static_item_n')
+ # direfate5.setStfName('item_ring_a_set_bh_utility_b')
+ # direfate5.setDetailFilename('static_item_d')
+ # direfate5.setDetailName('item_ring_a_set_bh_utility_b')
+ # direfate5.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
+ # direfate5.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
+ # direfate5.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
+ # direfate5.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_root' , 1)
+ # direfate5.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare' , 1)
+ # direfate5.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_dm_cc' , 2)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(direfate5)
+ # inventory = object.getSlottedObject('inventory')
+ # if not inventory:
+ # return
+ # inventory.add(direfate5)
- flawless1 = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s02.iff', object.getPlanet())
- flawless1.setStfFilename('static_item_n')
- flawless1.setStfName('item_necklace_set_bh_utility_a_01_01')
- flawless1.setDetailFilename('static_item_d')
- flawless1.setDetailName('item_necklace_set_bh_utility_a_01_01')
- flawless1.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_a_1')
- flawless1.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_a_2')
- flawless1.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_a_3')
- flawless1.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
- flawless1.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 50)
+ # flawless1 = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s02.iff', object.getPlanet())
+ # flawless1.setStfFilename('static_item_n')
+ # flawless1.setStfName('item_necklace_set_bh_utility_a_01_01')
+ # flawless1.setDetailFilename('static_item_d')
+ # flawless1.setDetailName('item_necklace_set_bh_utility_a_01_01')
+ # flawless1.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_a_1')
+ # flawless1.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_a_2')
+ # flawless1.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_a_3')
+ # flawless1.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
+ # flawless1.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 50)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(flawless1)
+ # inventory = object.getSlottedObject('inventory')
+ # if not inventory:
+ # return
+ # inventory.add(flawless1)
- flawless2 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff', object.getPlanet())
- flawless2.setStfFilename('static_item_n')
- flawless2.setStfName('item_bracelet_r_set_bh_utility_a_01_01')
- flawless2.setDetailFilename('static_item_d')
- flawless2.setDetailName('item_bracelet_r_set_bh_utility_a_01_01')
- flawless2.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
- flawless2.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
- flawless2.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
- flawless2.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
- flawless2.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 50)
+ # flawless2 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff', object.getPlanet())
+ # flawless2.setStfFilename('static_item_n')
+ # flawless2.setStfName('item_bracelet_r_set_bh_utility_a_01_01')
+ # flawless2.setDetailFilename('static_item_d')
+ # flawless2.setDetailName('item_bracelet_r_set_bh_utility_a_01_01')
+ # flawless2.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
+ # flawless2.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
+ # flawless2.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
+ # flawless2.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
+ # flawless2.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 50)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(flawless2)
+ # inventory = object.getSlottedObject('inventory')
+ # if not inventory:
+ # return
+ # inventory.add(flawless2)
- flawless3 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s03_l.iff', object.getPlanet())
- flawless3.setStfFilename('static_item_n')
- flawless3.setStfName('item_bracelet_l_set_bh_utility_a_01_01')
- flawless3.setDetailFilename('static_item_d')
- flawless3.setDetailName('item_bracelet_l_set_bh_utility_a_01_01')
- flawless3.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
- flawless3.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
- flawless3.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
- flawless3.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
- flawless3.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 50)
+ # flawless3 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s03_l.iff', object.getPlanet())
+ # flawless3.setStfFilename('static_item_n')
+ # flawless3.setStfName('item_bracelet_l_set_bh_utility_a_01_01')
+ # flawless3.setDetailFilename('static_item_d')
+ # flawless3.setDetailName('item_bracelet_l_set_bh_utility_a_01_01')
+ # flawless3.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
+ # flawless3.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
+ # flawless3.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
+ # flawless3.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
+ # flawless3.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 50)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(flawless3)
+ # inventory = object.getSlottedObject('inventory')
+ # if not inventory:
+ # return
+ # inventory.add(flawless3)
- flawless4 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s02.iff', object.getPlanet())
- flawless4.setStfFilename('static_item_n')
- flawless4.setStfName('item_ring_set_bh_utility_a_01_01')
- flawless4.setDetailFilename('static_item_d')
- flawless4.setDetailName('item_ring_set_bh_utility_a_01_01')
- flawless4.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
- flawless4.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
- flawless4.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
- flawless4.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
- flawless4.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 50)
+ # flawless4 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s02.iff', object.getPlanet())
+ # flawless4.setStfFilename('static_item_n')
+ # flawless4.setStfName('item_ring_set_bh_utility_a_01_01')
+ # flawless4.setDetailFilename('static_item_d')
+ # flawless4.setDetailName('item_ring_set_bh_utility_a_01_01')
+ # flawless4.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
+ # flawless4.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
+ # flawless4.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
+ # flawless4.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
+ # flawless4.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 50)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(flawless4)
+ # inventory = object.getSlottedObject('inventory')
+ # if not inventory:
+ # return
+ # inventory.add(flawless4)
- flawless5 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s04.iff', object.getPlanet())
- flawless5.setStfFilename('static_item_n')
- flawless5.setStfName('item_ring_a_set_bh_utility_a')
- flawless5.setDetailFilename('static_item_d')
- flawless5.setDetailName('item_ring_a_set_bh_utility_a')
- flawless5.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
- flawless5.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
- flawless5.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
- flawless5.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
- flawless5.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 50)
+ # flawless5 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s04.iff', object.getPlanet())
+ # flawless5.setStfFilename('static_item_n')
+ # flawless5.setStfName('item_ring_a_set_bh_utility_a')
+ # flawless5.setDetailFilename('static_item_d')
+ # flawless5.setDetailName('item_ring_a_set_bh_utility_a')
+ # flawless5.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_utility_b_1')
+ # flawless5.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_2')
+ # flawless5.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
+ # flawless5.setIntAttribute('cat_stat_mod_bonus.food_luck_modified' , 30)
+ # flawless5.setIntAttribute('cat_stat_mod_bonus.food_precision_modified' , 50)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(flawless5)
+ # inventory = object.getSlottedObject('inventory')
+ # if not inventory:
+ # return
+ # inventory.add(flawless5)
- enforcer1 = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s01.iff', object.getPlanet())
- enforcer1.setStfFilename('static_item_n')
- enforcer1.setStfName('item_necklace_set_bh_dps_01_01')
- enforcer1.setDetailFilename('static_item_d')
- enforcer1.setDetailName('item_necklace_set_bh_dps_01_01')
- enforcer1.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_dps_1')
- enforcer1.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_2')
- enforcer1.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3')
- enforcer1.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm' , 1)
- enforcer1.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm_crit' , 1)
- enforcer1.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_bh_return_fire' , 1)
- enforcer1.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm' , 1)
+ # enforcer1 = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s01.iff', object.getPlanet())
+ # enforcer1.setStfFilename('static_item_n')
+ # enforcer1.setStfName('item_necklace_set_bh_dps_01_01')
+ # enforcer1.setDetailFilename('static_item_d')
+ # enforcer1.setDetailName('item_necklace_set_bh_dps_01_01')
+ # enforcer1.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_dps_1')
+ # enforcer1.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_2')
+ # enforcer1.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3')
+ # enforcer1.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm' , 1)
+ # enforcer1.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm_crit' , 1)
+ # enforcer1.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_bh_return_fire' , 1)
+ # enforcer1.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm' , 1)
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(enforcer1)
+ # inventory = object.getSlottedObject('inventory')
+ # if not inventory:
+ # return
+ # inventory.add(enforcer1)
- enforcer2 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s02_r.iff', object.getPlanet())
- enforcer2.setStfFilename('static_item_n')
- enforcer2.setStfName('item_bracelet_r_set_bh_dps_01_01')
- enforcer2.setDetailFilename('static_item_d')
- enforcer2.setDetailName('item_bracelet_r_set_dps_01_01')
- enforcer2.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_dps_1')
- enforcer2.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_2')
- enforcer2.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3')
- enforcer2.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm' , 1)
- enforcer2.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm_crit' , 1)
- enforcer2.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_bh_return_fire' , 1)
- enforcer2.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm' , 1)
-
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(enforcer2)
-
- enforcer3 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s02_l.iff', object.getPlanet())
- enforcer3.setStfFilename('static_item_n')
- enforcer3.setStfName('item_bracelet_l_set_bh_dps_01_01')
- enforcer3.setDetailFilename('static_item_d')
- enforcer3.setDetailName('item_bracelet_l_set_bh_dps_01_01')
- enforcer3.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_dps_1')
- enforcer3.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_2')
- enforcer3.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3')
- enforcer3.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm' , 1)
- enforcer3.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm_crit' , 1)
- enforcer3.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_bh_return_fire' , 1)
- enforcer3.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm' , 1)
-
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(enforcer3)
-
- enforcer4 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s01.iff', object.getPlanet())
- enforcer4.setStfFilename('static_item_n')
- enforcer4.setStfName('item_ring_set_bh_dps_01_01')
- enforcer4.setDetailFilename('static_item_d')
- enforcer4.setDetailName('item_ring_set_bh_dps_01_01')
- enforcer4.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_dps_1')
- enforcer4.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_2')
- enforcer4.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3')
- enforcer4.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm' , 1)
- enforcer4.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm_crit' , 1)
- enforcer4.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_bh_return_fire' , 1)
- enforcer4.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm' , 1)
-
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(enforcer4)
-
- enforcer5 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s03.iff', object.getPlanet())
- enforcer5.setStfFilename('static_item_n')
- enforcer5.setStfName('item_ring_a_set_bh_dps')
- enforcer5.setDetailFilename('static_item_d')
- enforcer5.setDetailName('item_ring_a_set_bh_dps')
- enforcer5.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_dps_1')
- enforcer5.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_2')
- enforcer5.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3')
- enforcer5.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm' , 1)
- enforcer5.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm_crit' , 1)
- enforcer5.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_bh_return_fire' , 1)
- enforcer5.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm' , 1)
-
- inventory = object.getSlottedObject('inventory')
- if not inventory:
- return
- inventory.add(enforcer5)
- return
- return
+ # enforcer2 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s02_r.iff', object.getPlanet())
+ # enforcer2.setStfFilename('static_item_n')
+ # enforcer2.setStfName('item_bracelet_r_set_bh_dps_01_01')
+ # enforcer2.setDetailFilename('static_item_d')
+ # enforcer2.setDetailName('item_bracelet_r_set_dps_01_01')
+ # enforcer2.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_dps_1')
+ # enforcer2.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_2')
+ # enforcer2.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3')
+ # enforcer2.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm' , 1)
+ # enforcer2.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm_crit' , 1)
+ # enforcer2.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_bh_return_fire' , 1)
+ # enforcer2.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm' , 1)
+
+ # inventory = object.getSlottedObject('inventory')
+ # if not inventory:
+ # return
+ # inventory.add(enforcer2)
+
+ # enforcer3 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s02_l.iff', object.getPlanet())
+ # enforcer3.setStfFilename('static_item_n')
+ # enforcer3.setStfName('item_bracelet_l_set_bh_dps_01_01')
+ #enforcer3.setDetailFilename('static_item_d')
+ # enforcer3.setDetailName('item_bracelet_l_set_bh_dps_01_01')
+ # enforcer3.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_dps_1')
+ # enforcer3.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_2')
+ # enforcer3.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3')
+ #enforcer3.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm' , 1)
+ # enforcer3.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm_crit' , 1)
+ # enforcer3.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_bh_return_fire' , 1)
+ # enforcer3.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm' , 1)
+
+ #inventory = object.getSlottedObject('inventory')
+ #if not inventory:
+ # return
+ #inventory.add(enforcer3)
+
+ #enforcer4 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s01.iff', object.getPlanet())
+ #enforcer4.setStfFilename('static_item_n')
+ #enforcer4.setStfName('item_ring_set_bh_dps_01_01')
+ #enforcer4.setDetailFilename('static_item_d')
+ #enforcer4.setDetailName('item_ring_set_bh_dps_01_01')
+ #enforcer4.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_dps_1')
+ #enforcer4.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_2')
+ #enforcer4.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3')
+ #enforcer4.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm' , 1)
+ #enforcer4.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm_crit' , 1)
+ #enforcer4.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_bh_return_fire' , 1)
+ #enforcer4.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm' , 1)
+
+ #inventory = object.getSlottedObject('inventory')
+ #if not inventory:
+ # return
+ #inventory.add(enforcer4)
+
+ #enforcer5 = core.objectService.createObject('object/tangible/wearables/ring/shared_ring_s03.iff', object.getPlanet())
+ #enforcer5.setStfFilename('static_item_n')
+ #enforcer5.setStfName('item_ring_a_set_bh_dps')
+ #enforcer5.setDetailFilename('static_item_d')
+ #enforcer5.setDetailName('item_ring_a_set_bh_dps')
+ #enforcer5.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_bh_dps_1')
+ #enforcer5.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_2')
+ #enforcer5.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3')
+ #enforcer5.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm' , 1)
+ #enforcer5.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm_crit' , 1)
+ #enforcer5.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_bh_return_fire' , 1)
+ #enforcer5.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm' , 1)
+
+ #inventory = object.getSlottedObject('inventory')
+ #if not inventory:
+ # return
+ #inventory.add(enforcer5)
+ #return
+ #return
return
diff --git a/scripts/equipment/bonus_sets/set_bonus_bh_dps.py b/scripts/equipment/bonus_sets/set_bonus_bh_dps.py
new file mode 100644
index 00000000..4a18c18e
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_bh_dps.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_bh_dps")
+
+ bonusSet.addRequiredItem("item_band_set_bh_dps_01_01")
+ bonusSet.addRequiredItem("item_ring_set_bh_dps_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_bh_dps_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_bh_dps_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_bh_dps_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_bh_dps_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_bh_dps_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_bh_dps_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_bh_dps_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_bh_dps_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_bh_dps_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_bh_dps_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_bh_dps_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_bh_dps_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_bh_utility_a.py b/scripts/equipment/bonus_sets/set_bonus_bh_utility_a.py
new file mode 100644
index 00000000..6dd6bfb8
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_bh_utility_a.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_bh_utility_a")
+
+ bonusSet.addRequiredItem("item_band_set_bh_utility_a_01_01")
+ bonusSet.addRequiredItem("item_ring_set_bh_utility_a_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_bh_utility_a_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_bh_utility_a_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_bh_utility_a_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_bh_utility_a_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_bh_utility_a_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_bh_utility_a_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_bh_utility_a_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_bh_utility_a_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_bh_utility_a_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_bh_utility_a_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_bh_utility_a_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_bh_utility_a_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_bh_utility_b.py b/scripts/equipment/bonus_sets/set_bonus_bh_utility_b.py
new file mode 100644
index 00000000..ed612f4e
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_bh_utility_b.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_bh_utility_b")
+
+ bonusSet.addRequiredItem("item_band_set_bh_utility_b_01_01")
+ bonusSet.addRequiredItem("item_ring_set_bh_utility_b_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_bh_utility_b_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_bh_utility_b_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_bh_utility_b_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_bh_utility_b_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_bh_utility_b_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_bh_utility_b_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_bh_utility_b_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_bh_utility_b_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_bh_utility_b_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_bh_utility_b_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_bh_utility_b_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_bh_utility_b_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_co_dps.py b/scripts/equipment/bonus_sets/set_bonus_co_dps.py
new file mode 100644
index 00000000..fa3533b2
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_co_dps.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_co_dps")
+
+ bonusSet.addRequiredItem("item_band_set_co_dps_01_01")
+ bonusSet.addRequiredItem("item_ring_set_co_dps_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_co_dps_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_co_dps_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_co_dps_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_co_dps_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_co_dps_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_co_dps_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_co_dps_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_co_dps_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_co_dps_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_co_dps_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_co_dps_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_co_dps_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_co_utility_a.py b/scripts/equipment/bonus_sets/set_bonus_co_utility_a.py
new file mode 100644
index 00000000..f70cd5c3
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_co_utility_a.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_co_utility_a")
+
+ bonusSet.addRequiredItem("item_band_set_co_utility_a_01_01")
+ bonusSet.addRequiredItem("item_ring_set_co_utility_a_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_co_utility_a_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_co_utility_a_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_co_utility_a_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_co_utility_a_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_co_utility_a_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_co_utility_a_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_co_utility_a_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_co_utility_a_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_co_utility_a_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_co_utility_a_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_co_utility_a_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_co_utility_a_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_co_utility_b.py b/scripts/equipment/bonus_sets/set_bonus_co_utility_b.py
new file mode 100644
index 00000000..cfd278af
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_co_utility_b.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_co_utility_b")
+
+ bonusSet.addRequiredItem("item_band_set_co_utility_b_01_01")
+ bonusSet.addRequiredItem("item_ring_set_co_utility_b_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_co_utility_b_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_co_utility_b_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_co_utility_b_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_co_utility_b_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_co_utility_b_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_co_utility_b_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_co_utility_b_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_co_utility_b_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_co_utility_b_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_co_utility_b_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_co_utility_b_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_co_utility_b_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_ent.py b/scripts/equipment/bonus_sets/set_bonus_ent.py
new file mode 100644
index 00000000..b0f90f98
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_ent.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_ent")
+
+ bonusSet.addRequiredItem("item_band_set_ent_01_01")
+ bonusSet.addRequiredItem("item_ring_set_ent_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_ent_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_ent_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_ent_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_ent_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_ent_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_ent_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_ent_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_ent_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_ent_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_ent_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_ent_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_ent_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_hero.py b/scripts/equipment/bonus_sets/set_bonus_hero.py
new file mode 100644
index 00000000..0b1b27c6
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_hero.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_hero")
+
+ bonusSet.addRequiredItem("item_band_set_hero_01_01")
+ bonusSet.addRequiredItem("item_ring_set_hero_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_hero_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_hero_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_hero_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_hero_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_hero_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_hero_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_hero_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_hero_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_hero_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_hero_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_hero_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_hero_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_imperial_snow_armor.py b/scripts/equipment/bonus_sets/set_bonus_imperial_snow_armor.py
new file mode 100644
index 00000000..fc245ba4
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_imperial_snow_armor.py
@@ -0,0 +1,45 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_imperial_snow_armor")
+
+ bonusSet.addRequiredItem("backpack_snowtrooper")
+ bonusSet.addRequiredItem("armor_snowtrooper_belt")
+ bonusSet.addRequiredItem("armor_snowtrooper_bicep_l")
+ bonusSet.addRequiredItem("armor_snowtrooper_bicep_r")
+ bonusSet.addRequiredItem("armor_snowtrooper_boots")
+ bonusSet.addRequiredItem("armor_snowtrooper_bracer_l")
+ bonusSet.addRequiredItem("armor_snowtrooper_bracer_r")
+ bonusSet.addRequiredItem("armor_snowtrooper_chest_plate")
+ bonusSet.addRequiredItem("armor_snowtrooper_gloves")
+ bonusSet.addRequiredItem("armor_snowtrooper_helmet")
+ bonusSet.addRequiredItem("armor_snowtrooper_leggings")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_imperial_snow_armor_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_imperial_snow_armor_3_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_imperial_snow_armor_5", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_imperial_snow_armor_5_sys', 0)
+ elif wornItems == 7:
+ core.buffService.addBuffToCreature(creature, "set_bonus_imperial_snow_armor_7", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_imperial_snow_armor_7_sys', 0)
+ elif wornItems == 9:
+ core.buffService.addBuffToCreature(creature, "set_bonus_imperial_snow_armor_9", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_imperial_snow_armor_9_sys', 0)
+ elif wornItems == 11:
+ core.buffService.addBuffToCreature(creature, "set_bonus_imperial_snow_armor_11", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_imperial_snow_armor_11_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_imperial_snow_armor_3")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_imperial_snow_armor_5")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_imperial_snow_armor_7")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_imperial_snow_armor_9")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_imperial_snow_armor_11")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_jedi_dps.py b/scripts/equipment/bonus_sets/set_bonus_jedi_dps.py
new file mode 100644
index 00000000..6b127317
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_jedi_dps.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_jedi_dps")
+
+ bonusSet.addRequiredItem("item_band_set_jedi_dps_01_01")
+ bonusSet.addRequiredItem("item_ring_set_jedi_dps_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_jedi_dps_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_jedi_dps_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_jedi_dps_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_jedi_dps_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_jedi_dps_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_jedi_dps_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_jedi_dps_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_jedi_dps_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_jedi_dps_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_dps_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_dps_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_dps_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_jedi_robe.py b/scripts/equipment/bonus_sets/set_bonus_jedi_robe.py
new file mode 100644
index 00000000..734e9c89
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_jedi_robe.py
@@ -0,0 +1,40 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_jedi_robe")
+
+ # Waistpack
+ bonusSet.addRequiredItem("object/tangible/wearables/backpack/shared_fannypack_s01.iff")
+
+ # Jedi Robes - Light
+ bonusSet.addRequiredItem("object/tangible/wearables/robe/shared_robe_jedi_light_s01.iff")
+ bonusSet.addRequiredItem("object/tangible/wearables/robe/shared_robe_jedi_light_s02.iff")
+ bonusSet.addRequiredItem("object/tangible/wearables/robe/shared_robe_jedi_light_s03.iff")
+ bonusSet.addRequiredItem("object/tangible/wearables/robe/shared_robe_jedi_light_s04.iff")
+ bonusSet.addRequiredItem("object/tangible/wearables/robe/shared_robe_jedi_light_s05.iff")
+
+ # Jedi Robes - Dark
+ bonusSet.addRequiredItem("object/tangible/wearables/robe/shared_robe_jedi_dark_s01.iff")
+ bonusSet.addRequiredItem("object/tangible/wearables/robe/shared_robe_jedi_dark_s02.iff")
+ bonusSet.addRequiredItem("object/tangible/wearables/robe/shared_robe_jedi_dark_s03.iff")
+ bonusSet.addRequiredItem("object/tangible/wearables/robe/shared_robe_jedi_dark_s04.iff")
+ bonusSet.addRequiredItem("object/tangible/wearables/robe/shared_robe_jedi_dark_s05.iff")
+
+ # Jedi Cloaks
+ bonusSet.addRequiredItem("object/tangible/wearables/robe/shared_robe_s32.iff")
+ bonusSet.addRequiredItem("object/tangible/wearables/robe/shared_robe_s32_h1.iff")
+ bonusSet.addRequiredItem("object/tangible/wearables/robe/shared_robe_s33.iff")
+ bonusSet.addRequiredItem("object/tangible/wearables/robe/shared_robe_s33_h1.iff")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 2:
+ core.buffService.addBuffToCreature(creature, "set_bonus_jedi_robe_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_jedi_robe_1_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_robe_1")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_jedi_utility_a.py b/scripts/equipment/bonus_sets/set_bonus_jedi_utility_a.py
new file mode 100644
index 00000000..ec88e7bb
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_jedi_utility_a.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_jedi_utility_a")
+
+ bonusSet.addRequiredItem("item_band_set_jedi_utility_a_01_01")
+ bonusSet.addRequiredItem("item_ring_set_jedi_utility_a_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_jedi_utility_a_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_jedi_utility_a_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_jedi_utility_a_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_jedi_utility_a_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_jedi_utility_a_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_jedi_utility_a_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_jedi_utility_a_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_jedi_utility_a_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_jedi_utility_a_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_utility_a_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_utility_a_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_utility_a_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_jedi_utility_b.py b/scripts/equipment/bonus_sets/set_bonus_jedi_utility_b.py
new file mode 100644
index 00000000..c05cdde0
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_jedi_utility_b.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_jedi_utility_b")
+
+ bonusSet.addRequiredItem("item_band_set_jedi_utility_b_01_01")
+ bonusSet.addRequiredItem("item_ring_set_jedi_utility_b_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_jedi_utility_b_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_jedi_utility_b_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_jedi_utility_b_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_jedi_utility_b_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_jedi_utility_b_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_jedi_utility_b_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_jedi_utility_b_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_jedi_utility_b_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_jedi_utility_b_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_utility_b_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_utility_b_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_utility_b_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_medic_dps.py b/scripts/equipment/bonus_sets/set_bonus_medic_dps.py
new file mode 100644
index 00000000..8d6c1346
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_medic_dps.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_medic_dps")
+
+ bonusSet.addRequiredItem("item_band_set_medic_dps_01_01")
+ bonusSet.addRequiredItem("item_ring_set_medic_dps_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_medic_dps_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_medic_dps_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_medic_dps_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_medic_dps_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_medic_dps_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_medic_dps_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_medic_dps_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_medic_dps_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_medic_dps_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_medic_dps_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_medic_dps_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_medic_dps_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_medic_utility_a.py b/scripts/equipment/bonus_sets/set_bonus_medic_utility_a.py
new file mode 100644
index 00000000..6853e429
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_medic_utility_a.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_medic_utility_a")
+
+ bonusSet.addRequiredItem("item_band_set_medic_utility_a_01_01")
+ bonusSet.addRequiredItem("item_ring_set_medic_utility_a_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_medic_utility_a_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_medic_utility_a_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_medic_utility_a_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_medic_utility_a_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_medic_utility_a_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_medic_utility_a_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_medic_utility_a_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_medic_utility_a_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_medic_utility_a_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_medic_utility_a_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_medic_utility_a_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_medic_utility_a_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_medic_utility_b.py b/scripts/equipment/bonus_sets/set_bonus_medic_utility_b.py
new file mode 100644
index 00000000..a46fe246
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_medic_utility_b.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_medic_utility_b")
+
+ bonusSet.addRequiredItem("item_band_set_medic_utility_b_01_01")
+ bonusSet.addRequiredItem("item_ring_set_medic_utility_b_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_medic_utility_b_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_medic_utility_b_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_medic_utility_b_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_medic_utility_b_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_medic_utility_b_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_medic_utility_b_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_medic_utility_b_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_medic_utility_b_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_medic_utility_b_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_medic_utility_b_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_medic_utility_b_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_medic_utility_b_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_officer_dps.py b/scripts/equipment/bonus_sets/set_bonus_officer_dps.py
new file mode 100644
index 00000000..d990eae6
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_officer_dps.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_officer_dps")
+
+ bonusSet.addRequiredItem("item_band_set_officer_dps_01_01")
+ bonusSet.addRequiredItem("item_ring_set_officer_dps_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_officer_dps_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_officer_dps_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_officer_dps_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_officer_dps_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_officer_dps_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_officer_dps_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_officer_dps_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_officer_dps_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_officer_dps_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_officer_dps_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_officer_dps_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_officer_dps_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_officer_utility_a.py b/scripts/equipment/bonus_sets/set_bonus_officer_utility_a.py
new file mode 100644
index 00000000..16558a5c
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_officer_utility_a.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_officer_utility_a")
+
+ bonusSet.addRequiredItem("item_band_set_officer_utility_a_01_01")
+ bonusSet.addRequiredItem("item_ring_set_officer_utility_a_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_officer_utility_a_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_officer_utility_a_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_officer_utility_a_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_officer_utility_a_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_officer_utility_a_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_officer_utility_a_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_officer_utility_a_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_officer_utility_a_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_officer_utility_a_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_officer_utility_a_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_officer_utility_a_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_officer_utility_a_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_officer_utility_b.py b/scripts/equipment/bonus_sets/set_bonus_officer_utility_b.py
new file mode 100644
index 00000000..f5308740
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_officer_utility_b.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_officer_utility_b")
+
+ bonusSet.addRequiredItem("item_band_set_officer_utility_b_01_01")
+ bonusSet.addRequiredItem("item_ring_set_officer_utility_b_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_officer_utility_b_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_officer_utility_b_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_officer_utility_b_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_officer_utility_b_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_officer_utility_b_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_officer_utility_b_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_officer_utility_b_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_officer_utility_b_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_officer_utility_b_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_officer_utility_b_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_officer_utility_b_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_officer_utility_b_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_rebel_snow_armor.py b/scripts/equipment/bonus_sets/set_bonus_rebel_snow_armor.py
new file mode 100644
index 00000000..bea743e8
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_rebel_snow_armor.py
@@ -0,0 +1,45 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_rebel_snow_armor")
+
+ bonusSet.addRequiredItem("armor_rebel_snow_backpack")
+ bonusSet.addRequiredItem("armor_rebel_snow_belt")
+ bonusSet.addRequiredItem("armor_rebel_snow_boots")
+ bonusSet.addRequiredItem("armor_rebel_snow_chest_plate")
+ bonusSet.addRequiredItem("armor_rebel_snow_gloves")
+ bonusSet.addRequiredItem("armor_rebel_snow_helmet")
+ bonusSet.addRequiredItem("armor_rebel_snow_bicep_l")
+ bonusSet.addRequiredItem("armor_rebel_snow_bicep_r")
+ bonusSet.addRequiredItem("armor_rebel_snow_bracer_l")
+ bonusSet.addRequiredItem("armor_rebel_snow_bracer_r")
+ bonusSet.addRequiredItem("armor_rebel_snow_leggings")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_rebel_snow_armor_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_rebel_snow_armor_3_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_rebel_snow_armor_5", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_imperial_snow_armor_5_sys', 0)
+ elif wornItems == 7:
+ core.buffService.addBuffToCreature(creature, "set_bonus_rebel_snow_armor_7", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_rebel_snow_armor_7_sys', 0)
+ elif wornItems == 9:
+ core.buffService.addBuffToCreature(creature, "set_bonus_rebel_snow_armor_9", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_rebel_snow_armor_9_sys', 0)
+ elif wornItems == 11:
+ core.buffService.addBuffToCreature(creature, "set_bonus_rebel_snow_armor_11", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_rebel_snow_armor_11_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_rebel_snow_armor_3")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_rebel_snow_armor_5")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_rebel_snow_armor_7")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_rebel_snow_armor_9")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_rebel_snow_armor_11")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_smuggler_dps.py b/scripts/equipment/bonus_sets/set_bonus_smuggler_dps.py
new file mode 100644
index 00000000..d29d0981
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_smuggler_dps.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_smuggler_dps")
+
+ bonusSet.addRequiredItem("item_band_set_smuggler_dps_01_01")
+ bonusSet.addRequiredItem("item_ring_set_smuggler_dps_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_smuggler_dps_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_smuggler_dps_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_smuggler_dps_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_smuggler_dps_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_smuggler_dps_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_smuggler_dps_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_smuggler_dps_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_smuggler_dps_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_smuggler_dps_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_smuggler_dps_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_smuggler_dps_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_smuggler_dps_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_smuggler_utility_a.py b/scripts/equipment/bonus_sets/set_bonus_smuggler_utility_a.py
new file mode 100644
index 00000000..94bec671
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_smuggler_utility_a.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_smuggler_utility_a")
+
+ bonusSet.addRequiredItem("item_band_set_smuggler_utility_a_01_01")
+ bonusSet.addRequiredItem("item_ring_set_smuggler_utility_a_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_smuggler_utility_a_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_smuggler_utility_a_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_smuggler_utility_a_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_smuggler_utility_a_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_smuggler_utility_a_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_smuggler_utility_a_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_smuggler_utility_a_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_smuggler_utility_a_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_smuggler_utility_a_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_smuggler_utility_a_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_smuggler_utility_a_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_smuggler_utility_a_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_smuggler_utility_b.py b/scripts/equipment/bonus_sets/set_bonus_smuggler_utility_b.py
new file mode 100644
index 00000000..58a33c69
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_smuggler_utility_b.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_smuggler_utility_b")
+
+ bonusSet.addRequiredItem("item_band_set_smuggler_utility_b_01_01")
+ bonusSet.addRequiredItem("item_ring_set_smuggler_utility_b_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_smuggler_utility_b_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_smuggler_utility_b_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_smuggler_utility_b_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_smuggler_utility_b_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_smuggler_utility_b_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_smuggler_utility_b_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_smuggler_utility_b_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_smuggler_utility_b_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_smuggler_utility_b_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_smuggler_utility_b_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_smuggler_utility_b_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_smuggler_utility_b_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_spy_dps.py b/scripts/equipment/bonus_sets/set_bonus_spy_dps.py
new file mode 100644
index 00000000..3da099f0
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_spy_dps.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_spy_dps")
+
+ bonusSet.addRequiredItem("item_band_set_spy_dps_01_01")
+ bonusSet.addRequiredItem("item_ring_set_spy_dps_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_spy_dps_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_spy_dps_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_spy_dps_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_spy_dps_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_spy_dps_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_spy_dps_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_spy_dps_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_spy_dps_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_spy_dps_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_spy_dps_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_spy_dps_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_spy_dps_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_spy_utility_a.py b/scripts/equipment/bonus_sets/set_bonus_spy_utility_a.py
new file mode 100644
index 00000000..629ce660
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_spy_utility_a.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_spy_utility_a")
+
+ bonusSet.addRequiredItem("item_band_set_spy_utility_a_01_01")
+ bonusSet.addRequiredItem("item_ring_set_spy_utility_a_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_spy_utility_a_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_spy_utility_a_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_spy_utility_a_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_spy_utility_a_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_spy_utility_a_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_spy_utility_a_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_spy_utility_a_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_spy_utility_a_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_spy_utility_a_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_spy_utility_a_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_spy_utility_a_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_spy_utility_a_3")
\ No newline at end of file
diff --git a/scripts/equipment/bonus_sets/set_bonus_spy_utility_b.py b/scripts/equipment/bonus_sets/set_bonus_spy_utility_b.py
new file mode 100644
index 00000000..b60b1c8f
--- /dev/null
+++ b/scripts/equipment/bonus_sets/set_bonus_spy_utility_b.py
@@ -0,0 +1,31 @@
+import sys
+from services.equipment import BonusSetTemplate
+from java.util import Vector
+
+def addBonusSet(core):
+ bonusSet = BonusSetTemplate("set_bonus_spy_utility_b")
+
+ bonusSet.addRequiredItem("item_band_set_spy_utility_b_01_01")
+ bonusSet.addRequiredItem("item_ring_set_spy_utility_b_01_01")
+ bonusSet.addRequiredItem("item_necklace_set_spy_utility_b_01_01")
+ bonusSet.addRequiredItem("item_bracelet_r_set_spy_utility_b_01_01")
+ bonusSet.addRequiredItem("item_bracelet_l_set_spy_utility_b_01_01")
+
+ core.equipmentService.addBonusSetTemplate(bonusSet)
+
+def handleChange(core, creature, set):
+ wornItems = set.getWornTemplateCount(creature)
+
+ if wornItems == 3:
+ core.buffService.addBuffToCreature(creature, "set_bonus_spy_utility_b_1", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_spy_utility_b_1_sys', 0)
+ elif wornItems == 4:
+ core.buffService.addBuffToCreature(creature, "set_bonus_spy_utility_b_2", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_spy_utility_b_2_sys', 0)
+ elif wornItems == 5:
+ core.buffService.addBuffToCreature(creature, "set_bonus_spy_utility_b_3", creature)
+ creature.sendSystemMessage('@set_bonus:set_bonus_spy_utility_b_3_sys', 0)
+ else:
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_spy_utility_b_1")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_spy_utility_b_2")
+ core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_spy_utility_b_3")
\ No newline at end of file
diff --git a/scripts/equipment/force_protection.py b/scripts/equipment/force_protection.py
new file mode 100644
index 00000000..c5fd6ce0
--- /dev/null
+++ b/scripts/equipment/force_protection.py
@@ -0,0 +1,32 @@
+import sys
+
+def jedi_robe_Faint():
+ return 1400
+
+def jedi_robe_Weak():
+ return 3000
+
+def jedi_robe_Lucent():
+ return 4000
+
+def jedi_robe_Luminous():
+ return 5000
+
+def jedi_robe_Radiant():
+ return 6500
+
+def jedi_cloak_Faint():
+ return 0
+
+def jedi_cloak_Weak():
+ return 0
+
+def jedi_cloak_Lucent():
+ return 4500
+
+def jedi_cloak_Luminous():
+ return 5600
+
+def jedi_cloak_Radiant():
+ return 6500
+
\ No newline at end of file
diff --git a/scripts/equipment/slot_protection.py b/scripts/equipment/slot_protection.py
new file mode 100644
index 00000000..e6de1f33
--- /dev/null
+++ b/scripts/equipment/slot_protection.py
@@ -0,0 +1,23 @@
+import sys
+
+def chest2():
+ return "35.70"
+
+def pants1():
+ return "21.43"
+
+def hat():
+ return "14.27"
+
+def bracer_upper_l():
+ return "7.15"
+
+def bracer_upper_r():
+ return "7.15"
+
+def bicep_l():
+ return "7.15"
+
+def bicep_r():
+ return "7.15"
+
\ No newline at end of file
diff --git a/scripts/equipment/weapon_critical.py b/scripts/equipment/weapon_critical.py
new file mode 100644
index 00000000..9f392f34
--- /dev/null
+++ b/scripts/equipment/weapon_critical.py
@@ -0,0 +1,37 @@
+import sys
+
+def weap_0():
+ return "expertise_critical_rifle"
+
+def weap_1():
+ return "expertise_critical_carbine"
+
+def weap_2():
+ return "expertise_critical_pistol"
+
+def weap_4():
+ return "expertise_critical_1h"
+
+def weap_5():
+ return "expertise_critical_2h"
+
+def weap_6():
+ return "expertise_critical_unarmed"
+
+def weap_7():
+ return "expertise_critical_polearm"
+
+def weap_9():
+ return ""
+
+def weap_10():
+ return ""
+
+def weap_11():
+ return ""
+
+def weap_12():
+ return "expertise_critical_heavy"
+
+def weap_13():
+ return "expertise_critical_heavy"
\ No newline at end of file
diff --git a/scripts/expertise/expertise_bh_absorbtion_1.py b/scripts/expertise/expertise_bh_absorbtion_1.py
index 80b8479e..81963132 100644
--- a/scripts/expertise/expertise_bh_absorbtion_1.py
+++ b/scripts/expertise/expertise_bh_absorbtion_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_absorbtion_1')
-
- actor.addSkillMod('expertise_innate_protection_all', 125)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_absorbtion_1')
-
- actor.removeSkillMod('expertise_innate_protection_all', 125)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_absorption_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_absorption_1")
return
diff --git a/scripts/expertise/expertise_bh_absorbtion_2.py b/scripts/expertise/expertise_bh_absorbtion_2.py
index 96a6ff72..732e9847 100644
--- a/scripts/expertise/expertise_bh_absorbtion_2.py
+++ b/scripts/expertise/expertise_bh_absorbtion_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_absorbtion_2')
-
- actor.addSkillMod('expertise_innate_protection_all', 125)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_absorbtion_2')
-
- actor.removeSkillMod('expertise_innate_protection_all', 125)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_absorption_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_absorption_2")
return
diff --git a/scripts/expertise/expertise_bh_absorbtion_3.py b/scripts/expertise/expertise_bh_absorbtion_3.py
index e46daa07..b8d44ab2 100644
--- a/scripts/expertise/expertise_bh_absorbtion_3.py
+++ b/scripts/expertise/expertise_bh_absorbtion_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_absorbtion_3')
-
- actor.addSkillMod('expertise_innate_protection_all', 125)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_absorbtion_3')
-
- actor.removeSkillMod('expertise_innate_protection_all', 125)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_absorption_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_absorption_3")
return
diff --git a/scripts/expertise/expertise_bh_absorbtion_4.py b/scripts/expertise/expertise_bh_absorbtion_4.py
index f62d4493..3210a0b0 100644
--- a/scripts/expertise/expertise_bh_absorbtion_4.py
+++ b/scripts/expertise/expertise_bh_absorbtion_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_absorbtion_4')
-
- actor.addSkillMod('expertise_innate_protection_all', 125)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_absorbtion_4')
-
- actor.removeSkillMod('expertise_innate_protection_all', 125)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_absorption_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_absorption_4")
return
diff --git a/scripts/expertise/expertise_bh_agility_1.py b/scripts/expertise/expertise_bh_agility_1.py
index aab87823..007b7232 100644
--- a/scripts/expertise/expertise_bh_agility_1.py
+++ b/scripts/expertise/expertise_bh_agility_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_agility_1')
-
- actor.addSkillMod('agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_agility_1')
-
- actor.removeSkillMod('agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_agility_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_agility_1")
return
diff --git a/scripts/expertise/expertise_bh_agility_2.py b/scripts/expertise/expertise_bh_agility_2.py
index 2724b112..2d896352 100644
--- a/scripts/expertise/expertise_bh_agility_2.py
+++ b/scripts/expertise/expertise_bh_agility_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_agility_2')
-
- actor.addSkillMod('agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_agility_2')
-
- actor.removeSkillMod('agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_agility_1")
return
def removeAbilities(core, actor, player):
-
-
- return
+ actor.removeAbility("expertise_bh_agility_1")
+ return
\ No newline at end of file
diff --git a/scripts/expertise/expertise_bh_agility_3.py b/scripts/expertise/expertise_bh_agility_3.py
index d869fbc4..d55eaa3a 100644
--- a/scripts/expertise/expertise_bh_agility_3.py
+++ b/scripts/expertise/expertise_bh_agility_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_agility_3')
-
- actor.addSkillMod('agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_agility_3')
-
- actor.removeSkillMod('agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_agility_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_agility_3")
return
diff --git a/scripts/expertise/expertise_bh_agility_4.py b/scripts/expertise/expertise_bh_agility_4.py
index 6152ee4b..84d67d3f 100644
--- a/scripts/expertise/expertise_bh_agility_4.py
+++ b/scripts/expertise/expertise_bh_agility_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_agility_4')
-
- actor.addSkillMod('agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_agility_4')
-
- actor.removeSkillMod('agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_agility_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_agility_4")
return
diff --git a/scripts/expertise/expertise_bh_amb_act_1.py b/scripts/expertise/expertise_bh_amb_act_1.py
index 7a0c4ee0..55a6b1d7 100644
--- a/scripts/expertise/expertise_bh_amb_act_1.py
+++ b/scripts/expertise/expertise_bh_amb_act_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_amb_act_1')
-
- actor.addSkillMod('expertise_action_line_dm_crit', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_amb_act_1')
-
- actor.removeSkillMod('expertise_action_line_dm_crit', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_amb_act_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_amb_act_1")
return
diff --git a/scripts/expertise/expertise_bh_amb_act_2.py b/scripts/expertise/expertise_bh_amb_act_2.py
index a19f7ba9..e1d3bd74 100644
--- a/scripts/expertise/expertise_bh_amb_act_2.py
+++ b/scripts/expertise/expertise_bh_amb_act_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_amb_act_2')
-
- actor.addSkillMod('expertise_action_line_dm_crit', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_amb_act_2')
-
- actor.removeSkillMod('expertise_action_line_dm_crit', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_amb_act_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_amb_act_2")
return
diff --git a/scripts/expertise/expertise_bh_amb_act_3.py b/scripts/expertise/expertise_bh_amb_act_3.py
index cb649c64..da81f8ad 100644
--- a/scripts/expertise/expertise_bh_amb_act_3.py
+++ b/scripts/expertise/expertise_bh_amb_act_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_amb_act_3')
-
- actor.addSkillMod('expertise_action_line_dm_crit', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_amb_act_3')
-
- actor.removeSkillMod('expertise_action_line_dm_crit', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_amb_act_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_amb_act_3")
return
diff --git a/scripts/expertise/expertise_bh_amb_cool_1.py b/scripts/expertise/expertise_bh_amb_cool_1.py
index 8749deaa..6e07401d 100644
--- a/scripts/expertise/expertise_bh_amb_cool_1.py
+++ b/scripts/expertise/expertise_bh_amb_cool_1.py
@@ -1,48 +1,10 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_amb_cool_1')
-
- actor.addSkillMod('expertise_cooldown_line_dm_crit', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_amb_cool_1')
-
- actor.removeSkillMod('expertise_cooldown_line_dm_crit', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_amb_cool_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_amb_cool_1")
return
+
\ No newline at end of file
diff --git a/scripts/expertise/expertise_bh_amb_cool_2.py b/scripts/expertise/expertise_bh_amb_cool_2.py
index a7a26a52..b1e0427e 100644
--- a/scripts/expertise/expertise_bh_amb_cool_2.py
+++ b/scripts/expertise/expertise_bh_amb_cool_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_amb_cool_2')
-
- actor.addSkillMod('expertise_cooldown_line_dm_crit', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_amb_cool_2')
-
- actor.removeSkillMod('expertise_cooldown_line_dm_crit', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("bh_amb_cool_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("bh_amb_cool_2")
return
diff --git a/scripts/expertise/expertise_bh_amb_dam_1.py b/scripts/expertise/expertise_bh_amb_dam_1.py
index 7d057532..932bf6e5 100644
--- a/scripts/expertise/expertise_bh_amb_dam_1.py
+++ b/scripts/expertise/expertise_bh_amb_dam_1.py
@@ -1,48 +1,10 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_amb_dam_1')
-
- actor.addSkillMod('expertise_damage_line_dm_crit', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_amb_dam_1')
-
- actor.removeSkillMod('expertise_damage_line_dm_crit', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_amb_dam_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_amb_dam_1")
return
+
\ No newline at end of file
diff --git a/scripts/expertise/expertise_bh_amb_dam_2.py b/scripts/expertise/expertise_bh_amb_dam_2.py
index df566fbd..53bdcb8a 100644
--- a/scripts/expertise/expertise_bh_amb_dam_2.py
+++ b/scripts/expertise/expertise_bh_amb_dam_2.py
@@ -1,48 +1,10 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_amb_dam_2')
-
- actor.addSkillMod('expertise_damage_line_dm_crit', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_amb_dam_2')
-
- actor.removeSkillMod('expertise_damage_line_dm_crit', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_amb_dam_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_amb_dam_2")
return
+
\ No newline at end of file
diff --git a/scripts/expertise/expertise_bh_amb_dam_3.py b/scripts/expertise/expertise_bh_amb_dam_3.py
index ba9a05e9..02832491 100644
--- a/scripts/expertise/expertise_bh_amb_dam_3.py
+++ b/scripts/expertise/expertise_bh_amb_dam_3.py
@@ -1,48 +1,10 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_amb_dam_3')
-
- actor.addSkillMod('expertise_damage_line_dm_crit', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_amb_dam_3')
-
- actor.removeSkillMod('expertise_damage_line_dm_crit', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_amb_dam_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_amb_dam_3")
return
+
\ No newline at end of file
diff --git a/scripts/expertise/expertise_bh_amb_dam_cool.py b/scripts/expertise/expertise_bh_amb_dam_cool.py
index 1f9d3b03..633d3846 100644
--- a/scripts/expertise/expertise_bh_amb_dam_cool.py
+++ b/scripts/expertise/expertise_bh_amb_dam_cool.py
@@ -1,50 +1,10 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_amb_dam_cool')
-
- actor.addSkillMod('expertise_dm_crit_advanced', 1)
- actor.addSkillMod('expertise_critical_line_dm_crit', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_amb_dam_cool')
-
- actor.removeSkillMod('expertise_dm_crit_advanced', 1)
- actor.removeSkillMod('expertise_critical_line_dm_crit', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_dam_cool")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_amb_dam_cool")
return
+
\ No newline at end of file
diff --git a/scripts/expertise/expertise_bh_armor_duelist_1.py b/scripts/expertise/expertise_bh_armor_duelist_1.py
index a8955362..c4529a37 100644
--- a/scripts/expertise/expertise_bh_armor_duelist_1.py
+++ b/scripts/expertise/expertise_bh_armor_duelist_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_duelist_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_duelist_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bh_armor_duelist_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("bh_armor_duelist_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("bh_armor_duelist_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("bh_armor_duelist_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("bh_armor_duelist_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("bh_armor_duelist_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bh_armor_duelist_1')
-
+ actor.removeAbility("bh_armor_duelist_1")
+ actor.removeAbility("bh_armor_duelist_2")
+ actor.removeAbility("bh_armor_duelist_3")
+ actor.removeAbility("bh_armor_duelist_4")
+ actor.removeAbility("bh_armor_duelist_5")
return
diff --git a/scripts/expertise/expertise_bh_armor_eng_1.py b/scripts/expertise/expertise_bh_armor_eng_1.py
index dfcf05f9..a67e6dee 100644
--- a/scripts/expertise/expertise_bh_armor_eng_1.py
+++ b/scripts/expertise/expertise_bh_armor_eng_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_eng_1')
-
- actor.addSkillMod('expertise_innate_protection_energy', 500)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_eng_1')
-
- actor.removeSkillMod('expertise_innate_protection_energy', 500)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_armor_eng_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_armor_eng_1")
return
diff --git a/scripts/expertise/expertise_bh_armor_eng_2.py b/scripts/expertise/expertise_bh_armor_eng_2.py
index c04179da..86521742 100644
--- a/scripts/expertise/expertise_bh_armor_eng_2.py
+++ b/scripts/expertise/expertise_bh_armor_eng_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_eng_2')
-
- actor.addSkillMod('expertise_innate_protection_energy', 500)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_eng_2')
-
- actor.removeSkillMod('expertise_innate_protection_energy', 500)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_armor_eng_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_armor_eng_2")
return
diff --git a/scripts/expertise/expertise_bh_armor_eng_3.py b/scripts/expertise/expertise_bh_armor_eng_3.py
index a175c1bc..9674d322 100644
--- a/scripts/expertise/expertise_bh_armor_eng_3.py
+++ b/scripts/expertise/expertise_bh_armor_eng_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_eng_3')
-
- actor.addSkillMod('expertise_innate_protection_energy', 500)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_eng_3')
-
- actor.removeSkillMod('expertise_innate_protection_energy', 500)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_armor_eng_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_armor_eng_3")
return
diff --git a/scripts/expertise/expertise_bh_armor_eng_4.py b/scripts/expertise/expertise_bh_armor_eng_4.py
index 5157fef5..2282200c 100644
--- a/scripts/expertise/expertise_bh_armor_eng_4.py
+++ b/scripts/expertise/expertise_bh_armor_eng_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_eng_4')
-
- actor.addSkillMod('expertise_innate_protection_energy', 500)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_eng_4')
-
- actor.removeSkillMod('expertise_innate_protection_energy', 500)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_armor_eng_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_armor_eng_4")
return
diff --git a/scripts/expertise/expertise_bh_armor_kin_1.py b/scripts/expertise/expertise_bh_armor_kin_1.py
index 0f0fb7f5..91acd05a 100644
--- a/scripts/expertise/expertise_bh_armor_kin_1.py
+++ b/scripts/expertise/expertise_bh_armor_kin_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_kin_1')
-
- actor.addSkillMod('expertise_innate_protection_kinetic', 500)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_kin_1')
-
- actor.removeSkillMod('expertise_innate_protection_kinetic', 500)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_armor_kin_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_armor_kin_1")
return
diff --git a/scripts/expertise/expertise_bh_armor_kin_2.py b/scripts/expertise/expertise_bh_armor_kin_2.py
index c4897930..8e603d50 100644
--- a/scripts/expertise/expertise_bh_armor_kin_2.py
+++ b/scripts/expertise/expertise_bh_armor_kin_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_kin_2')
-
- actor.addSkillMod('expertise_innate_protection_kinetic', 500)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_kin_2')
-
- actor.removeSkillMod('expertise_innate_protection_kinetic', 500)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_armor_kin_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_armor_kin_2")
return
diff --git a/scripts/expertise/expertise_bh_armor_kin_3.py b/scripts/expertise/expertise_bh_armor_kin_3.py
index 2eacb73d..d54efcba 100644
--- a/scripts/expertise/expertise_bh_armor_kin_3.py
+++ b/scripts/expertise/expertise_bh_armor_kin_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_kin_3')
-
- actor.addSkillMod('expertise_innate_protection_kinetic', 500)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_kin_3')
-
- actor.removeSkillMod('expertise_innate_protection_kinetic', 500)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_armor_kin_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_armor_kin_3")
return
diff --git a/scripts/expertise/expertise_bh_armor_kin_4.py b/scripts/expertise/expertise_bh_armor_kin_4.py
index 7d0980cc..7351a899 100644
--- a/scripts/expertise/expertise_bh_armor_kin_4.py
+++ b/scripts/expertise/expertise_bh_armor_kin_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_kin_4')
-
- actor.addSkillMod('expertise_innate_protection_kinetic', 500)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_kin_4')
-
- actor.removeSkillMod('expertise_innate_protection_kinetic', 500)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_armor_kin_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_armor_kin_4")
return
diff --git a/scripts/expertise/expertise_bh_armor_mgb_1.py b/scripts/expertise/expertise_bh_armor_mgb_1.py
index b96d73ae..f6a10221 100644
--- a/scripts/expertise/expertise_bh_armor_mgb_1.py
+++ b/scripts/expertise/expertise_bh_armor_mgb_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_mgb_1')
-
- actor.addSkillMod('expertise_dodge', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_mgb_1')
-
- actor.removeSkillMod('expertise_dodge', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_armor_mgb_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_armor_mgb_1")
return
diff --git a/scripts/expertise/expertise_bh_armor_mgb_2.py b/scripts/expertise/expertise_bh_armor_mgb_2.py
index 3712b6e1..b71a226c 100644
--- a/scripts/expertise/expertise_bh_armor_mgb_2.py
+++ b/scripts/expertise/expertise_bh_armor_mgb_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_mgb_2')
-
- actor.addSkillMod('expertise_dodge', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_mgb_2')
-
- actor.removeSkillMod('expertise_dodge', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_armor_mgb_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_armor_mgb_2")
return
diff --git a/scripts/expertise/expertise_bh_armor_mgb_3.py b/scripts/expertise/expertise_bh_armor_mgb_3.py
index 10a05268..957b4b88 100644
--- a/scripts/expertise/expertise_bh_armor_mgb_3.py
+++ b/scripts/expertise/expertise_bh_armor_mgb_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_mgb_3')
-
- actor.addSkillMod('expertise_dodge', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_mgb_3')
-
- actor.removeSkillMod('expertise_dodge', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_armor_mgb_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_armor_mgb_3")
return
diff --git a/scripts/expertise/expertise_bh_armor_rgb_1.py b/scripts/expertise/expertise_bh_armor_rgb_1.py
index d529151c..c1d48b96 100644
--- a/scripts/expertise/expertise_bh_armor_rgb_1.py
+++ b/scripts/expertise/expertise_bh_armor_rgb_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_rgb_1')
-
- actor.addSkillMod('expertise_critical_hit_reduction', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_rgb_1')
-
- actor.removeSkillMod('expertise_critical_hit_reduction', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_armor_rgb_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_armor_rgb_1")
return
diff --git a/scripts/expertise/expertise_bh_armor_rgb_2.py b/scripts/expertise/expertise_bh_armor_rgb_2.py
index 54da7d9e..d0757ff7 100644
--- a/scripts/expertise/expertise_bh_armor_rgb_2.py
+++ b/scripts/expertise/expertise_bh_armor_rgb_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_rgb_2')
-
- actor.addSkillMod('expertise_critical_hit_reduction', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_rgb_2')
-
- actor.removeSkillMod('expertise_critical_hit_reduction', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_armor_rgb_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_armor_rgb_2")
return
diff --git a/scripts/expertise/expertise_bh_armor_rgb_3.py b/scripts/expertise/expertise_bh_armor_rgb_3.py
index c94386c5..7f8e5879 100644
--- a/scripts/expertise/expertise_bh_armor_rgb_3.py
+++ b/scripts/expertise/expertise_bh_armor_rgb_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_rgb_3')
-
- actor.addSkillMod('expertise_critical_hit_reduction', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_rgb_3')
-
- actor.removeSkillMod('expertise_critical_hit_reduction', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_armor_rgb_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_armor_rgb_3")
return
diff --git a/scripts/expertise/expertise_bh_armor_sprint_1.py b/scripts/expertise/expertise_bh_armor_sprint_1.py
index 247c23e1..b0ebf1ec 100644
--- a/scripts/expertise/expertise_bh_armor_sprint_1.py
+++ b/scripts/expertise/expertise_bh_armor_sprint_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_armor_sprint_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_armor_sprint_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bh_armor_sprint_1')
-
+ actor.addAbility("bh_armor_sprint_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bh_armor_sprint_1')
-
+ actor.removeAbility("bh_armor_sprint_1")
return
diff --git a/scripts/expertise/expertise_bh_ass_act_1.py b/scripts/expertise/expertise_bh_ass_act_1.py
index 4b60f445..35100c39 100644
--- a/scripts/expertise/expertise_bh_ass_act_1.py
+++ b/scripts/expertise/expertise_bh_ass_act_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_ass_act_1')
-
- actor.addSkillMod('expertise_action_line_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_ass_act_1')
-
- actor.removeSkillMod('expertise_action_line_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_ass_act_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_ass_act_1")
return
diff --git a/scripts/expertise/expertise_bh_ass_act_2.py b/scripts/expertise/expertise_bh_ass_act_2.py
index 07f25018..e647dfd4 100644
--- a/scripts/expertise/expertise_bh_ass_act_2.py
+++ b/scripts/expertise/expertise_bh_ass_act_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_ass_act_2')
-
- actor.addSkillMod('expertise_action_line_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_ass_act_2')
-
- actor.removeSkillMod('expertise_action_line_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_ass_act_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_ass_act_2")
return
diff --git a/scripts/expertise/expertise_bh_ass_act_3.py b/scripts/expertise/expertise_bh_ass_act_3.py
index c24cbdd3..7011247d 100644
--- a/scripts/expertise/expertise_bh_ass_act_3.py
+++ b/scripts/expertise/expertise_bh_ass_act_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_ass_act_3')
-
- actor.addSkillMod('expertise_action_line_dm', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_ass_act_3')
-
- actor.removeSkillMod('expertise_action_line_dm', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_ass_act_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_ass_act_3")
return
diff --git a/scripts/expertise/expertise_bh_ass_cool_1.py b/scripts/expertise/expertise_bh_ass_cool_1.py
index aaff3675..c9d4f6bf 100644
--- a/scripts/expertise/expertise_bh_ass_cool_1.py
+++ b/scripts/expertise/expertise_bh_ass_cool_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_ass_cool_1')
-
- actor.addSkillMod('expertise_cooldown_line_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_ass_cool_1')
-
- actor.removeSkillMod('expertise_cooldown_line_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_ass_cool_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_ass_cool_1")
return
diff --git a/scripts/expertise/expertise_bh_ass_cool_2.py b/scripts/expertise/expertise_bh_ass_cool_2.py
index af01e9aa..4532702b 100644
--- a/scripts/expertise/expertise_bh_ass_cool_2.py
+++ b/scripts/expertise/expertise_bh_ass_cool_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_ass_cool_2')
-
- actor.addSkillMod('expertise_cooldown_line_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_ass_cool_2')
-
- actor.removeSkillMod('expertise_cooldown_line_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_ass_cool_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_ass_cool_2")
return
diff --git a/scripts/expertise/expertise_bh_ass_dam_1.py b/scripts/expertise/expertise_bh_ass_dam_1.py
index 04fb74e7..7d52ed2f 100644
--- a/scripts/expertise/expertise_bh_ass_dam_1.py
+++ b/scripts/expertise/expertise_bh_ass_dam_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_ass_dam_1')
-
- actor.addSkillMod('expertise_damage_line_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_ass_dam_1')
-
- actor.removeSkillMod('expertise_damage_line_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_ass_dam_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_ass_dam_1")
return
diff --git a/scripts/expertise/expertise_bh_ass_dam_2.py b/scripts/expertise/expertise_bh_ass_dam_2.py
index ea7ec873..a6587bd4 100644
--- a/scripts/expertise/expertise_bh_ass_dam_2.py
+++ b/scripts/expertise/expertise_bh_ass_dam_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_ass_dam_2')
-
- actor.addSkillMod('expertise_damage_line_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_ass_dam_2')
-
- actor.removeSkillMod('expertise_damage_line_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_ass_dam_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_ass_dam_2")
return
diff --git a/scripts/expertise/expertise_bh_ass_dam_3.py b/scripts/expertise/expertise_bh_ass_dam_3.py
index 7fce7d94..57e2d7c4 100644
--- a/scripts/expertise/expertise_bh_ass_dam_3.py
+++ b/scripts/expertise/expertise_bh_ass_dam_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_ass_dam_3')
-
- actor.addSkillMod('expertise_damage_line_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_ass_dam_3')
-
- actor.removeSkillMod('expertise_damage_line_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_ass_dam_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_ass_dam_3")
return
diff --git a/scripts/expertise/expertise_bh_carbine_act_1.py b/scripts/expertise/expertise_bh_carbine_act_1.py
index ce2dd758..bb7e39f3 100644
--- a/scripts/expertise/expertise_bh_carbine_act_1.py
+++ b/scripts/expertise/expertise_bh_carbine_act_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_carbine_act_1')
-
- actor.addSkillMod('expertise_action_weapon_1', 3)
- actor.addSkillMod('expertise_action_weapon_2', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_carbine_act_1')
-
- actor.removeSkillMod('expertise_action_weapon_1', 3)
- actor.removeSkillMod('expertise_action_weapon_2', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_carbine_act_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_carbine_act_1")
return
diff --git a/scripts/expertise/expertise_bh_carbine_act_2.py b/scripts/expertise/expertise_bh_carbine_act_2.py
index bb494e3f..c2024eab 100644
--- a/scripts/expertise/expertise_bh_carbine_act_2.py
+++ b/scripts/expertise/expertise_bh_carbine_act_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_carbine_act_2')
-
- actor.addSkillMod('expertise_action_weapon_1', 3)
- actor.addSkillMod('expertise_action_weapon_2', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_carbine_act_2')
-
- actor.removeSkillMod('expertise_action_weapon_1', 3)
- actor.removeSkillMod('expertise_action_weapon_2', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_carbine_act_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_carbine_act_2")
return
diff --git a/scripts/expertise/expertise_bh_carbine_act_3.py b/scripts/expertise/expertise_bh_carbine_act_3.py
index 6f07762a..ddb0ac36 100644
--- a/scripts/expertise/expertise_bh_carbine_act_3.py
+++ b/scripts/expertise/expertise_bh_carbine_act_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_carbine_act_3')
-
- actor.addSkillMod('expertise_action_weapon_1', 4)
- actor.addSkillMod('expertise_action_weapon_2', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_carbine_act_3')
-
- actor.removeSkillMod('expertise_action_weapon_1', 4)
- actor.removeSkillMod('expertise_action_weapon_2', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_carbine_act_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_carbine_act_3")
return
diff --git a/scripts/expertise/expertise_bh_carbine_act_4.py b/scripts/expertise/expertise_bh_carbine_act_4.py
index 96142cc2..30d33f95 100644
--- a/scripts/expertise/expertise_bh_carbine_act_4.py
+++ b/scripts/expertise/expertise_bh_carbine_act_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_carbine_act_4')
-
- actor.addSkillMod('expertise_action_weapon_1', 5)
- actor.addSkillMod('expertise_action_weapon_2', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_carbine_act_4')
-
- actor.removeSkillMod('expertise_action_weapon_1', 5)
- actor.removeSkillMod('expertise_action_weapon_2', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_carbine_act_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_carbine_act_4")
return
diff --git a/scripts/expertise/expertise_bh_carbine_crit_1.py b/scripts/expertise/expertise_bh_carbine_crit_1.py
index 131db4c7..76d07aa9 100644
--- a/scripts/expertise/expertise_bh_carbine_crit_1.py
+++ b/scripts/expertise/expertise_bh_carbine_crit_1.py
@@ -1,54 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_carbine_crit_1')
-
- actor.addSkillMod('expertise_range_bonus_carbine', 10)
- actor.addSkillMod('expertise_undiminished_critical_carbine', 10)
- actor.addSkillMod('expertise_undiminished_critical_pistol', 10)
- actor.addSkillMod('expertise_range_bonus_pistol', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_carbine_crit_1')
-
- actor.removeSkillMod('expertise_range_bonus_carbine', 10)
- actor.removeSkillMod('expertise_undiminished_critical_carbine', 10)
- actor.removeSkillMod('expertise_undiminished_critical_pistol', 10)
- actor.removeSkillMod('expertise_range_bonus_pistol', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_carbine_crit_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_carbine_crit_1")
return
diff --git a/scripts/expertise/expertise_bh_carbine_dam_1.py b/scripts/expertise/expertise_bh_carbine_dam_1.py
index 4681ff5a..101aaaa0 100644
--- a/scripts/expertise/expertise_bh_carbine_dam_1.py
+++ b/scripts/expertise/expertise_bh_carbine_dam_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_carbine_dam_1')
-
- actor.addSkillMod('expertise_damage_weapon_1', 2)
- actor.addSkillMod('expertise_damage_weapon_2', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_carbine_dam_1')
-
- actor.removeSkillMod('expertise_damage_weapon_1', 2)
- actor.removeSkillMod('expertise_damage_weapon_2', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_carbine_dam_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_carbine_dam_1")
return
diff --git a/scripts/expertise/expertise_bh_carbine_dam_2.py b/scripts/expertise/expertise_bh_carbine_dam_2.py
index bca390dc..311fdf16 100644
--- a/scripts/expertise/expertise_bh_carbine_dam_2.py
+++ b/scripts/expertise/expertise_bh_carbine_dam_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_carbine_dam_2')
-
- actor.addSkillMod('expertise_damage_weapon_1', 3)
- actor.addSkillMod('expertise_damage_weapon_2', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_carbine_dam_2')
-
- actor.removeSkillMod('expertise_damage_weapon_1', 3)
- actor.removeSkillMod('expertise_damage_weapon_2', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_carbine_dam_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_carbine_dam_2")
return
diff --git a/scripts/expertise/expertise_bh_constitution_1.py b/scripts/expertise/expertise_bh_constitution_1.py
index bf9c095e..4311146c 100644
--- a/scripts/expertise/expertise_bh_constitution_1.py
+++ b/scripts/expertise/expertise_bh_constitution_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_constitution_1')
-
- actor.addSkillMod('constitution_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_constitution_1')
-
- actor.removeSkillMod('constitution_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_constitution_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_constitution_1")
return
diff --git a/scripts/expertise/expertise_bh_constitution_2.py b/scripts/expertise/expertise_bh_constitution_2.py
index a7a36229..b08059f1 100644
--- a/scripts/expertise/expertise_bh_constitution_2.py
+++ b/scripts/expertise/expertise_bh_constitution_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_constitution_2')
-
- actor.addSkillMod('constitution_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_constitution_2')
-
- actor.removeSkillMod('constitution_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_constitution_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_constitution_2")
return
diff --git a/scripts/expertise/expertise_bh_constitution_3.py b/scripts/expertise/expertise_bh_constitution_3.py
index 4259b57a..3cd7edf6 100644
--- a/scripts/expertise/expertise_bh_constitution_3.py
+++ b/scripts/expertise/expertise_bh_constitution_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_constitution_3')
-
- actor.addSkillMod('constitution_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_constitution_3')
-
- actor.removeSkillMod('constitution_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_constitution_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_constitution_3")
return
diff --git a/scripts/expertise/expertise_bh_constitution_4.py b/scripts/expertise/expertise_bh_constitution_4.py
index dd89792b..662706cb 100644
--- a/scripts/expertise/expertise_bh_constitution_4.py
+++ b/scripts/expertise/expertise_bh_constitution_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_constitution_4')
-
- actor.addSkillMod('constitution_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_constitution_4')
-
- actor.removeSkillMod('constitution_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_constitution_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_constitution_4")
return
diff --git a/scripts/expertise/expertise_bh_cover_1.py b/scripts/expertise/expertise_bh_cover_1.py
index 019850cd..b3021ddf 100644
--- a/scripts/expertise/expertise_bh_cover_1.py
+++ b/scripts/expertise/expertise_bh_cover_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_cover_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_cover_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bh_cover_1')
-
+ actor.addAbility("bh_cover_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bh_cover_1')
-
+ actor.removeAbility("bh_cover_1")
return
diff --git a/scripts/expertise/expertise_bh_deflection_1.py b/scripts/expertise/expertise_bh_deflection_1.py
index ab02e0a6..8ac3bf4c 100644
--- a/scripts/expertise/expertise_bh_deflection_1.py
+++ b/scripts/expertise/expertise_bh_deflection_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_deflection_1')
-
- actor.addSkillMod('expertise_innate_protection_all', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_deflection_1')
-
- actor.removeSkillMod('expertise_innate_protection_all', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_deflection_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_deflection_1")
return
diff --git a/scripts/expertise/expertise_bh_deflection_2.py b/scripts/expertise/expertise_bh_deflection_2.py
index 33b98bf0..35b2c47e 100644
--- a/scripts/expertise/expertise_bh_deflection_2.py
+++ b/scripts/expertise/expertise_bh_deflection_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_deflection_2')
-
- actor.addSkillMod('expertise_innate_protection_all', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_deflection_2')
-
- actor.removeSkillMod('expertise_innate_protection_all', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_deflection_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_deflection_2")
return
diff --git a/scripts/expertise/expertise_bh_deflection_3.py b/scripts/expertise/expertise_bh_deflection_3.py
index c408ca42..d1cd6d2d 100644
--- a/scripts/expertise/expertise_bh_deflection_3.py
+++ b/scripts/expertise/expertise_bh_deflection_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_deflection_3')
-
- actor.addSkillMod('expertise_innate_protection_all', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_deflection_3')
-
- actor.removeSkillMod('expertise_innate_protection_all', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_deflection_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_deflection_3")
return
diff --git a/scripts/expertise/expertise_bh_deflection_4.py b/scripts/expertise/expertise_bh_deflection_4.py
index b5e42e86..fa5ae83f 100644
--- a/scripts/expertise/expertise_bh_deflection_4.py
+++ b/scripts/expertise/expertise_bh_deflection_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_deflection_4')
-
- actor.addSkillMod('expertise_innate_protection_all', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_deflection_4')
-
- actor.removeSkillMod('expertise_innate_protection_all', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_deflection_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_deflection_4")
return
diff --git a/scripts/expertise/expertise_bh_dread_strike_1.py b/scripts/expertise/expertise_bh_dread_strike_1.py
index f7598134..8b2f96c9 100644
--- a/scripts/expertise/expertise_bh_dread_strike_1.py
+++ b/scripts/expertise/expertise_bh_dread_strike_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_dread_strike_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_dread_strike_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bh_dread_strike_1')
-
+ actor.addAbility("bh_dread_strike_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bh_dread_strike_1')
-
+ actor.removeAbility("bh_dread_strike_1")
return
diff --git a/scripts/expertise/expertise_bh_fumble_1.py b/scripts/expertise/expertise_bh_fumble_1.py
index c3863158..f39cdd09 100644
--- a/scripts/expertise/expertise_bh_fumble_1.py
+++ b/scripts/expertise/expertise_bh_fumble_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_fumble_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_fumble_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bh_fumble_1')
-
+ actor.addAbility("bh_fumble_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bh_fumble_1')
-
+ actor.removeAbility("bh_fumble_1")
return
diff --git a/scripts/expertise/expertise_bh_innate_1.py b/scripts/expertise/expertise_bh_innate_1.py
index 1f013597..be7b9b38 100644
--- a/scripts/expertise/expertise_bh_innate_1.py
+++ b/scripts/expertise/expertise_bh_innate_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_innate_1')
-
- actor.addSkillMod('expertise_assult_action_buff', 40)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_innate_1')
-
- actor.removeSkillMod('expertise_assult_action_buff', 40)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_innate_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_innate_1")
return
diff --git a/scripts/expertise/expertise_bh_intimidate_1.py b/scripts/expertise/expertise_bh_intimidate_1.py
index fa501d18..ee0e81ce 100644
--- a/scripts/expertise/expertise_bh_intimidate_1.py
+++ b/scripts/expertise/expertise_bh_intimidate_1.py
@@ -1,48 +1,25 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_intimidate_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_intimidate_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bh_intimidate_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("bh_intimidate_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("bh_intimidate_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("bh_intimidate_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("bh_intimidate_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("bh_intimidate_5")
+ if actor.getLevel() >= 90:
+ actor.addAbility("bh_intimidate_6")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bh_intimidate_1')
-
+ actor.removeAbility("bh_intimidate_1")
+ actor.removeAbility("bh_intimidate_2")
+ actor.removeAbility("bh_intimidate_3")
+ actor.removeAbility("bh_intimidate_4")
+ actor.removeAbility("bh_intimidate_5")
+ actor.removeAbility("bh_intimidate_6")
return
diff --git a/scripts/expertise/expertise_bh_man_crit_1.py b/scripts/expertise/expertise_bh_man_crit_1.py
index 834f9dec..39c35cea 100644
--- a/scripts/expertise/expertise_bh_man_crit_1.py
+++ b/scripts/expertise/expertise_bh_man_crit_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_man_crit_1')
-
- actor.addSkillMod('expertise_strikethrough_chance', 2)
- actor.addSkillMod('expertise_bh_detect_camo_chance', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_man_crit_1')
-
- actor.removeSkillMod('expertise_strikethrough_chance', 2)
- actor.removeSkillMod('expertise_bh_detect_camo_chance', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_man_crit_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_man_crit_1")
return
diff --git a/scripts/expertise/expertise_bh_man_crit_2.py b/scripts/expertise/expertise_bh_man_crit_2.py
index b9650fe3..f59f750a 100644
--- a/scripts/expertise/expertise_bh_man_crit_2.py
+++ b/scripts/expertise/expertise_bh_man_crit_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_man_crit_2')
-
- actor.addSkillMod('expertise_strikethrough_chance', 2)
- actor.addSkillMod('expertise_bh_detect_camo_chance', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_man_crit_2')
-
- actor.removeSkillMod('expertise_strikethrough_chance', 2)
- actor.removeSkillMod('expertise_bh_detect_camo_chance', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_man_crit_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_man_crit_2")
return
diff --git a/scripts/expertise/expertise_bh_man_crit_3.py b/scripts/expertise/expertise_bh_man_crit_3.py
index da3e6f06..cb9d8b76 100644
--- a/scripts/expertise/expertise_bh_man_crit_3.py
+++ b/scripts/expertise/expertise_bh_man_crit_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_man_crit_3')
-
- actor.addSkillMod('expertise_strikethrough_chance', 2)
- actor.addSkillMod('expertise_bh_detect_camo_chance', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_man_crit_3')
-
- actor.removeSkillMod('expertise_strikethrough_chance', 2)
- actor.removeSkillMod('expertise_bh_detect_camo_chance', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_man_crit_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_man_crit_3")
return
diff --git a/scripts/expertise/expertise_bh_precision_1.py b/scripts/expertise/expertise_bh_precision_1.py
index 7004f208..f3813dc5 100644
--- a/scripts/expertise/expertise_bh_precision_1.py
+++ b/scripts/expertise/expertise_bh_precision_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_precision_1')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_precision_1')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_precision_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_precision_1")
return
diff --git a/scripts/expertise/expertise_bh_precision_2.py b/scripts/expertise/expertise_bh_precision_2.py
index 58cb5095..6207ca53 100644
--- a/scripts/expertise/expertise_bh_precision_2.py
+++ b/scripts/expertise/expertise_bh_precision_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_precision_2')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_precision_2')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_precision_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_precision_2")
return
diff --git a/scripts/expertise/expertise_bh_precision_3.py b/scripts/expertise/expertise_bh_precision_3.py
index 32fa6e4c..d872a9f0 100644
--- a/scripts/expertise/expertise_bh_precision_3.py
+++ b/scripts/expertise/expertise_bh_precision_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_precision_3')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_precision_3')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_precision_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_precision_3")
return
diff --git a/scripts/expertise/expertise_bh_precision_4.py b/scripts/expertise/expertise_bh_precision_4.py
index 9ff20b56..c23f6372 100644
--- a/scripts/expertise/expertise_bh_precision_4.py
+++ b/scripts/expertise/expertise_bh_precision_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_precision_4')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_precision_4')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_precision_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_precision_4")
return
diff --git a/scripts/expertise/expertise_bh_prescience.py b/scripts/expertise/expertise_bh_prescience.py
index 8211d2f6..a0705af9 100644
--- a/scripts/expertise/expertise_bh_prescience.py
+++ b/scripts/expertise/expertise_bh_prescience.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_prescience')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_prescience')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bh_prescience')
-
+ actor.addAbility("bh_prescience")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bh_prescience')
-
+ actor.removeAbility("bh_prescience")
return
diff --git a/scripts/expertise/expertise_bh_relentless_1.py b/scripts/expertise/expertise_bh_relentless_1.py
index 16584560..d8859773 100644
--- a/scripts/expertise/expertise_bh_relentless_1.py
+++ b/scripts/expertise/expertise_bh_relentless_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_relentless_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_relentless_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bh_relentless_1')
-
+ actor.addAbility("bh_relentless_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bh_relentless_1')
-
+ actor.removeAbility("bh_relentless_1")
return
diff --git a/scripts/expertise/expertise_bh_return_fire_1.py b/scripts/expertise/expertise_bh_return_fire_1.py
index 27d39f22..322ced20 100644
--- a/scripts/expertise/expertise_bh_return_fire_1.py
+++ b/scripts/expertise/expertise_bh_return_fire_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_return_fire_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_return_fire_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bh_return_fire_command_1')
-
+ actor.addAbility("bh_return_fire_command_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bh_return_fire_command_1')
-
+ actor.removeAbility("bh_return_fire_command_1")
return
diff --git a/scripts/expertise/expertise_bh_rifle_act_1.py b/scripts/expertise/expertise_bh_rifle_act_1.py
index c64ab6fd..5ab3b5b8 100644
--- a/scripts/expertise/expertise_bh_rifle_act_1.py
+++ b/scripts/expertise/expertise_bh_rifle_act_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_rifle_act_1')
-
- actor.addSkillMod('expertise_action_weapon_0', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_rifle_act_1')
-
- actor.removeSkillMod('expertise_action_weapon_0', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_rifle_act_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_rifle_act_1")
return
diff --git a/scripts/expertise/expertise_bh_rifle_act_2.py b/scripts/expertise/expertise_bh_rifle_act_2.py
index f1488c3f..1f94991c 100644
--- a/scripts/expertise/expertise_bh_rifle_act_2.py
+++ b/scripts/expertise/expertise_bh_rifle_act_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_rifle_act_2')
-
- actor.addSkillMod('expertise_action_weapon_0', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_rifle_act_2')
-
- actor.removeSkillMod('expertise_action_weapon_0', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_rifle_act_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_rifle_act_2")
return
diff --git a/scripts/expertise/expertise_bh_rifle_act_3.py b/scripts/expertise/expertise_bh_rifle_act_3.py
index 709fdfec..21f5a7b6 100644
--- a/scripts/expertise/expertise_bh_rifle_act_3.py
+++ b/scripts/expertise/expertise_bh_rifle_act_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_rifle_act_3')
-
- actor.addSkillMod('expertise_action_weapon_0', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_rifle_act_3')
-
- actor.removeSkillMod('expertise_action_weapon_0', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_rifle_act_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_rifle_act_3")
return
diff --git a/scripts/expertise/expertise_bh_rifle_act_4.py b/scripts/expertise/expertise_bh_rifle_act_4.py
index fc0549fa..cb32b474 100644
--- a/scripts/expertise/expertise_bh_rifle_act_4.py
+++ b/scripts/expertise/expertise_bh_rifle_act_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_rifle_act_4')
-
- actor.addSkillMod('expertise_action_weapon_0', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_rifle_act_4')
-
- actor.removeSkillMod('expertise_action_weapon_0', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_rifle_act_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_rifle_act_4")
return
diff --git a/scripts/expertise/expertise_bh_rifle_dam_1.py b/scripts/expertise/expertise_bh_rifle_dam_1.py
index 9c3114cc..debb9b31 100644
--- a/scripts/expertise/expertise_bh_rifle_dam_1.py
+++ b/scripts/expertise/expertise_bh_rifle_dam_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_rifle_dam_1')
-
- actor.addSkillMod('expertise_damage_weapon_0', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_rifle_dam_1')
-
- actor.removeSkillMod('expertise_damage_weapon_0', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_rifle_dam_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_rifle_dam_1")
return
diff --git a/scripts/expertise/expertise_bh_rifle_dam_2.py b/scripts/expertise/expertise_bh_rifle_dam_2.py
index 43fa09b4..29f37539 100644
--- a/scripts/expertise/expertise_bh_rifle_dam_2.py
+++ b/scripts/expertise/expertise_bh_rifle_dam_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_rifle_dam_2')
-
- actor.addSkillMod('expertise_damage_weapon_0', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_rifle_dam_2')
-
- actor.removeSkillMod('expertise_damage_weapon_0', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_rifle_dam_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_rifle_dam_2")
return
diff --git a/scripts/expertise/expertise_bh_shields_1.py b/scripts/expertise/expertise_bh_shields_1.py
index cc0b0b50..ecedc9e6 100644
--- a/scripts/expertise/expertise_bh_shields_1.py
+++ b/scripts/expertise/expertise_bh_shields_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_shields_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_shields_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bh_shields_1')
-
+ actor.addAbility("bh_shields_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bh_shields_1')
-
+ actor.removeAbility("bh_shields_1")
return
diff --git a/scripts/expertise/expertise_bh_sniper_1.py b/scripts/expertise/expertise_bh_sniper_1.py
index 5d90b6af..b94485a7 100644
--- a/scripts/expertise/expertise_bh_sniper_1.py
+++ b/scripts/expertise/expertise_bh_sniper_1.py
@@ -1,48 +1,25 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_sniper_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_sniper_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bh_sniper_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("bh_sniper_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("bh_sniper_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("bh_sniper_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("bh_sniper_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("bh_sniper_5")
+ if actor.getLevel() >= 90:
+ actor.addAbility("bh_sniper_6")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bh_sniper_1')
-
+ actor.removeAbility("bh_sniper_1")
+ actor.removeAbility("bh_sniper_2")
+ actor.removeAbility("bh_sniper_3")
+ actor.removeAbility("bh_sniper_4")
+ actor.removeAbility("bh_sniper_5")
+ actor.removeAbility("bh_sniper_6")
return
diff --git a/scripts/expertise/expertise_bh_stamina_1.py b/scripts/expertise/expertise_bh_stamina_1.py
index 135dfb5a..77903769 100644
--- a/scripts/expertise/expertise_bh_stamina_1.py
+++ b/scripts/expertise/expertise_bh_stamina_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_stamina_1')
-
- actor.addSkillMod('stamina_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_stamina_1')
-
- actor.removeSkillMod('stamina_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_stamina_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_stamina_1")
return
diff --git a/scripts/expertise/expertise_bh_stamina_2.py b/scripts/expertise/expertise_bh_stamina_2.py
index 82137a73..0deb8459 100644
--- a/scripts/expertise/expertise_bh_stamina_2.py
+++ b/scripts/expertise/expertise_bh_stamina_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_stamina_2')
-
- actor.addSkillMod('stamina_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_stamina_2')
-
- actor.removeSkillMod('stamina_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_stamina_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_stamina_2")
return
diff --git a/scripts/expertise/expertise_bh_stamina_3.py b/scripts/expertise/expertise_bh_stamina_3.py
index 4a9d9c79..3ec0af04 100644
--- a/scripts/expertise/expertise_bh_stamina_3.py
+++ b/scripts/expertise/expertise_bh_stamina_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_stamina_3')
-
- actor.addSkillMod('stamina_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_stamina_3')
-
- actor.removeSkillMod('stamina_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_stamina_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_stamina_3")
return
diff --git a/scripts/expertise/expertise_bh_stamina_4.py b/scripts/expertise/expertise_bh_stamina_4.py
index b4bec72c..fd17d13e 100644
--- a/scripts/expertise/expertise_bh_stamina_4.py
+++ b/scripts/expertise/expertise_bh_stamina_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_stamina_4')
-
- actor.addSkillMod('stamina_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_stamina_4')
-
- actor.removeSkillMod('stamina_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_stamina_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_stamina_4")
return
diff --git a/scripts/expertise/expertise_bh_stun_1.py b/scripts/expertise/expertise_bh_stun_1.py
index 63fbb815..4e9f3633 100644
--- a/scripts/expertise/expertise_bh_stun_1.py
+++ b/scripts/expertise/expertise_bh_stun_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_stun_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_stun_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bh_stun_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("bh_stun_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("bh_stun_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("bh_stun_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("bh_stun_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("bh_stun_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bh_stun_1')
-
+ actor.removeAbility("bh_stun_1")
+ actor.removeAbility("bh_stun_2")
+ actor.removeAbility("bh_stun_3")
+ actor.removeAbility("bh_stun_4")
+ actor.removeAbility("bh_stun_5")
return
diff --git a/scripts/expertise/expertise_bh_surprise_1.py b/scripts/expertise/expertise_bh_surprise_1.py
index 362f3be0..2e23c9bf 100644
--- a/scripts/expertise/expertise_bh_surprise_1.py
+++ b/scripts/expertise/expertise_bh_surprise_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_surprise_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_surprise_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bh_dm_crit_3')
-
+ actor.addAbility("bh_dm_crit_3")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bh_dm_crit_3')
-
+ actor.removeAbility("bh_dm_crit_3")
return
diff --git a/scripts/expertise/expertise_bh_survival_instinct_1.py b/scripts/expertise/expertise_bh_survival_instinct_1.py
index 720ddfe0..c361bf9b 100644
--- a/scripts/expertise/expertise_bh_survival_instinct_1.py
+++ b/scripts/expertise/expertise_bh_survival_instinct_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_survival_instinct_1')
-
- actor.addSkillMod('expertise_cooldown_line_sh', 20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_survival_instinct_1')
-
- actor.removeSkillMod('expertise_cooldown_line_sh', 20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_survival_instinct_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_survival_instinct_1")
return
diff --git a/scripts/expertise/expertise_bh_survival_instinct_2.py b/scripts/expertise/expertise_bh_survival_instinct_2.py
index 9fbce1d0..6302e5c0 100644
--- a/scripts/expertise/expertise_bh_survival_instinct_2.py
+++ b/scripts/expertise/expertise_bh_survival_instinct_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_survival_instinct_2')
-
- actor.addSkillMod('expertise_cooldown_line_sh', 20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_survival_instinct_2')
-
- actor.removeSkillMod('expertise_cooldown_line_sh', 20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_survival_instinct_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_survival_instinct_2")
return
diff --git a/scripts/expertise/expertise_bh_taunt_1.py b/scripts/expertise/expertise_bh_taunt_1.py
index 9fa48b82..31dc085e 100644
--- a/scripts/expertise/expertise_bh_taunt_1.py
+++ b/scripts/expertise/expertise_bh_taunt_1.py
@@ -1,48 +1,25 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_taunt_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_taunt_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bh_taunt_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("bh_taunt_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("bh_taunt_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("bh_taunt_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("bh_taunt_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("bh_taunt_5")
+ if actor.getLevel() >= 90:
+ actor.addAbility("bh_taunt_6")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bh_taunt_1')
-
+ actor.removeAbility("bh_taunt_1")
+ actor.removeAbility("bh_taunt_2")
+ actor.removeAbility("bh_taunt_3")
+ actor.removeAbility("bh_taunt_4")
+ actor.removeAbility("bh_taunt_5")
+ actor.removeAbility("bh_taunt_6")
return
diff --git a/scripts/expertise/expertise_bh_trap_dam_1.py b/scripts/expertise/expertise_bh_trap_dam_1.py
index debbc5b2..c3ec4563 100644
--- a/scripts/expertise/expertise_bh_trap_dam_1.py
+++ b/scripts/expertise/expertise_bh_trap_dam_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_trap_dam_1')
-
- actor.addSkillMod('expertise_damage_line_dm_cc', 5)
- actor.addSkillMod('expertise_action_line_dm_cc', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_trap_dam_1')
-
- actor.removeSkillMod('expertise_damage_line_dm_cc', 5)
- actor.removeSkillMod('expertise_action_line_dm_cc', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_trap_dam_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_trap_dam_1")
return
diff --git a/scripts/expertise/expertise_bh_trap_dam_2.py b/scripts/expertise/expertise_bh_trap_dam_2.py
index 34f1cfa9..7e4066c6 100644
--- a/scripts/expertise/expertise_bh_trap_dam_2.py
+++ b/scripts/expertise/expertise_bh_trap_dam_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_trap_dam_2')
-
- actor.addSkillMod('expertise_damage_line_dm_cc', 5)
- actor.addSkillMod('expertise_action_line_dm_cc', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_trap_dam_2')
-
- actor.removeSkillMod('expertise_damage_line_dm_cc', 5)
- actor.removeSkillMod('expertise_action_line_dm_cc', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_trap_dam_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_trap_dam_2")
return
diff --git a/scripts/expertise/expertise_bh_trap_dam_3.py b/scripts/expertise/expertise_bh_trap_dam_3.py
index d8df37c2..27207b90 100644
--- a/scripts/expertise/expertise_bh_trap_dam_3.py
+++ b/scripts/expertise/expertise_bh_trap_dam_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_trap_dam_3')
-
- actor.addSkillMod('expertise_damage_line_dm_cc', 5)
- actor.addSkillMod('expertise_action_line_dm_cc', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_trap_dam_3')
-
- actor.removeSkillMod('expertise_damage_line_dm_cc', 5)
- actor.removeSkillMod('expertise_action_line_dm_cc', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_trap_dam_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_trap_dam_3")
return
diff --git a/scripts/expertise/expertise_bh_trap_dam_4.py b/scripts/expertise/expertise_bh_trap_dam_4.py
index 895fa7ed..7caad822 100644
--- a/scripts/expertise/expertise_bh_trap_dam_4.py
+++ b/scripts/expertise/expertise_bh_trap_dam_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_trap_dam_4')
-
- actor.addSkillMod('expertise_damage_line_dm_cc', 5)
- actor.addSkillMod('expertise_action_line_dm_cc', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_trap_dam_4')
-
- actor.removeSkillMod('expertise_damage_line_dm_cc', 5)
- actor.removeSkillMod('expertise_action_line_dm_cc', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_trap_dam_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_trap_dam_4")
return
diff --git a/scripts/expertise/expertise_bh_trap_duration_1.py b/scripts/expertise/expertise_bh_trap_duration_1.py
index a24b5591..77c4e203 100644
--- a/scripts/expertise/expertise_bh_trap_duration_1.py
+++ b/scripts/expertise/expertise_bh_trap_duration_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_trap_duration_1')
-
- actor.addSkillMod('expertise_buff_duration_group_snare', 1)
- actor.addSkillMod('expertise_cooldown_line_dm_cc', 20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_trap_duration_1')
-
- actor.removeSkillMod('expertise_buff_duration_group_snare', 1)
- actor.removeSkillMod('expertise_cooldown_line_dm_cc', 20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_trap_duration_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_trap_duration_1")
return
diff --git a/scripts/expertise/expertise_bh_trap_duration_2.py b/scripts/expertise/expertise_bh_trap_duration_2.py
index 4c312043..682f7452 100644
--- a/scripts/expertise/expertise_bh_trap_duration_2.py
+++ b/scripts/expertise/expertise_bh_trap_duration_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_trap_duration_2')
-
- actor.addSkillMod('expertise_buff_duration_group_snare', 1)
- actor.addSkillMod('expertise_cooldown_line_dm_cc', 20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_trap_duration_2')
-
- actor.removeSkillMod('expertise_buff_duration_group_snare', 1)
- actor.removeSkillMod('expertise_cooldown_line_dm_cc', 20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_trap_duration_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_trap_duration_2")
return
diff --git a/scripts/expertise/expertise_bh_trap_duration_3.py b/scripts/expertise/expertise_bh_trap_duration_3.py
index 409ba235..d08b714c 100644
--- a/scripts/expertise/expertise_bh_trap_duration_3.py
+++ b/scripts/expertise/expertise_bh_trap_duration_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_trap_duration_3')
-
- actor.addSkillMod('expertise_buff_duration_group_snare', 1)
- actor.addSkillMod('expertise_cooldown_line_dm_cc', 20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_trap_duration_3')
-
- actor.removeSkillMod('expertise_buff_duration_group_snare', 1)
- actor.removeSkillMod('expertise_cooldown_line_dm_cc', 20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_trap_duration_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_trap_duration_3")
return
diff --git a/scripts/expertise/expertise_bh_trap_rng_1.py b/scripts/expertise/expertise_bh_trap_rng_1.py
index 3da9ced9..74ce4e28 100644
--- a/scripts/expertise/expertise_bh_trap_rng_1.py
+++ b/scripts/expertise/expertise_bh_trap_rng_1.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_trap_rng_1')
-
- actor.addSkillMod('expertise_area_size_line_trap', 1)
- actor.addSkillMod('expertise_area_size_line_diretrap', 1)
- actor.addSkillMod('expertise_action_line_trap', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_trap_rng_1')
-
- actor.removeSkillMod('expertise_area_size_line_trap', 1)
- actor.removeSkillMod('expertise_area_size_line_diretrap', 1)
- actor.removeSkillMod('expertise_action_line_trap', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_trap_rng_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_trap_rng_1")
return
diff --git a/scripts/expertise/expertise_bh_trap_rng_2.py b/scripts/expertise/expertise_bh_trap_rng_2.py
index 0d853136..c3508e35 100644
--- a/scripts/expertise/expertise_bh_trap_rng_2.py
+++ b/scripts/expertise/expertise_bh_trap_rng_2.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.addSkill('expertise_bh_trap_rng_2')
-
- actor.addSkillMod('expertise_area_size_line_trap', 1)
- actor.addSkillMod('expertise_area_size_line_diretrap', 1)
- actor.addSkillMod('expertise_action_line_trap', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'bounty_hunter_1a':
- return
-
- actor.removeSkill('expertise_bh_trap_rng_2')
-
- actor.removeSkillMod('expertise_area_size_line_trap', 1)
- actor.removeSkillMod('expertise_area_size_line_diretrap', 1)
- actor.removeSkillMod('expertise_action_line_trap', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bh_trap_rng_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bh_trap_rng_2")
return
diff --git a/scripts/expertise/expertise_bm_abilility_aquisition_mod_1.py b/scripts/expertise/expertise_bm_abilility_aquisition_mod_1.py
index 5a44b9cb..ad3b81a0 100644
--- a/scripts/expertise/expertise_bm_abilility_aquisition_mod_1.py
+++ b/scripts/expertise/expertise_bm_abilility_aquisition_mod_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_abilility_aquisition_mod_1')
-
- actor.addSkillMod('expertise_bm_enhanced_skill_acquisition', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_abilility_aquisition_mod_1')
-
- actor.removeSkillMod('expertise_bm_enhanced_skill_acquisition', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_abilility_aquisition_mod_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_abilility_aquisition_mod_1")
return
diff --git a/scripts/expertise/expertise_bm_add_first_pet_bar_1.py b/scripts/expertise/expertise_bm_add_first_pet_bar_1.py
index aca29011..e0653096 100644
--- a/scripts/expertise/expertise_bm_add_first_pet_bar_1.py
+++ b/scripts/expertise/expertise_bm_add_first_pet_bar_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_add_first_pet_bar_1')
-
- actor.addSkillMod('expertise_bm_add_pet_bar', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_add_first_pet_bar_1')
-
- actor.removeSkillMod('expertise_bm_add_pet_bar', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_add_first_pet_bar_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_add_first_pet_bar_1")
return
diff --git a/scripts/expertise/expertise_bm_add_second_pet_bar_1.py b/scripts/expertise/expertise_bm_add_second_pet_bar_1.py
index 385f1057..374dae76 100644
--- a/scripts/expertise/expertise_bm_add_second_pet_bar_1.py
+++ b/scripts/expertise/expertise_bm_add_second_pet_bar_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_add_second_pet_bar_1')
-
- actor.addSkillMod('expertise_bm_add_pet_bar', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_add_second_pet_bar_1')
-
- actor.removeSkillMod('expertise_bm_add_pet_bar', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_add_second_pet_bar_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_add_second_pet_bar_1")
return
diff --git a/scripts/expertise/expertise_bm_add_third_pet_bar_1.py b/scripts/expertise/expertise_bm_add_third_pet_bar_1.py
index 607cc8c8..600df6ad 100644
--- a/scripts/expertise/expertise_bm_add_third_pet_bar_1.py
+++ b/scripts/expertise/expertise_bm_add_third_pet_bar_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_add_third_pet_bar_1')
-
- actor.addSkillMod('expertise_bm_add_pet_bar', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_add_third_pet_bar_1')
-
- actor.removeSkillMod('expertise_bm_add_pet_bar', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_add_third_pet_bar_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_add_third_pet_bar_1")
return
diff --git a/scripts/expertise/expertise_bm_attack_1.py b/scripts/expertise/expertise_bm_attack_1.py
index 8b6f795c..798c38cf 100644
--- a/scripts/expertise/expertise_bm_attack_1.py
+++ b/scripts/expertise/expertise_bm_attack_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_attack_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_attack_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bm_pet_attack_1')
-
+ actor.addAbility("bm_pet_attack_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bm_pet_attack_1')
-
+ actor.removeAbility("bm_pet_attack_1")
return
diff --git a/scripts/expertise/expertise_bm_beast_mastery_1.py b/scripts/expertise/expertise_bm_beast_mastery_1.py
index e467a281..b4720a91 100644
--- a/scripts/expertise/expertise_bm_beast_mastery_1.py
+++ b/scripts/expertise/expertise_bm_beast_mastery_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_beast_mastery_1')
-
- actor.addSkillMod('expertise_bm_self_debuff_reduction', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_beast_mastery_1')
-
- actor.removeSkillMod('expertise_bm_self_debuff_reduction', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_beast_mastery_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_beast_mastery_1")
return
diff --git a/scripts/expertise/expertise_bm_creature_knowledge_command_1.py b/scripts/expertise/expertise_bm_creature_knowledge_command_1.py
index 3f50c6cd..602905fc 100644
--- a/scripts/expertise/expertise_bm_creature_knowledge_command_1.py
+++ b/scripts/expertise/expertise_bm_creature_knowledge_command_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_creature_knowledge_command_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_creature_knowledge_command_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bm_creature_knowledge_command_1')
-
+ actor.addAbility("bm_creature_knowledge_command_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bm_creature_knowledge_command_1')
-
+ actor.removeAbility("bm_creature_knowledge_command_1")
return
diff --git a/scripts/expertise/expertise_bm_dexterity_training_1.py b/scripts/expertise/expertise_bm_dexterity_training_1.py
index 4162179d..50a560d4 100644
--- a/scripts/expertise/expertise_bm_dexterity_training_1.py
+++ b/scripts/expertise/expertise_bm_dexterity_training_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_dexterity_training_1')
-
- actor.addSkillMod('expertise_bm_pet_attack_speed', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_dexterity_training_1')
-
- actor.removeSkillMod('expertise_bm_pet_attack_speed', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_dexterity_training_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_dexterity_training_1")
return
diff --git a/scripts/expertise/expertise_bm_dexterity_training_2.py b/scripts/expertise/expertise_bm_dexterity_training_2.py
index f3c66370..ab2527c4 100644
--- a/scripts/expertise/expertise_bm_dexterity_training_2.py
+++ b/scripts/expertise/expertise_bm_dexterity_training_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_dexterity_training_2')
-
- actor.addSkillMod('expertise_bm_pet_attack_speed', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_dexterity_training_2')
-
- actor.removeSkillMod('expertise_bm_pet_attack_speed', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_dexterity_training_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_dexterity_training_2")
return
diff --git a/scripts/expertise/expertise_bm_dna_harvesting_1.py b/scripts/expertise/expertise_bm_dna_harvesting_1.py
index ee8aad65..3f9e6c4c 100644
--- a/scripts/expertise/expertise_bm_dna_harvesting_1.py
+++ b/scripts/expertise/expertise_bm_dna_harvesting_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_dna_harvesting_1')
-
- actor.addSkillMod('expertise_bm_dna_harvesting_1', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_dna_harvesting_1')
-
- actor.removeSkillMod('expertise_bm_dna_harvesting_1', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_dna_harvesting_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_dna_harvesting_1")
return
diff --git a/scripts/expertise/expertise_bm_dna_harvesting_2.py b/scripts/expertise/expertise_bm_dna_harvesting_2.py
index 5c0b2044..0b5cc4fa 100644
--- a/scripts/expertise/expertise_bm_dna_harvesting_2.py
+++ b/scripts/expertise/expertise_bm_dna_harvesting_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_dna_harvesting_2')
-
- actor.addSkillMod('expertise_bm_dna_harvesting_1', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_dna_harvesting_2')
-
- actor.removeSkillMod('expertise_bm_dna_harvesting_1', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_dna_harvesting_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_dna_harvesting_2")
return
diff --git a/scripts/expertise/expertise_bm_dna_harvesting_3.py b/scripts/expertise/expertise_bm_dna_harvesting_3.py
index 3f287f64..2f6fcdfa 100644
--- a/scripts/expertise/expertise_bm_dna_harvesting_3.py
+++ b/scripts/expertise/expertise_bm_dna_harvesting_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_dna_harvesting_3')
-
- actor.addSkillMod('expertise_bm_dna_harvesting_1', 40)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_dna_harvesting_3')
-
- actor.removeSkillMod('expertise_bm_dna_harvesting_1', 40)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_dna_harvesting_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_dna_harvesting_3")
return
diff --git a/scripts/expertise/expertise_bm_erratic_genius_1.py b/scripts/expertise/expertise_bm_erratic_genius_1.py
index ab96d82c..d7ed15a7 100644
--- a/scripts/expertise/expertise_bm_erratic_genius_1.py
+++ b/scripts/expertise/expertise_bm_erratic_genius_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_erratic_genius_1')
-
- actor.addSkillMod('bm_mutation_chance_increase', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_erratic_genius_1')
-
- actor.removeSkillMod('bm_mutation_chance_increase', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_erratic_genius_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_erratic_genius_1")
return
diff --git a/scripts/expertise/expertise_bm_erratic_genius_2.py b/scripts/expertise/expertise_bm_erratic_genius_2.py
index bc4c75ec..6e387fb5 100644
--- a/scripts/expertise/expertise_bm_erratic_genius_2.py
+++ b/scripts/expertise/expertise_bm_erratic_genius_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_erratic_genius_2')
-
- actor.addSkillMod('bm_mutation_chance_increase', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_erratic_genius_2')
-
- actor.removeSkillMod('bm_mutation_chance_increase', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_erratic_genius_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_erratic_genius_2")
return
diff --git a/scripts/expertise/expertise_bm_erratic_genius_3.py b/scripts/expertise/expertise_bm_erratic_genius_3.py
index a0ece6c0..0ee3e98e 100644
--- a/scripts/expertise/expertise_bm_erratic_genius_3.py
+++ b/scripts/expertise/expertise_bm_erratic_genius_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_erratic_genius_3')
-
- actor.addSkillMod('bm_mutation_chance_increase', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_erratic_genius_3')
-
- actor.removeSkillMod('bm_mutation_chance_increase', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_erratic_genius_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_erratic_genius_3")
return
diff --git a/scripts/expertise/expertise_bm_evasion_1.py b/scripts/expertise/expertise_bm_evasion_1.py
index 62f8715c..aa280e26 100644
--- a/scripts/expertise/expertise_bm_evasion_1.py
+++ b/scripts/expertise/expertise_bm_evasion_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_evasion_1')
-
- actor.addSkillMod('expertise_bm_pet_evade_chance', 5)
- actor.addSkillMod('expertise_bm_pet_evade_value', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_evasion_1')
-
- actor.removeSkillMod('expertise_bm_pet_evade_chance', 5)
- actor.removeSkillMod('expertise_bm_pet_evade_value', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_evasion_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_evasion_1")
return
diff --git a/scripts/expertise/expertise_bm_evasion_2.py b/scripts/expertise/expertise_bm_evasion_2.py
index f05946e2..2b7ceac3 100644
--- a/scripts/expertise/expertise_bm_evasion_2.py
+++ b/scripts/expertise/expertise_bm_evasion_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_evasion_2')
-
- actor.addSkillMod('expertise_bm_pet_evade_chance', 5)
- actor.addSkillMod('expertise_bm_pet_evade_value', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_evasion_2')
-
- actor.removeSkillMod('expertise_bm_pet_evade_chance', 5)
- actor.removeSkillMod('expertise_bm_pet_evade_value', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_evasion_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_evasion_2")
return
diff --git a/scripts/expertise/expertise_bm_evasion_3.py b/scripts/expertise/expertise_bm_evasion_3.py
index 84f582e3..6aab14d4 100644
--- a/scripts/expertise/expertise_bm_evasion_3.py
+++ b/scripts/expertise/expertise_bm_evasion_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_evasion_3')
-
- actor.addSkillMod('expertise_bm_pet_evade_chance', 5)
- actor.addSkillMod('expertise_bm_pet_evade_value', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_evasion_3')
-
- actor.removeSkillMod('expertise_bm_pet_evade_chance', 5)
- actor.removeSkillMod('expertise_bm_pet_evade_value', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_evasion_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_evasion_3")
return
diff --git a/scripts/expertise/expertise_bm_exceptional_nutrition_1.py b/scripts/expertise/expertise_bm_exceptional_nutrition_1.py
index dce1b89b..e65b9f1b 100644
--- a/scripts/expertise/expertise_bm_exceptional_nutrition_1.py
+++ b/scripts/expertise/expertise_bm_exceptional_nutrition_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_exceptional_nutrition_1')
-
- actor.addSkillMod('expertise_bm_pet_health', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_exceptional_nutrition_1')
-
- actor.removeSkillMod('expertise_bm_pet_health', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_exceptional_nutrition_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_exceptional_nutrition_1")
return
diff --git a/scripts/expertise/expertise_bm_exceptional_nutrition_2.py b/scripts/expertise/expertise_bm_exceptional_nutrition_2.py
index acd0ed4b..68aa2189 100644
--- a/scripts/expertise/expertise_bm_exceptional_nutrition_2.py
+++ b/scripts/expertise/expertise_bm_exceptional_nutrition_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_exceptional_nutrition_2')
-
- actor.addSkillMod('expertise_bm_pet_health', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_exceptional_nutrition_2')
-
- actor.removeSkillMod('expertise_bm_pet_health', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_exceptional_nutrition_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_exceptional_nutrition_2")
return
diff --git a/scripts/expertise/expertise_bm_fortitude_1.py b/scripts/expertise/expertise_bm_fortitude_1.py
index bb3c54c6..d1f38de7 100644
--- a/scripts/expertise/expertise_bm_fortitude_1.py
+++ b/scripts/expertise/expertise_bm_fortitude_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_fortitude_1')
-
- actor.addSkillMod('expertise_bm_pet_armor', 40)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_fortitude_1')
-
- actor.removeSkillMod('expertise_bm_pet_armor', 40)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_fortitude_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_fortitude_1")
return
diff --git a/scripts/expertise/expertise_bm_fortitude_2.py b/scripts/expertise/expertise_bm_fortitude_2.py
index b04ea1e4..a2a6f76e 100644
--- a/scripts/expertise/expertise_bm_fortitude_2.py
+++ b/scripts/expertise/expertise_bm_fortitude_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_fortitude_2')
-
- actor.addSkillMod('expertise_bm_pet_armor', 40)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_fortitude_2')
-
- actor.removeSkillMod('expertise_bm_pet_armor', 40)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_fortitude_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_fortitude_2")
return
diff --git a/scripts/expertise/expertise_bm_fortitude_3.py b/scripts/expertise/expertise_bm_fortitude_3.py
index 466ebff1..899a6288 100644
--- a/scripts/expertise/expertise_bm_fortitude_3.py
+++ b/scripts/expertise/expertise_bm_fortitude_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_fortitude_3')
-
- actor.addSkillMod('expertise_bm_pet_armor', 40)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_fortitude_3')
-
- actor.removeSkillMod('expertise_bm_pet_armor', 40)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_fortitude_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_fortitude_3")
return
diff --git a/scripts/expertise/expertise_bm_genetic_engineering_1.py b/scripts/expertise/expertise_bm_genetic_engineering_1.py
index 865d8630..e4efece4 100644
--- a/scripts/expertise/expertise_bm_genetic_engineering_1.py
+++ b/scripts/expertise/expertise_bm_genetic_engineering_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_genetic_engineering_1')
-
- actor.addSkillMod('expertise_bm_genetic_engineering', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_genetic_engineering_1')
-
- actor.removeSkillMod('expertise_bm_genetic_engineering', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_genetic_engineering_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_genetic_engineering_1")
return
diff --git a/scripts/expertise/expertise_bm_genetic_engineering_2.py b/scripts/expertise/expertise_bm_genetic_engineering_2.py
index f25e5200..92cded50 100644
--- a/scripts/expertise/expertise_bm_genetic_engineering_2.py
+++ b/scripts/expertise/expertise_bm_genetic_engineering_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_genetic_engineering_2')
-
- actor.addSkillMod('expertise_bm_genetic_engineering', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_genetic_engineering_2')
-
- actor.removeSkillMod('expertise_bm_genetic_engineering', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_genetic_engineering_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_genetic_engineering_2")
return
diff --git a/scripts/expertise/expertise_bm_genetic_engineering_3.py b/scripts/expertise/expertise_bm_genetic_engineering_3.py
index dc3fd5df..a9521b48 100644
--- a/scripts/expertise/expertise_bm_genetic_engineering_3.py
+++ b/scripts/expertise/expertise_bm_genetic_engineering_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_genetic_engineering_3')
-
- actor.addSkillMod('expertise_bm_genetic_engineering', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_genetic_engineering_3')
-
- actor.removeSkillMod('expertise_bm_genetic_engineering', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_genetic_engineering_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_genetic_engineering_3")
return
diff --git a/scripts/expertise/expertise_bm_genetic_engineering_4.py b/scripts/expertise/expertise_bm_genetic_engineering_4.py
index 283f05f2..22c76382 100644
--- a/scripts/expertise/expertise_bm_genetic_engineering_4.py
+++ b/scripts/expertise/expertise_bm_genetic_engineering_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_genetic_engineering_4')
-
- actor.addSkillMod('expertise_bm_genetic_engineering', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_genetic_engineering_4')
-
- actor.removeSkillMod('expertise_bm_genetic_engineering', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_genetic_engineering_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_genetic_engineering_4")
return
diff --git a/scripts/expertise/expertise_bm_improved_healing_1.py b/scripts/expertise/expertise_bm_improved_healing_1.py
index 5f173fcb..9ccb8bbf 100644
--- a/scripts/expertise/expertise_bm_improved_healing_1.py
+++ b/scripts/expertise/expertise_bm_improved_healing_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_improved_healing_1')
-
- actor.addSkillMod('expertise_bm_improved_pet_heal', 20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_improved_healing_1')
-
- actor.removeSkillMod('expertise_bm_improved_pet_heal', 20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_improved_healing_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_improved_healing_1")
return
diff --git a/scripts/expertise/expertise_bm_improved_healing_2.py b/scripts/expertise/expertise_bm_improved_healing_2.py
index d93a6af1..3168a225 100644
--- a/scripts/expertise/expertise_bm_improved_healing_2.py
+++ b/scripts/expertise/expertise_bm_improved_healing_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_improved_healing_2')
-
- actor.addSkillMod('expertise_bm_improved_pet_heal', 20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_improved_healing_2')
-
- actor.removeSkillMod('expertise_bm_improved_pet_heal', 20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_improved_healing_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_improved_healing_2")
return
diff --git a/scripts/expertise/expertise_bm_improved_healing_3.py b/scripts/expertise/expertise_bm_improved_healing_3.py
index 3a61f218..c8cd2102 100644
--- a/scripts/expertise/expertise_bm_improved_healing_3.py
+++ b/scripts/expertise/expertise_bm_improved_healing_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_improved_healing_3')
-
- actor.addSkillMod('expertise_bm_improved_pet_heal', 20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_improved_healing_3')
-
- actor.removeSkillMod('expertise_bm_improved_pet_heal', 20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_improved_healing_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_improved_healing_3")
return
diff --git a/scripts/expertise/expertise_bm_incubation_base_1.py b/scripts/expertise/expertise_bm_incubation_base_1.py
index 9b7a89bc..94b0399b 100644
--- a/scripts/expertise/expertise_bm_incubation_base_1.py
+++ b/scripts/expertise/expertise_bm_incubation_base_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_incubation_base_1')
-
- actor.addSkillMod('expertise_bm_base_mod', 100)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_incubation_base_1')
-
- actor.removeSkillMod('expertise_bm_base_mod', 100)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bm_collect_dna')
-
+ actor.addAbility("bm_collect_dna")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bm_collect_dna')
-
+ actor.removeAbility("bm_collect_dna")
return
diff --git a/scripts/expertise/expertise_bm_incubation_mod_1.py b/scripts/expertise/expertise_bm_incubation_mod_1.py
index 5dcf4b16..b99b1518 100644
--- a/scripts/expertise/expertise_bm_incubation_mod_1.py
+++ b/scripts/expertise/expertise_bm_incubation_mod_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_incubation_mod_1')
-
- actor.addSkillMod('expertise_bm_incubation_quality', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_incubation_mod_1')
-
- actor.removeSkillMod('expertise_bm_incubation_quality', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_incubation_mod_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_incubation_mod_1")
return
diff --git a/scripts/expertise/expertise_bm_incubation_mod_2.py b/scripts/expertise/expertise_bm_incubation_mod_2.py
index 022fdeff..167f2676 100644
--- a/scripts/expertise/expertise_bm_incubation_mod_2.py
+++ b/scripts/expertise/expertise_bm_incubation_mod_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_incubation_mod_2')
-
- actor.addSkillMod('expertise_bm_incubation_quality', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_incubation_mod_2')
-
- actor.removeSkillMod('expertise_bm_incubation_quality', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_incubation_mod_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_incubation_mod_2")
return
diff --git a/scripts/expertise/expertise_bm_incubation_mod_3.py b/scripts/expertise/expertise_bm_incubation_mod_3.py
index 8460e39e..e90a66ee 100644
--- a/scripts/expertise/expertise_bm_incubation_mod_3.py
+++ b/scripts/expertise/expertise_bm_incubation_mod_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_incubation_mod_3')
-
- actor.addSkillMod('expertise_bm_incubation_quality', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_incubation_mod_3')
-
- actor.removeSkillMod('expertise_bm_incubation_quality', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_incubation_mod_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_incubation_mod_3")
return
diff --git a/scripts/expertise/expertise_bm_loyalty_mod_1.py b/scripts/expertise/expertise_bm_loyalty_mod_1.py
index 628987a3..e697ccab 100644
--- a/scripts/expertise/expertise_bm_loyalty_mod_1.py
+++ b/scripts/expertise/expertise_bm_loyalty_mod_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_loyalty_mod_1')
-
- actor.addSkillMod('expertise_bm_pet_happiness', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_loyalty_mod_1')
-
- actor.removeSkillMod('expertise_bm_pet_happiness', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_loyalty_mod_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_loyalty_mod_1")
return
diff --git a/scripts/expertise/expertise_bm_loyalty_mod_2.py b/scripts/expertise/expertise_bm_loyalty_mod_2.py
index f7c57622..94e893a7 100644
--- a/scripts/expertise/expertise_bm_loyalty_mod_2.py
+++ b/scripts/expertise/expertise_bm_loyalty_mod_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_loyalty_mod_2')
-
- actor.addSkillMod('expertise_bm_pet_happiness', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_loyalty_mod_2')
-
- actor.removeSkillMod('expertise_bm_pet_happiness', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_loyalty_mod_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_loyalty_mod_2")
return
diff --git a/scripts/expertise/expertise_bm_loyalty_mod_3.py b/scripts/expertise/expertise_bm_loyalty_mod_3.py
index 255e4b86..a70c5c6b 100644
--- a/scripts/expertise/expertise_bm_loyalty_mod_3.py
+++ b/scripts/expertise/expertise_bm_loyalty_mod_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_loyalty_mod_3')
-
- actor.addSkillMod('expertise_bm_pet_happiness', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_loyalty_mod_3')
-
- actor.removeSkillMod('expertise_bm_pet_happiness', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_loyalty_mod_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_loyalty_mod_3")
return
diff --git a/scripts/expertise/expertise_bm_mending_1.py b/scripts/expertise/expertise_bm_mending_1.py
index f659d061..19f68bf5 100644
--- a/scripts/expertise/expertise_bm_mending_1.py
+++ b/scripts/expertise/expertise_bm_mending_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_mending_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_mending_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bm_mend_pet_1')
-
+ actor.addAbility("bm_mend_pet_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bm_mend_pet_1')
-
+ actor.removeAbility("bm_mend_pet_1")
return
diff --git a/scripts/expertise/expertise_bm_metagame_mod_1.py b/scripts/expertise/expertise_bm_metagame_mod_1.py
index ad8053c1..310506d4 100644
--- a/scripts/expertise/expertise_bm_metagame_mod_1.py
+++ b/scripts/expertise/expertise_bm_metagame_mod_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_metagame_mod_1')
-
- actor.addSkillMod('expertise_bm_incubation_time', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_metagame_mod_1')
-
- actor.removeSkillMod('expertise_bm_incubation_time', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_metagame_mod_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_metagame_mod_1")
return
diff --git a/scripts/expertise/expertise_bm_metagame_mod_2.py b/scripts/expertise/expertise_bm_metagame_mod_2.py
index af8ff1d4..e1138649 100644
--- a/scripts/expertise/expertise_bm_metagame_mod_2.py
+++ b/scripts/expertise/expertise_bm_metagame_mod_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_metagame_mod_2')
-
- actor.addSkillMod('expertise_bm_incubation_time', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_metagame_mod_2')
-
- actor.removeSkillMod('expertise_bm_incubation_time', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_metagame_mod_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_metagame_mod_2")
return
diff --git a/scripts/expertise/expertise_bm_metagame_mod_3.py b/scripts/expertise/expertise_bm_metagame_mod_3.py
index 70409e9c..7b6e0112 100644
--- a/scripts/expertise/expertise_bm_metagame_mod_3.py
+++ b/scripts/expertise/expertise_bm_metagame_mod_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_metagame_mod_3')
-
- actor.addSkillMod('expertise_bm_incubation_time', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_metagame_mod_3')
-
- actor.removeSkillMod('expertise_bm_incubation_time', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_metagame_mod_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_metagame_mod_3")
return
diff --git a/scripts/expertise/expertise_bm_metagame_mod_4.py b/scripts/expertise/expertise_bm_metagame_mod_4.py
index 1e31b545..ffb8090a 100644
--- a/scripts/expertise/expertise_bm_metagame_mod_4.py
+++ b/scripts/expertise/expertise_bm_metagame_mod_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_metagame_mod_4')
-
- actor.addSkillMod('expertise_bm_incubation_time', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_metagame_mod_4')
-
- actor.removeSkillMod('expertise_bm_incubation_time', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_metagame_mod_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_metagame_mod_4")
return
diff --git a/scripts/expertise/expertise_bm_pet_dodge_1.py b/scripts/expertise/expertise_bm_pet_dodge_1.py
index 17868349..fc36117c 100644
--- a/scripts/expertise/expertise_bm_pet_dodge_1.py
+++ b/scripts/expertise/expertise_bm_pet_dodge_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_pet_dodge_1')
-
- actor.addSkillMod('expertise_pet_dodge', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_pet_dodge_1')
-
- actor.removeSkillMod('expertise_pet_dodge', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_pet_dodge_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_pet_dodge_1")
return
diff --git a/scripts/expertise/expertise_bm_pet_dodge_2.py b/scripts/expertise/expertise_bm_pet_dodge_2.py
index 9a6766ad..2341888c 100644
--- a/scripts/expertise/expertise_bm_pet_dodge_2.py
+++ b/scripts/expertise/expertise_bm_pet_dodge_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_pet_dodge_2')
-
- actor.addSkillMod('expertise_pet_dodge', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_pet_dodge_2')
-
- actor.removeSkillMod('expertise_pet_dodge', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_pet_dodge_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_pet_dodge_2")
return
diff --git a/scripts/expertise/expertise_bm_pet_dodge_3.py b/scripts/expertise/expertise_bm_pet_dodge_3.py
index 6166d92b..c9a97d17 100644
--- a/scripts/expertise/expertise_bm_pet_dodge_3.py
+++ b/scripts/expertise/expertise_bm_pet_dodge_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_pet_dodge_3')
-
- actor.addSkillMod('expertise_pet_dodge', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_pet_dodge_3')
-
- actor.removeSkillMod('expertise_pet_dodge', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_pet_dodge_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_pet_dodge_3")
return
diff --git a/scripts/expertise/expertise_bm_pet_recovery_1.py b/scripts/expertise/expertise_bm_pet_recovery_1.py
index 5ecf5f40..1a956cf2 100644
--- a/scripts/expertise/expertise_bm_pet_recovery_1.py
+++ b/scripts/expertise/expertise_bm_pet_recovery_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_pet_recovery_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_pet_recovery_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_pet_recovery_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_pet_recovery_1")
return
diff --git a/scripts/expertise/expertise_bm_pet_recovery_2.py b/scripts/expertise/expertise_bm_pet_recovery_2.py
index ddbf4dae..41c09b07 100644
--- a/scripts/expertise/expertise_bm_pet_recovery_2.py
+++ b/scripts/expertise/expertise_bm_pet_recovery_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_pet_recovery_2')
-
- actor.addSkillMod('expertise_bm_pet_revive_time', 5)
- actor.addSkillMod('expertise_bm_pet_recovery', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_pet_recovery_2')
-
- actor.removeSkillMod('expertise_bm_pet_revive_time', 5)
- actor.removeSkillMod('expertise_bm_pet_recovery', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_pet_recovery_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_pet_recovery_2")
return
diff --git a/scripts/expertise/expertise_bm_pet_recovery_3.py b/scripts/expertise/expertise_bm_pet_recovery_3.py
index 9be05560..36413c3c 100644
--- a/scripts/expertise/expertise_bm_pet_recovery_3.py
+++ b/scripts/expertise/expertise_bm_pet_recovery_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_pet_recovery_3')
-
- actor.addSkillMod('expertise_bm_pet_revive_time', 5)
- actor.addSkillMod('expertise_bm_pet_recovery', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_pet_recovery_3')
-
- actor.removeSkillMod('expertise_bm_pet_revive_time', 5)
- actor.removeSkillMod('expertise_bm_pet_recovery', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_pet_recovery_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_pet_recovery_3")
return
diff --git a/scripts/expertise/expertise_bm_savagery_1.py b/scripts/expertise/expertise_bm_savagery_1.py
index 7315df92..27f21562 100644
--- a/scripts/expertise/expertise_bm_savagery_1.py
+++ b/scripts/expertise/expertise_bm_savagery_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_savagery_1')
-
- actor.addSkillMod('expertise_bm_pet_damage', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_savagery_1')
-
- actor.removeSkillMod('expertise_bm_pet_damage', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_savagery_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_savagery_1")
return
diff --git a/scripts/expertise/expertise_bm_savagery_2.py b/scripts/expertise/expertise_bm_savagery_2.py
index 31e83042..09c606de 100644
--- a/scripts/expertise/expertise_bm_savagery_2.py
+++ b/scripts/expertise/expertise_bm_savagery_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_savagery_2')
-
- actor.addSkillMod('expertise_bm_pet_damage', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_savagery_2')
-
- actor.removeSkillMod('expertise_bm_pet_damage', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_savagery_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_savagery_2")
return
diff --git a/scripts/expertise/expertise_bm_savagery_3.py b/scripts/expertise/expertise_bm_savagery_3.py
index c5619d8d..775c9484 100644
--- a/scripts/expertise/expertise_bm_savagery_3.py
+++ b/scripts/expertise/expertise_bm_savagery_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_savagery_3')
-
- actor.addSkillMod('expertise_bm_pet_damage', 40)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_savagery_3')
-
- actor.removeSkillMod('expertise_bm_pet_damage', 40)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_savagery_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_savagery_3")
return
diff --git a/scripts/expertise/expertise_bm_soothing_comfort_1.py b/scripts/expertise/expertise_bm_soothing_comfort_1.py
index 543104f4..53dff95c 100644
--- a/scripts/expertise/expertise_bm_soothing_comfort_1.py
+++ b/scripts/expertise/expertise_bm_soothing_comfort_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_soothing_comfort_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_soothing_comfort_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('bm_soothing_comfort_1')
-
+ actor.addAbility("bm_soothing_comfort_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('bm_soothing_comfort_1')
-
+ actor.removeAbility("bm_soothing_comfort_1")
return
diff --git a/scripts/expertise/expertise_bm_specialized_supplements_1.py b/scripts/expertise/expertise_bm_specialized_supplements_1.py
index 4506f29e..0ea96000 100644
--- a/scripts/expertise/expertise_bm_specialized_supplements_1.py
+++ b/scripts/expertise/expertise_bm_specialized_supplements_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.addSkill('expertise_bm_specialized_supplements_1')
-
- actor.addSkillMod('expertise_bm_pet_regen', 100)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'all_1a':
- return
-
- actor.removeSkill('expertise_bm_specialized_supplements_1')
-
- actor.removeSkillMod('expertise_bm_pet_regen', 100)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_bm_specialized_supplements_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_bm_specialized_supplements_1")
return
diff --git a/scripts/expertise/expertise_co_angled_shrapnel_1.py b/scripts/expertise/expertise_co_angled_shrapnel_1.py
index 0b649f92..c2e3f8ce 100644
--- a/scripts/expertise/expertise_co_angled_shrapnel_1.py
+++ b/scripts/expertise/expertise_co_angled_shrapnel_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_angled_shrapnel_1')
-
- actor.addSkillMod('expertise_area_size_line_co_remote_detonator', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_angled_shrapnel_1')
-
- actor.removeSkillMod('expertise_area_size_line_co_remote_detonator', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_angled_shrapnel_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_angled_shrapnel_1")
return
diff --git a/scripts/expertise/expertise_co_angled_shrapnel_2.py b/scripts/expertise/expertise_co_angled_shrapnel_2.py
index a8801a55..48f5c250 100644
--- a/scripts/expertise/expertise_co_angled_shrapnel_2.py
+++ b/scripts/expertise/expertise_co_angled_shrapnel_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_angled_shrapnel_2')
-
- actor.addSkillMod('expertise_area_size_line_co_remote_detonator', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_angled_shrapnel_2')
-
- actor.removeSkillMod('expertise_area_size_line_co_remote_detonator', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_angled_shrapnel_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_angled_shrapnel_2")
return
diff --git a/scripts/expertise/expertise_co_armor_cracker_1.py b/scripts/expertise/expertise_co_armor_cracker_1.py
index fe7606f0..5843c904 100644
--- a/scripts/expertise/expertise_co_armor_cracker_1.py
+++ b/scripts/expertise/expertise_co_armor_cracker_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_armor_cracker_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_armor_cracker_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('co_armor_cracker')
-
+ actor.addAbility("co_armor_cracker")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('co_armor_cracker')
-
+ actor.removeAbility("co_armor_cracker")
return
diff --git a/scripts/expertise/expertise_co_base_of_operations_1.py b/scripts/expertise/expertise_co_base_of_operations_1.py
index 34f5548a..1e406802 100644
--- a/scripts/expertise/expertise_co_base_of_operations_1.py
+++ b/scripts/expertise/expertise_co_base_of_operations_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_base_of_operations_1')
-
- actor.addSkillMod('expertise_co_pos_secured_line_armor', 1000)
- actor.addSkillMod('expertise_co_pos_secured_line_boo_critical', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_base_of_operations_1')
-
- actor.removeSkillMod('expertise_co_pos_secured_line_armor', 1000)
- actor.removeSkillMod('expertise_co_pos_secured_line_boo_critical', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_base_of_operations_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_base_of_operations_1")
return
diff --git a/scripts/expertise/expertise_co_blast_radius_1.py b/scripts/expertise/expertise_co_blast_radius_1.py
index f9c87cc7..1dab9e96 100644
--- a/scripts/expertise/expertise_co_blast_radius_1.py
+++ b/scripts/expertise/expertise_co_blast_radius_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_blast_radius_1')
-
- actor.addSkillMod('expertise_area_size_line_co_grenade', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_blast_radius_1')
-
- actor.removeSkillMod('expertise_area_size_line_co_grenade', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_blast_radius_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_blast_radius_1")
return
diff --git a/scripts/expertise/expertise_co_blast_radius_2.py b/scripts/expertise/expertise_co_blast_radius_2.py
index c640ac02..3cc739c8 100644
--- a/scripts/expertise/expertise_co_blast_radius_2.py
+++ b/scripts/expertise/expertise_co_blast_radius_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_blast_radius_2')
-
- actor.addSkillMod('expertise_area_size_line_co_grenade', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_blast_radius_2')
-
- actor.removeSkillMod('expertise_area_size_line_co_grenade', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_blast_radius_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_blast_radius_2")
return
diff --git a/scripts/expertise/expertise_co_blast_radius_3.py b/scripts/expertise/expertise_co_blast_radius_3.py
index d4263326..d87f0a4b 100644
--- a/scripts/expertise/expertise_co_blast_radius_3.py
+++ b/scripts/expertise/expertise_co_blast_radius_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_blast_radius_3')
-
- actor.addSkillMod('expertise_area_size_line_co_grenade', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_blast_radius_3')
-
- actor.removeSkillMod('expertise_area_size_line_co_grenade', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_blast_radius_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_blast_radius_3")
return
diff --git a/scripts/expertise/expertise_co_blast_radius_4.py b/scripts/expertise/expertise_co_blast_radius_4.py
index 64490261..99d44c0c 100644
--- a/scripts/expertise/expertise_co_blast_radius_4.py
+++ b/scripts/expertise/expertise_co_blast_radius_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_blast_radius_4')
-
- actor.addSkillMod('expertise_area_size_line_co_grenade', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_blast_radius_4')
-
- actor.removeSkillMod('expertise_area_size_line_co_grenade', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_blast_radius_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_blast_radius_4")
return
diff --git a/scripts/expertise/expertise_co_blast_resistance_1.py b/scripts/expertise/expertise_co_blast_resistance_1.py
index 8aff3074..d4b76bda 100644
--- a/scripts/expertise/expertise_co_blast_resistance_1.py
+++ b/scripts/expertise/expertise_co_blast_resistance_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_blast_resistance_1')
-
- actor.addSkillMod('area_damage_resist_full_percentage', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_blast_resistance_1')
-
- actor.removeSkillMod('area_damage_resist_full_percentage', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_blast_resistance_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_blast_resistance_1")
return
diff --git a/scripts/expertise/expertise_co_blast_resistance_2.py b/scripts/expertise/expertise_co_blast_resistance_2.py
index 7efcf286..6596c815 100644
--- a/scripts/expertise/expertise_co_blast_resistance_2.py
+++ b/scripts/expertise/expertise_co_blast_resistance_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_blast_resistance_2')
-
- actor.addSkillMod('area_damage_resist_full_percentage', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_blast_resistance_2')
-
- actor.removeSkillMod('area_damage_resist_full_percentage', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_blast_resistance_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_blast_resistance_2")
return
diff --git a/scripts/expertise/expertise_co_blast_resistance_3.py b/scripts/expertise/expertise_co_blast_resistance_3.py
index 57b839ca..8a5b7bc9 100644
--- a/scripts/expertise/expertise_co_blast_resistance_3.py
+++ b/scripts/expertise/expertise_co_blast_resistance_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_blast_resistance_3')
-
- actor.addSkillMod('area_damage_resist_full_percentage', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_blast_resistance_3')
-
- actor.removeSkillMod('area_damage_resist_full_percentage', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_blast_resistance_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_blast_resistance_3")
return
diff --git a/scripts/expertise/expertise_co_blast_resistance_4.py b/scripts/expertise/expertise_co_blast_resistance_4.py
index 08838e5a..c046b643 100644
--- a/scripts/expertise/expertise_co_blast_resistance_4.py
+++ b/scripts/expertise/expertise_co_blast_resistance_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_blast_resistance_4')
-
- actor.addSkillMod('area_damage_resist_full_percentage', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_blast_resistance_4')
-
- actor.removeSkillMod('area_damage_resist_full_percentage', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_blast_resistance_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_blast_resistance_4")
return
diff --git a/scripts/expertise/expertise_co_blow_em_away_1.py b/scripts/expertise/expertise_co_blow_em_away_1.py
index 829d7e74..3880d17d 100644
--- a/scripts/expertise/expertise_co_blow_em_away_1.py
+++ b/scripts/expertise/expertise_co_blow_em_away_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_blow_em_away_1')
-
- actor.addSkillMod('expertise_co_cluster_bomblet', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_blow_em_away_1')
-
- actor.removeSkillMod('expertise_co_cluster_bomblet', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_blow_em_away_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_blow_em_away_1")
return
diff --git a/scripts/expertise/expertise_co_blow_em_away_2.py b/scripts/expertise/expertise_co_blow_em_away_2.py
index 59dc0e4e..11ca839c 100644
--- a/scripts/expertise/expertise_co_blow_em_away_2.py
+++ b/scripts/expertise/expertise_co_blow_em_away_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_blow_em_away_2')
-
- actor.addSkillMod('expertise_co_cluster_bomblet', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_blow_em_away_2')
-
- actor.removeSkillMod('expertise_co_cluster_bomblet', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_blow_em_away_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_blow_em_away_2")
return
diff --git a/scripts/expertise/expertise_co_burst_fire_1.py b/scripts/expertise/expertise_co_burst_fire_1.py
index f627677e..0522e875 100644
--- a/scripts/expertise/expertise_co_burst_fire_1.py
+++ b/scripts/expertise/expertise_co_burst_fire_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_burst_fire_1')
-
- actor.addSkillMod('expertise_co_pos_secured_line_burst_fire_proc', 10)
- actor.addSkillMod('expertise_co_pos_secured_line_burst_fire_devastation_bonus', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_burst_fire_1')
-
- actor.removeSkillMod('expertise_co_pos_secured_line_burst_fire_proc', 10)
- actor.removeSkillMod('expertise_co_pos_secured_line_burst_fire_devastation_bonus', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_burst_fire_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_burst_fire_1")
return
diff --git a/scripts/expertise/expertise_co_burst_fire_2.py b/scripts/expertise/expertise_co_burst_fire_2.py
index ac874237..952ff386 100644
--- a/scripts/expertise/expertise_co_burst_fire_2.py
+++ b/scripts/expertise/expertise_co_burst_fire_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_burst_fire_2')
-
- actor.addSkillMod('expertise_co_pos_secured_line_burst_fire_proc', 10)
- actor.addSkillMod('expertise_co_pos_secured_line_burst_fire_devastation_bonus', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_burst_fire_2')
-
- actor.removeSkillMod('expertise_co_pos_secured_line_burst_fire_proc', 10)
- actor.removeSkillMod('expertise_co_pos_secured_line_burst_fire_devastation_bonus', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_burst_fire_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_burst_fire_2")
return
diff --git a/scripts/expertise/expertise_co_cluster_bomb.py b/scripts/expertise/expertise_co_cluster_bomb.py
index 410e0121..5e7a8f05 100644
--- a/scripts/expertise/expertise_co_cluster_bomb.py
+++ b/scripts/expertise/expertise_co_cluster_bomb.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_cluster_bomb')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_cluster_bomb')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('co_cluster_bomb')
-
+ actor.addAbility("co_cluster_bomb")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('co_cluster_bomb')
-
+ actor.removeAbility("co_cluster_bomb")
return
diff --git a/scripts/expertise/expertise_co_deflective_armor_1.py b/scripts/expertise/expertise_co_deflective_armor_1.py
index 540653a9..52b523c5 100644
--- a/scripts/expertise/expertise_co_deflective_armor_1.py
+++ b/scripts/expertise/expertise_co_deflective_armor_1.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_deflective_armor_1')
-
- actor.addSkillMod('damage_decrease_percentage', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_deflective_armor_1')
-
- actor.removeSkillMod('damage_decrease_percentage', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_deflective_armor_1")
return
-
+
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_deflective_armor_1")
return
-
\ No newline at end of file
diff --git a/scripts/expertise/expertise_co_deflective_armor_2.py b/scripts/expertise/expertise_co_deflective_armor_2.py
index 0204a191..2ece0722 100644
--- a/scripts/expertise/expertise_co_deflective_armor_2.py
+++ b/scripts/expertise/expertise_co_deflective_armor_2.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_deflective_armor_2')
-
- actor.addSkillMod('damage_decrease_percentage', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_deflective_armor_2')
-
- actor.removeSkillMod('damage_decrease_percentage', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_deflective_armor_2")
return
-
+
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_deflective_armor_2")
return
-
\ No newline at end of file
diff --git a/scripts/expertise/expertise_co_deflective_armor_3.py b/scripts/expertise/expertise_co_deflective_armor_3.py
index 65870a67..245175f4 100644
--- a/scripts/expertise/expertise_co_deflective_armor_3.py
+++ b/scripts/expertise/expertise_co_deflective_armor_3.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_deflective_armor_3')
-
- actor.addSkillMod('damage_decrease_percentage', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_deflective_armor_3')
-
- actor.removeSkillMod('damage_decrease_percentage', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_deflective_armor_3")
return
-
+
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_deflective_armor_3")
return
-
\ No newline at end of file
diff --git a/scripts/expertise/expertise_co_deflective_armor_4.py b/scripts/expertise/expertise_co_deflective_armor_4.py
index 94d853ef..e3e5d15f 100644
--- a/scripts/expertise/expertise_co_deflective_armor_4.py
+++ b/scripts/expertise/expertise_co_deflective_armor_4.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_deflective_armor_4')
-
- actor.addSkillMod('damage_decrease_percentage', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_deflective_armor_4')
-
- actor.removeSkillMod('damage_decrease_percentage', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_deflective_armor_4")
return
-
+
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_deflective_armor_4")
return
-
\ No newline at end of file
diff --git a/scripts/expertise/expertise_co_diagnostic_armor_1.py b/scripts/expertise/expertise_co_diagnostic_armor_1.py
index 5eaac3ad..974a3234 100644
--- a/scripts/expertise/expertise_co_diagnostic_armor_1.py
+++ b/scripts/expertise/expertise_co_diagnostic_armor_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_diagnostic_armor_1')
-
- actor.addSkillMod('expertise_dot_absorption_all', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_diagnostic_armor_1')
-
- actor.removeSkillMod('expertise_dot_absorption_all', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_diagnostic_armor_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_diagnostic_armor_1")
return
diff --git a/scripts/expertise/expertise_co_enhanced_constitution_1.py b/scripts/expertise/expertise_co_enhanced_constitution_1.py
index 8b70e62a..f2320188 100644
--- a/scripts/expertise/expertise_co_enhanced_constitution_1.py
+++ b/scripts/expertise/expertise_co_enhanced_constitution_1.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_enhanced_constitution_1')
-
- actor.addSkillMod('constitution_modified', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_enhanced_constitution_1')
-
- actor.removeSkillMod('constitution_modified', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_enhanced_constitution_1")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_enhanced_constitution_1")
return
-
diff --git a/scripts/expertise/expertise_co_enhanced_constitution_2.py b/scripts/expertise/expertise_co_enhanced_constitution_2.py
index e6933f70..4afc434d 100644
--- a/scripts/expertise/expertise_co_enhanced_constitution_2.py
+++ b/scripts/expertise/expertise_co_enhanced_constitution_2.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_enhanced_constitution_2')
-
- actor.addSkillMod('constitution_modified', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_enhanced_constitution_2')
-
- actor.removeSkillMod('constitution_modified', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_enhanced_constitution_2")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_enhanced_constitution_2")
return
-
diff --git a/scripts/expertise/expertise_co_enhanced_fuel_cans_1.py b/scripts/expertise/expertise_co_enhanced_fuel_cans_1.py
index a05bf5ea..58cfa70c 100644
--- a/scripts/expertise/expertise_co_enhanced_fuel_cans_1.py
+++ b/scripts/expertise/expertise_co_enhanced_fuel_cans_1.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_enhanced_fuel_cans_1')
-
- actor.addSkillMod('expertise_action_weapon_12', 5)
- actor.addSkillMod('expertise_action_weapon_13', 5)
- actor.addSkillMod('commando_passive_dot', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_enhanced_fuel_cans_1')
-
- actor.removeSkillMod('expertise_action_weapon_12', 5)
- actor.removeSkillMod('expertise_action_weapon_13', 5)
- actor.removeSkillMod('commando_passive_dot', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_enhanced_fuel_cans_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_enhanced_fuel_cans_1")
return
diff --git a/scripts/expertise/expertise_co_enhanced_fuel_cans_2.py b/scripts/expertise/expertise_co_enhanced_fuel_cans_2.py
index 1a4a142d..f4449372 100644
--- a/scripts/expertise/expertise_co_enhanced_fuel_cans_2.py
+++ b/scripts/expertise/expertise_co_enhanced_fuel_cans_2.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_enhanced_fuel_cans_2')
-
- actor.addSkillMod('expertise_action_weapon_12', 5)
- actor.addSkillMod('expertise_action_weapon_13', 5)
- actor.addSkillMod('commando_passive_dot', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_enhanced_fuel_cans_2')
-
- actor.removeSkillMod('expertise_action_weapon_12', 5)
- actor.removeSkillMod('expertise_action_weapon_13', 5)
- actor.removeSkillMod('commando_passive_dot', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_enhanced_fuel_cans_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_enhanced_fuel_cans_2")
return
diff --git a/scripts/expertise/expertise_co_enhanced_fuel_cans_3.py b/scripts/expertise/expertise_co_enhanced_fuel_cans_3.py
index 9b8ca94a..9b4f7cd1 100644
--- a/scripts/expertise/expertise_co_enhanced_fuel_cans_3.py
+++ b/scripts/expertise/expertise_co_enhanced_fuel_cans_3.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_enhanced_fuel_cans_3')
-
- actor.addSkillMod('expertise_action_weapon_12', 5)
- actor.addSkillMod('expertise_action_weapon_13', 5)
- actor.addSkillMod('commando_passive_dot', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_enhanced_fuel_cans_3')
-
- actor.removeSkillMod('expertise_action_weapon_12', 5)
- actor.removeSkillMod('expertise_action_weapon_13', 5)
- actor.removeSkillMod('commando_passive_dot', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_enhanced_fuel_cans_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_enhanced_fuel_cans_3")
return
diff --git a/scripts/expertise/expertise_co_enhanced_fuel_cans_4.py b/scripts/expertise/expertise_co_enhanced_fuel_cans_4.py
index df5fd47f..ab78cd77 100644
--- a/scripts/expertise/expertise_co_enhanced_fuel_cans_4.py
+++ b/scripts/expertise/expertise_co_enhanced_fuel_cans_4.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_enhanced_fuel_cans_4')
-
- actor.addSkillMod('expertise_action_weapon_12', 5)
- actor.addSkillMod('expertise_action_weapon_13', 5)
- actor.addSkillMod('commando_passive_dot', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_enhanced_fuel_cans_4')
-
- actor.removeSkillMod('expertise_action_weapon_12', 5)
- actor.removeSkillMod('expertise_action_weapon_13', 5)
- actor.removeSkillMod('commando_passive_dot', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_enhanced_fuel_cans_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_enhanced_fuel_cans_4")
return
diff --git a/scripts/expertise/expertise_co_enhanced_precision_1.py b/scripts/expertise/expertise_co_enhanced_precision_1.py
index 8d018a05..250e6d10 100644
--- a/scripts/expertise/expertise_co_enhanced_precision_1.py
+++ b/scripts/expertise/expertise_co_enhanced_precision_1.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_enhanced_precision_1')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_enhanced_precision_1')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_enhanced_precision_1")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_enhanced_precision_1")
return
-
diff --git a/scripts/expertise/expertise_co_enhanced_precision_2.py b/scripts/expertise/expertise_co_enhanced_precision_2.py
index d8a8f30b..7d965d8c 100644
--- a/scripts/expertise/expertise_co_enhanced_precision_2.py
+++ b/scripts/expertise/expertise_co_enhanced_precision_2.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_enhanced_precision_2')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_enhanced_precision_2')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_enhanced_precision_2")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_enhanced_precision_2")
return
diff --git a/scripts/expertise/expertise_co_enhanced_stamina_1.py b/scripts/expertise/expertise_co_enhanced_stamina_1.py
index 4de92218..cbdb7744 100644
--- a/scripts/expertise/expertise_co_enhanced_stamina_1.py
+++ b/scripts/expertise/expertise_co_enhanced_stamina_1.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_enhanced_stamina_1')
-
- actor.addSkillMod('stamina_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_enhanced_stamina_1')
-
- actor.removeSkillMod('stamina_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_enhanced_stamina_1")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_enhanced_stamina_1")
return
-
diff --git a/scripts/expertise/expertise_co_enhanced_stamina_2.py b/scripts/expertise/expertise_co_enhanced_stamina_2.py
index 7ab0b25a..5afc8f93 100644
--- a/scripts/expertise/expertise_co_enhanced_stamina_2.py
+++ b/scripts/expertise/expertise_co_enhanced_stamina_2.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_enhanced_stamina_2')
-
- actor.addSkillMod('stamina_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_enhanced_stamina_2')
-
- actor.removeSkillMod('stamina_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_enhanced_stamina_2")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_enhanced_stamina_2")
return
diff --git a/scripts/expertise/expertise_co_flashbang_1.py b/scripts/expertise/expertise_co_flashbang_1.py
index 5408fa91..74b642c1 100644
--- a/scripts/expertise/expertise_co_flashbang_1.py
+++ b/scripts/expertise/expertise_co_flashbang_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_flashbang_1')
-
- actor.addSkillMod('expertise_co_flash_bang', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_flashbang_1')
-
- actor.removeSkillMod('expertise_co_flash_bang', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_flashbang_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_flashbang_1")
return
diff --git a/scripts/expertise/expertise_co_flashbang_2.py b/scripts/expertise/expertise_co_flashbang_2.py
index 806107a1..bad49ff3 100644
--- a/scripts/expertise/expertise_co_flashbang_2.py
+++ b/scripts/expertise/expertise_co_flashbang_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_flashbang_2')
-
- actor.addSkillMod('expertise_co_flash_bang', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_flashbang_2')
-
- actor.removeSkillMod('expertise_co_flash_bang', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_flashbang_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_flashbang_2")
return
diff --git a/scripts/expertise/expertise_co_focus_beam_1.py b/scripts/expertise/expertise_co_focus_beam_1.py
index b74caea5..0dec8d0a 100644
--- a/scripts/expertise/expertise_co_focus_beam_1.py
+++ b/scripts/expertise/expertise_co_focus_beam_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_focus_beam_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_focus_beam_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('co_hw_dm_1')
-
+ actor.addAbility("co_hw_dm_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('co_hw_dm_1')
-
+ actor.removeAbility("co_hw_dm_1")
return
diff --git a/scripts/expertise/expertise_co_general_enhanced_luck_1.py b/scripts/expertise/expertise_co_general_enhanced_luck_1.py
index 6f6319ab..8f303625 100644
--- a/scripts/expertise/expertise_co_general_enhanced_luck_1.py
+++ b/scripts/expertise/expertise_co_general_enhanced_luck_1.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_general_enhanced_luck_1')
-
- actor.addSkillMod('luck_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_general_enhanced_luck_1')
-
- actor.removeSkillMod('luck_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_general_enhanced_luck_1")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_general_enhanced_luck_1")
return
-
diff --git a/scripts/expertise/expertise_co_general_enhanced_luck_2.py b/scripts/expertise/expertise_co_general_enhanced_luck_2.py
index 2e626644..598a9a1d 100644
--- a/scripts/expertise/expertise_co_general_enhanced_luck_2.py
+++ b/scripts/expertise/expertise_co_general_enhanced_luck_2.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_general_enhanced_luck_2')
-
- actor.addSkillMod('luck_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_general_enhanced_luck_2')
-
- actor.removeSkillMod('luck_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_general_enhanced_luck_2")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_general_enhanced_luck_2")
return
-
diff --git a/scripts/expertise/expertise_co_heavy_ammunition_1.py b/scripts/expertise/expertise_co_heavy_ammunition_1.py
index 86e9e6d5..90f370b1 100644
--- a/scripts/expertise/expertise_co_heavy_ammunition_1.py
+++ b/scripts/expertise/expertise_co_heavy_ammunition_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_heavy_ammunition_1')
-
- actor.addSkillMod('expertise_damage_weapon_0', 2)
- actor.addSkillMod('expertise_damage_weapon_1', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_heavy_ammunition_1')
-
- actor.removeSkillMod('expertise_damage_weapon_0', 2)
- actor.removeSkillMod('expertise_damage_weapon_1', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_heavy_ammunition_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_heavy_ammunition_1")
return
diff --git a/scripts/expertise/expertise_co_heavy_ammunition_2.py b/scripts/expertise/expertise_co_heavy_ammunition_2.py
index 82c48ece..cd20a2e4 100644
--- a/scripts/expertise/expertise_co_heavy_ammunition_2.py
+++ b/scripts/expertise/expertise_co_heavy_ammunition_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_heavy_ammunition_2')
-
- actor.addSkillMod('expertise_damage_weapon_0', 2)
- actor.addSkillMod('expertise_damage_weapon_1', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_heavy_ammunition_2')
-
- actor.removeSkillMod('expertise_damage_weapon_0', 2)
- actor.removeSkillMod('expertise_damage_weapon_1', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_heavy_ammunition_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_heavy_ammunition_2")
return
diff --git a/scripts/expertise/expertise_co_heavy_ammunition_3.py b/scripts/expertise/expertise_co_heavy_ammunition_3.py
index c87f41dd..07492f2a 100644
--- a/scripts/expertise/expertise_co_heavy_ammunition_3.py
+++ b/scripts/expertise/expertise_co_heavy_ammunition_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_heavy_ammunition_3')
-
- actor.addSkillMod('expertise_damage_weapon_0', 2)
- actor.addSkillMod('expertise_damage_weapon_1', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_heavy_ammunition_3')
-
- actor.removeSkillMod('expertise_damage_weapon_0', 2)
- actor.removeSkillMod('expertise_damage_weapon_1', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_heavy_ammunition_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_heavy_ammunition_3")
return
diff --git a/scripts/expertise/expertise_co_heavy_ammunition_4.py b/scripts/expertise/expertise_co_heavy_ammunition_4.py
index 20577637..5bbd826a 100644
--- a/scripts/expertise/expertise_co_heavy_ammunition_4.py
+++ b/scripts/expertise/expertise_co_heavy_ammunition_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_heavy_ammunition_4')
-
- actor.addSkillMod('expertise_damage_weapon_0', 2)
- actor.addSkillMod('expertise_damage_weapon_1', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_heavy_ammunition_4')
-
- actor.removeSkillMod('expertise_damage_weapon_0', 2)
- actor.removeSkillMod('expertise_damage_weapon_1', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_heavy_ammunition_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_heavy_ammunition_4")
return
diff --git a/scripts/expertise/expertise_co_hose_down_1.py b/scripts/expertise/expertise_co_hose_down_1.py
index bc6dfcfc..466d938a 100644
--- a/scripts/expertise/expertise_co_hose_down_1.py
+++ b/scripts/expertise/expertise_co_hose_down_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_hose_down_1')
-
- actor.addSkillMod('expertise_action_line_co_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_hose_down_1')
-
- actor.removeSkillMod('expertise_action_line_co_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_hose_down_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_hose_down_1")
return
diff --git a/scripts/expertise/expertise_co_hose_down_2.py b/scripts/expertise/expertise_co_hose_down_2.py
index e4944ff0..5b631478 100644
--- a/scripts/expertise/expertise_co_hose_down_2.py
+++ b/scripts/expertise/expertise_co_hose_down_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_hose_down_2')
-
- actor.addSkillMod('expertise_action_line_co_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_hose_down_2')
-
- actor.removeSkillMod('expertise_action_line_co_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_hose_down_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_hose_down_2")
return
diff --git a/scripts/expertise/expertise_co_imp_position_secured_1.py b/scripts/expertise/expertise_co_imp_position_secured_1.py
index 76c5c253..26286412 100644
--- a/scripts/expertise/expertise_co_imp_position_secured_1.py
+++ b/scripts/expertise/expertise_co_imp_position_secured_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_imp_position_secured_1')
-
- actor.addSkillMod('expertise_action_line_co_imp_pos_sec', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_imp_position_secured_1')
-
- actor.removeSkillMod('expertise_action_line_co_imp_pos_sec', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_imp_position_secured_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_imp_position_secured_1")
return
diff --git a/scripts/expertise/expertise_co_imp_position_secured_2.py b/scripts/expertise/expertise_co_imp_position_secured_2.py
index c4caa65e..2a134cd0 100644
--- a/scripts/expertise/expertise_co_imp_position_secured_2.py
+++ b/scripts/expertise/expertise_co_imp_position_secured_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_imp_position_secured_2')
-
- actor.addSkillMod('expertise_action_line_co_imp_pos_sec', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_imp_position_secured_2')
-
- actor.removeSkillMod('expertise_action_line_co_imp_pos_sec', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_imp_position_secured_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_imp_position_secured_2")
return
diff --git a/scripts/expertise/expertise_co_imp_position_secured_3.py b/scripts/expertise/expertise_co_imp_position_secured_3.py
index eecc94ca..f18a8164 100644
--- a/scripts/expertise/expertise_co_imp_position_secured_3.py
+++ b/scripts/expertise/expertise_co_imp_position_secured_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_imp_position_secured_3')
-
- actor.addSkillMod('expertise_action_line_co_imp_pos_sec', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_imp_position_secured_3')
-
- actor.removeSkillMod('expertise_action_line_co_imp_pos_sec', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_imp_position_secured_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_imp_position_secured_3")
return
diff --git a/scripts/expertise/expertise_co_imp_riddle_armor_1.py b/scripts/expertise/expertise_co_imp_riddle_armor_1.py
index e05eaba7..2c83b9e3 100644
--- a/scripts/expertise/expertise_co_imp_riddle_armor_1.py
+++ b/scripts/expertise/expertise_co_imp_riddle_armor_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_imp_riddle_armor_1')
-
- actor.addSkillMod('expertise_cooldown_line_co_riddle_armor', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_imp_riddle_armor_1')
-
- actor.removeSkillMod('expertise_cooldown_line_co_riddle_armor', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_imp_riddle_armor_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_imp_riddle_armor_1")
return
diff --git a/scripts/expertise/expertise_co_imp_riddle_armor_2.py b/scripts/expertise/expertise_co_imp_riddle_armor_2.py
index a6c99f37..be67095b 100644
--- a/scripts/expertise/expertise_co_imp_riddle_armor_2.py
+++ b/scripts/expertise/expertise_co_imp_riddle_armor_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_imp_riddle_armor_2')
-
- actor.addSkillMod('expertise_cooldown_line_co_riddle_armor', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_imp_riddle_armor_2')
-
- actor.removeSkillMod('expertise_cooldown_line_co_riddle_armor', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_imp_riddle_armor_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_imp_riddle_armor_2")
return
diff --git a/scripts/expertise/expertise_co_imp_stand_fast_1.py b/scripts/expertise/expertise_co_imp_stand_fast_1.py
index aa2b8fdd..e1c77d58 100644
--- a/scripts/expertise/expertise_co_imp_stand_fast_1.py
+++ b/scripts/expertise/expertise_co_imp_stand_fast_1.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_imp_stand_fast_1')
-
- actor.addSkillMod('expertise_damage_decrease_percentage', 5)
- actor.addSkillMod('expertise_buff_duration_line_co_stand_fast', 2)
- actor.addSkillMod('expertise_cooldown_line_co_stand_fast', 120)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_imp_stand_fast_1')
-
- actor.removeSkillMod('expertise_damage_decrease_percentage', 5)
- actor.removeSkillMod('expertise_buff_duration_line_co_stand_fast', 2)
- actor.removeSkillMod('expertise_cooldown_line_co_stand_fast', 120)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_imp_stand_fast_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_imp_stand_fast_1")
return
diff --git a/scripts/expertise/expertise_co_imp_stand_fast_2.py b/scripts/expertise/expertise_co_imp_stand_fast_2.py
index d5d1f95e..b4daa5e8 100644
--- a/scripts/expertise/expertise_co_imp_stand_fast_2.py
+++ b/scripts/expertise/expertise_co_imp_stand_fast_2.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_imp_stand_fast_2')
-
- actor.addSkillMod('expertise_damage_decrease_percentage', 5)
- actor.addSkillMod('expertise_buff_duration_line_co_stand_fast', 2)
- actor.addSkillMod('expertise_cooldown_line_co_stand_fast', 120)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_imp_stand_fast_2')
-
- actor.removeSkillMod('expertise_damage_decrease_percentage', 5)
- actor.removeSkillMod('expertise_buff_duration_line_co_stand_fast', 2)
- actor.removeSkillMod('expertise_cooldown_line_co_stand_fast', 120)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_imp_stand_fast_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_imp_stand_fast_2")
return
diff --git a/scripts/expertise/expertise_co_imp_stand_fast_3.py b/scripts/expertise/expertise_co_imp_stand_fast_3.py
index 1cc88783..9e3ddf52 100644
--- a/scripts/expertise/expertise_co_imp_stand_fast_3.py
+++ b/scripts/expertise/expertise_co_imp_stand_fast_3.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_imp_stand_fast_3')
-
- actor.addSkillMod('expertise_damage_decrease_percentage', 5)
- actor.addSkillMod('expertise_buff_duration_line_co_stand_fast', 2)
- actor.addSkillMod('expertise_cooldown_line_co_stand_fast', 120)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_imp_stand_fast_3')
-
- actor.removeSkillMod('expertise_damage_decrease_percentage', 5)
- actor.removeSkillMod('expertise_buff_duration_line_co_stand_fast', 2)
- actor.removeSkillMod('expertise_cooldown_line_co_stand_fast', 120)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_imp_stand_fast_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_imp_stand_fast_3")
return
diff --git a/scripts/expertise/expertise_co_improved_explosives_1.py b/scripts/expertise/expertise_co_improved_explosives_1.py
index d4c61b00..7479e8d1 100644
--- a/scripts/expertise/expertise_co_improved_explosives_1.py
+++ b/scripts/expertise/expertise_co_improved_explosives_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_improved_explosives_1')
-
- actor.addSkillMod('expertise_damage_line_co_remote_detonator', 75)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_improved_explosives_1')
-
- actor.removeSkillMod('expertise_damage_line_co_remote_detonator', 75)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_improved_explosives_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_improved_explosives_1")
return
diff --git a/scripts/expertise/expertise_co_improved_explosives_2.py b/scripts/expertise/expertise_co_improved_explosives_2.py
index 088ad931..485df881 100644
--- a/scripts/expertise/expertise_co_improved_explosives_2.py
+++ b/scripts/expertise/expertise_co_improved_explosives_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_improved_explosives_2')
-
- actor.addSkillMod('expertise_damage_line_co_remote_detonator', 75)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_improved_explosives_2')
-
- actor.removeSkillMod('expertise_damage_line_co_remote_detonator', 75)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_improved_explosives_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_improved_explosives_2")
return
diff --git a/scripts/expertise/expertise_co_improved_explosives_3.py b/scripts/expertise/expertise_co_improved_explosives_3.py
index 36f59b79..3abcab9b 100644
--- a/scripts/expertise/expertise_co_improved_explosives_3.py
+++ b/scripts/expertise/expertise_co_improved_explosives_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_improved_explosives_3')
-
- actor.addSkillMod('expertise_damage_line_co_remote_detonator', 75)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_improved_explosives_3')
-
- actor.removeSkillMod('expertise_damage_line_co_remote_detonator', 75)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_improved_explosives_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_improved_explosives_3")
return
diff --git a/scripts/expertise/expertise_co_improved_explosives_4.py b/scripts/expertise/expertise_co_improved_explosives_4.py
index 0388018e..99b4e564 100644
--- a/scripts/expertise/expertise_co_improved_explosives_4.py
+++ b/scripts/expertise/expertise_co_improved_explosives_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_improved_explosives_4')
-
- actor.addSkillMod('expertise_damage_line_co_remote_detonator', 75)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_improved_explosives_4')
-
- actor.removeSkillMod('expertise_damage_line_co_remote_detonator', 75)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_improved_explosives_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_improved_explosives_4")
return
diff --git a/scripts/expertise/expertise_co_keen_eye_1.py b/scripts/expertise/expertise_co_keen_eye_1.py
index 03a62449..b03ebc46 100644
--- a/scripts/expertise/expertise_co_keen_eye_1.py
+++ b/scripts/expertise/expertise_co_keen_eye_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_keen_eye_1')
-
- actor.addSkillMod('expertise_range_bonus_ranged', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_keen_eye_1')
-
- actor.removeSkillMod('expertise_range_bonus_ranged', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_keen_eye_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_keen_eye_1")
return
diff --git a/scripts/expertise/expertise_co_keen_eye_2.py b/scripts/expertise/expertise_co_keen_eye_2.py
index b5fcd60b..aff4527a 100644
--- a/scripts/expertise/expertise_co_keen_eye_2.py
+++ b/scripts/expertise/expertise_co_keen_eye_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_keen_eye_2')
-
- actor.addSkillMod('expertise_range_bonus_ranged', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_keen_eye_2')
-
- actor.removeSkillMod('expertise_range_bonus_ranged', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_keen_eye_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_keen_eye_2")
return
diff --git a/scripts/expertise/expertise_co_killing_grimace_1.py b/scripts/expertise/expertise_co_killing_grimace_1.py
index 18b03ffe..091846d5 100644
--- a/scripts/expertise/expertise_co_killing_grimace_1.py
+++ b/scripts/expertise/expertise_co_killing_grimace_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_killing_grimace_1')
-
- actor.addSkillMod('expertise_co_killing_spree_target', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_killing_grimace_1')
-
- actor.removeSkillMod('expertise_co_killing_spree_target', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_killing_grimace_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_killing_grimace_1")
return
diff --git a/scripts/expertise/expertise_co_killing_grimace_2.py b/scripts/expertise/expertise_co_killing_grimace_2.py
index 0c1ca2e8..ad8ee400 100644
--- a/scripts/expertise/expertise_co_killing_grimace_2.py
+++ b/scripts/expertise/expertise_co_killing_grimace_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_killing_grimace_2')
-
- actor.addSkillMod('expertise_co_killing_spree_target', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_killing_grimace_2')
-
- actor.removeSkillMod('expertise_co_killing_spree_target', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_killing_grimace_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_killing_grimace_2")
return
diff --git a/scripts/expertise/expertise_co_killing_spree.py b/scripts/expertise/expertise_co_killing_spree.py
index 915251d0..c17421ae 100644
--- a/scripts/expertise/expertise_co_killing_spree.py
+++ b/scripts/expertise/expertise_co_killing_spree.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_killing_spree')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_killing_spree')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('co_killing_spree')
-
+ actor.addAbility("co_killing_spree")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('co_killing_spree')
-
+ actor.removeAbility("co_killing_spree")
return
diff --git a/scripts/expertise/expertise_co_lethal_beam_1.py b/scripts/expertise/expertise_co_lethal_beam_1.py
index 4a96f6d4..25d0a5a5 100644
--- a/scripts/expertise/expertise_co_lethal_beam_1.py
+++ b/scripts/expertise/expertise_co_lethal_beam_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_lethal_beam_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_lethal_beam_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('co_hw_dm_crit_1')
-
+ actor.addAbility("co_hw_dm_crit_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('co_hw_dm_crit_1')
-
+ actor.removeAbility("co_hw_dm_crit_1")
return
diff --git a/scripts/expertise/expertise_co_marksman_1.py b/scripts/expertise/expertise_co_marksman_1.py
index 431a914c..c57aa617 100644
--- a/scripts/expertise/expertise_co_marksman_1.py
+++ b/scripts/expertise/expertise_co_marksman_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_marksman_1')
-
- actor.addSkillMod('expertise_action_rifle', 4)
- actor.addSkillMod('expertise_action_carbine', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_marksman_1')
-
- actor.removeSkillMod('expertise_action_rifle', 4)
- actor.removeSkillMod('expertise_action_carbine', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_marksman_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_marksman_1")
return
diff --git a/scripts/expertise/expertise_co_marksman_2.py b/scripts/expertise/expertise_co_marksman_2.py
index 578f6bfc..7f74b950 100644
--- a/scripts/expertise/expertise_co_marksman_2.py
+++ b/scripts/expertise/expertise_co_marksman_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_marksman_2')
-
- actor.addSkillMod('expertise_action_rifle', 4)
- actor.addSkillMod('expertise_action_carbine', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_marksman_2')
-
- actor.removeSkillMod('expertise_action_rifle', 4)
- actor.removeSkillMod('expertise_action_carbine', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_marksman_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_marksman_2")
return
diff --git a/scripts/expertise/expertise_co_marksman_3.py b/scripts/expertise/expertise_co_marksman_3.py
index 39027c30..27c8b759 100644
--- a/scripts/expertise/expertise_co_marksman_3.py
+++ b/scripts/expertise/expertise_co_marksman_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_marksman_3')
-
- actor.addSkillMod('expertise_action_rifle', 4)
- actor.addSkillMod('expertise_action_carbine', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_marksman_3')
-
- actor.removeSkillMod('expertise_action_rifle', 4)
- actor.removeSkillMod('expertise_action_carbine', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_marksman_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_marksman_3")
return
diff --git a/scripts/expertise/expertise_co_mirror_armor_1.py b/scripts/expertise/expertise_co_mirror_armor_1.py
index ce6c5cb5..dfb9397d 100644
--- a/scripts/expertise/expertise_co_mirror_armor_1.py
+++ b/scripts/expertise/expertise_co_mirror_armor_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_mirror_armor_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_mirror_armor_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('co_mirror_armor')
-
+ actor.addAbility("co_mirror_armor")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('co_mirror_armor')
-
+ actor.removeAbility("co_mirror_armor")
return
diff --git a/scripts/expertise/expertise_co_on_target_1.py b/scripts/expertise/expertise_co_on_target_1.py
index 7ed1aa7e..f652cbd2 100644
--- a/scripts/expertise/expertise_co_on_target_1.py
+++ b/scripts/expertise/expertise_co_on_target_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_on_target_1')
-
- actor.addSkillMod('expertise_co_pos_secured_line_critical', 2)
- actor.addSkillMod('expertise_co_pos_secured_line_protection', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_on_target_1')
-
- actor.removeSkillMod('expertise_co_pos_secured_line_critical', 2)
- actor.removeSkillMod('expertise_co_pos_secured_line_protection', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_on_target_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_on_target_1")
return
diff --git a/scripts/expertise/expertise_co_on_target_2.py b/scripts/expertise/expertise_co_on_target_2.py
index bf31c706..b51e92a9 100644
--- a/scripts/expertise/expertise_co_on_target_2.py
+++ b/scripts/expertise/expertise_co_on_target_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_on_target_2')
-
- actor.addSkillMod('expertise_co_pos_secured_line_critical', 2)
- actor.addSkillMod('expertise_co_pos_secured_line_protection', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_on_target_2')
-
- actor.removeSkillMod('expertise_co_pos_secured_line_critical', 2)
- actor.removeSkillMod('expertise_co_pos_secured_line_protection', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_on_target_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_on_target_2")
return
diff --git a/scripts/expertise/expertise_co_on_target_3.py b/scripts/expertise/expertise_co_on_target_3.py
index 9cca1f5d..5456ca93 100644
--- a/scripts/expertise/expertise_co_on_target_3.py
+++ b/scripts/expertise/expertise_co_on_target_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_on_target_3')
-
- actor.addSkillMod('expertise_co_pos_secured_line_critical', 2)
- actor.addSkillMod('expertise_co_pos_secured_line_protection', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_on_target_3')
-
- actor.removeSkillMod('expertise_co_pos_secured_line_critical', 2)
- actor.removeSkillMod('expertise_co_pos_secured_line_protection', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_on_target_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_on_target_3")
return
diff --git a/scripts/expertise/expertise_co_on_target_4.py b/scripts/expertise/expertise_co_on_target_4.py
index e9a0a325..b750b412 100644
--- a/scripts/expertise/expertise_co_on_target_4.py
+++ b/scripts/expertise/expertise_co_on_target_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_on_target_4')
-
- actor.addSkillMod('expertise_co_pos_secured_line_critical', 2)
- actor.addSkillMod('expertise_co_pos_secured_line_protection', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_on_target_4')
-
- actor.removeSkillMod('expertise_co_pos_secured_line_critical', 2)
- actor.removeSkillMod('expertise_co_pos_secured_line_protection', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_on_target_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_on_target_4")
return
diff --git a/scripts/expertise/expertise_co_packed_explosives_1.py b/scripts/expertise/expertise_co_packed_explosives_1.py
index da5644ab..fa57097c 100644
--- a/scripts/expertise/expertise_co_packed_explosives_1.py
+++ b/scripts/expertise/expertise_co_packed_explosives_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_packed_explosives_1')
-
- actor.addSkillMod('expertise_damage_line_co_grenade', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_packed_explosives_1')
-
- actor.removeSkillMod('expertise_damage_line_co_grenade', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_packed_explosives_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_packed_explosives_1")
return
diff --git a/scripts/expertise/expertise_co_packed_explosives_2.py b/scripts/expertise/expertise_co_packed_explosives_2.py
index ee0655e3..288e1944 100644
--- a/scripts/expertise/expertise_co_packed_explosives_2.py
+++ b/scripts/expertise/expertise_co_packed_explosives_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_packed_explosives_2')
-
- actor.addSkillMod('expertise_damage_line_co_grenade', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_packed_explosives_2')
-
- actor.removeSkillMod('expertise_damage_line_co_grenade', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_packed_explosives_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_packed_explosives_2")
return
diff --git a/scripts/expertise/expertise_co_packed_explosives_3.py b/scripts/expertise/expertise_co_packed_explosives_3.py
index 0bdf9fde..8f61f39d 100644
--- a/scripts/expertise/expertise_co_packed_explosives_3.py
+++ b/scripts/expertise/expertise_co_packed_explosives_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_packed_explosives_3')
-
- actor.addSkillMod('expertise_damage_line_co_grenade', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_packed_explosives_3')
-
- actor.removeSkillMod('expertise_damage_line_co_grenade', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_packed_explosives_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_packed_explosives_3")
return
diff --git a/scripts/expertise/expertise_co_packed_explosives_4.py b/scripts/expertise/expertise_co_packed_explosives_4.py
index e8ca7037..efd1b2a9 100644
--- a/scripts/expertise/expertise_co_packed_explosives_4.py
+++ b/scripts/expertise/expertise_co_packed_explosives_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_packed_explosives_4')
-
- actor.addSkillMod('expertise_damage_line_co_grenade', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_packed_explosives_4')
-
- actor.removeSkillMod('expertise_damage_line_co_grenade', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_packed_explosives_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_packed_explosives_4")
return
diff --git a/scripts/expertise/expertise_co_pinpoint_shielding_1.py b/scripts/expertise/expertise_co_pinpoint_shielding_1.py
index c8cc7ca7..1937db02 100644
--- a/scripts/expertise/expertise_co_pinpoint_shielding_1.py
+++ b/scripts/expertise/expertise_co_pinpoint_shielding_1.py
@@ -1,57 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_pinpoint_shielding_1')
-
- actor.addSkillMod('energy', 250)
- actor.addSkillMod('kinetic', 250)
- actor.addSkillMod('acid', 250)
- actor.addSkillMod('heat', 250)
- actor.addSkillMod('cold', 250)
- actor.addSkillMod('electricity', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_pinpoint_shielding_1')
-
- actor.removeSkillMod('energy', 250)
- actor.removeSkillMod('kinetic', 250)
- actor.removeSkillMod('acid', 250)
- actor.removeSkillMod('heat', 250)
- actor.removeSkillMod('cold', 250)
- actor.removeSkillMod('electricity', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_pinpoint_shielding_1")
return
-
+
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_pinpoint_shielding_1")
return
-
\ No newline at end of file
diff --git a/scripts/expertise/expertise_co_pinpoint_shielding_2.py b/scripts/expertise/expertise_co_pinpoint_shielding_2.py
index f311375b..c3ad2200 100644
--- a/scripts/expertise/expertise_co_pinpoint_shielding_2.py
+++ b/scripts/expertise/expertise_co_pinpoint_shielding_2.py
@@ -1,57 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_pinpoint_shielding_2')
-
- actor.addSkillMod('energy', 250)
- actor.addSkillMod('kinetic', 250)
- actor.addSkillMod('acid', 250)
- actor.addSkillMod('heat', 250)
- actor.addSkillMod('cold', 250)
- actor.addSkillMod('electricity', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_pinpoint_shielding_2')
-
- actor.removeSkillMod('energy', 250)
- actor.removeSkillMod('kinetic', 250)
- actor.removeSkillMod('acid', 250)
- actor.removeSkillMod('heat', 250)
- actor.removeSkillMod('cold', 250)
- actor.removeSkillMod('electricity', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_pinpoint_shielding_2")
return
-
+
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_pinpoint_shielding_2")
return
-
\ No newline at end of file
diff --git a/scripts/expertise/expertise_co_pinpoint_shielding_3.py b/scripts/expertise/expertise_co_pinpoint_shielding_3.py
index e06a60e5..02c5884e 100644
--- a/scripts/expertise/expertise_co_pinpoint_shielding_3.py
+++ b/scripts/expertise/expertise_co_pinpoint_shielding_3.py
@@ -1,57 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_pinpoint_shielding_3')
-
- actor.addSkillMod('energy', 250)
- actor.addSkillMod('kinetic', 250)
- actor.addSkillMod('acid', 250)
- actor.addSkillMod('heat', 250)
- actor.addSkillMod('cold', 250)
- actor.addSkillMod('electricity', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_pinpoint_shielding_3')
-
- actor.removeSkillMod('energy', 250)
- actor.removeSkillMod('kinetic', 250)
- actor.removeSkillMod('acid', 250)
- actor.removeSkillMod('heat', 250)
- actor.removeSkillMod('cold', 250)
- actor.removeSkillMod('electricity', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_pinpoint_shielding_3")
return
-
+
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_pinpoint_shielding_3")
return
-
\ No newline at end of file
diff --git a/scripts/expertise/expertise_co_pinpoint_shielding_4.py b/scripts/expertise/expertise_co_pinpoint_shielding_4.py
index c910bccb..f85df1de 100644
--- a/scripts/expertise/expertise_co_pinpoint_shielding_4.py
+++ b/scripts/expertise/expertise_co_pinpoint_shielding_4.py
@@ -1,57 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_pinpoint_shielding_4')
-
- actor.addSkillMod('energy', 250)
- actor.addSkillMod('kinetic', 250)
- actor.addSkillMod('acid', 250)
- actor.addSkillMod('heat', 250)
- actor.addSkillMod('cold', 250)
- actor.addSkillMod('electricity', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_pinpoint_shielding_4')
-
- actor.removeSkillMod('energy', 250)
- actor.removeSkillMod('kinetic', 250)
- actor.removeSkillMod('acid', 250)
- actor.removeSkillMod('heat', 250)
- actor.removeSkillMod('cold', 250)
- actor.removeSkillMod('electricity', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_pinpoint_shielding_4")
return
-
+
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_pinpoint_shielding_4")
return
-
\ No newline at end of file
diff --git a/scripts/expertise/expertise_co_position_secured_1.py b/scripts/expertise/expertise_co_position_secured_1.py
index dfee8b0a..d2427d08 100644
--- a/scripts/expertise/expertise_co_position_secured_1.py
+++ b/scripts/expertise/expertise_co_position_secured_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_position_secured_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_position_secured_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('co_position_secured')
-
+ actor.addAbility("co_position_secured")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('co_position_secured')
-
+ actor.removeAbility("co_position_secured")
return
diff --git a/scripts/expertise/expertise_co_powered_armor_1.py b/scripts/expertise/expertise_co_powered_armor_1.py
index 0cd9dc3d..58530d57 100644
--- a/scripts/expertise/expertise_co_powered_armor_1.py
+++ b/scripts/expertise/expertise_co_powered_armor_1.py
@@ -1,57 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_powered_armor_1')
-
- actor.addSkillMod('energy', 250)
- actor.addSkillMod('kinetic', 250)
- actor.addSkillMod('acid', 250)
- actor.addSkillMod('heat', 250)
- actor.addSkillMod('cold', 250)
- actor.addSkillMod('electricity', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_powered_armor_1')
-
- actor.removeSkillMod('energy', 250)
- actor.removeSkillMod('kinetic', 250)
- actor.removeSkillMod('acid', 250)
- actor.removeSkillMod('heat', 250)
- actor.removeSkillMod('cold', 250)
- actor.removeSkillMod('electricity', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_powered_armor_1")
return
-
+
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_powered_armor_1")
return
-
\ No newline at end of file
diff --git a/scripts/expertise/expertise_co_powered_armor_2.py b/scripts/expertise/expertise_co_powered_armor_2.py
index df2d0051..e9ea79e9 100644
--- a/scripts/expertise/expertise_co_powered_armor_2.py
+++ b/scripts/expertise/expertise_co_powered_armor_2.py
@@ -1,57 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_powered_armor_2')
-
- actor.addSkillMod('energy', 250)
- actor.addSkillMod('kinetic', 250)
- actor.addSkillMod('acid', 250)
- actor.addSkillMod('heat', 250)
- actor.addSkillMod('cold', 250)
- actor.addSkillMod('electricity', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_powered_armor_2')
-
- actor.removeSkillMod('energy', 250)
- actor.removeSkillMod('kinetic', 250)
- actor.removeSkillMod('acid', 250)
- actor.removeSkillMod('heat', 250)
- actor.removeSkillMod('cold', 250)
- actor.removeSkillMod('electricity', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_powered_armor_2")
return
-
+
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_powered_armor_2")
return
-
\ No newline at end of file
diff --git a/scripts/expertise/expertise_co_powered_armor_3.py b/scripts/expertise/expertise_co_powered_armor_3.py
index f0d1fe7f..5cba60e6 100644
--- a/scripts/expertise/expertise_co_powered_armor_3.py
+++ b/scripts/expertise/expertise_co_powered_armor_3.py
@@ -1,57 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_powered_armor_3')
-
- actor.addSkillMod('energy', 250)
- actor.addSkillMod('kinetic', 250)
- actor.addSkillMod('acid', 250)
- actor.addSkillMod('heat', 250)
- actor.addSkillMod('cold', 250)
- actor.addSkillMod('electricity', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_powered_armor_3')
-
- actor.removeSkillMod('energy', 250)
- actor.removeSkillMod('kinetic', 250)
- actor.removeSkillMod('acid', 250)
- actor.removeSkillMod('heat', 250)
- actor.removeSkillMod('cold', 250)
- actor.removeSkillMod('electricity', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_powered_armor_3")
return
-
+
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_powered_armor_3")
return
-
\ No newline at end of file
diff --git a/scripts/expertise/expertise_co_powered_armor_4.py b/scripts/expertise/expertise_co_powered_armor_4.py
index 9b0e2f44..b10f5264 100644
--- a/scripts/expertise/expertise_co_powered_armor_4.py
+++ b/scripts/expertise/expertise_co_powered_armor_4.py
@@ -1,57 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_powered_armor_4')
-
- actor.addSkillMod('energy', 250)
- actor.addSkillMod('kinetic', 250)
- actor.addSkillMod('acid', 250)
- actor.addSkillMod('heat', 250)
- actor.addSkillMod('cold', 250)
- actor.addSkillMod('electricity', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_powered_armor_4')
-
- actor.removeSkillMod('energy', 250)
- actor.removeSkillMod('kinetic', 250)
- actor.removeSkillMod('acid', 250)
- actor.removeSkillMod('heat', 250)
- actor.removeSkillMod('cold', 250)
- actor.removeSkillMod('electricity', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_co_powered_armor_4")
return
-
+
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_co_powered_armor_4")
return
-
\ No newline at end of file
diff --git a/scripts/expertise/expertise_co_remote_detonator_1.py b/scripts/expertise/expertise_co_remote_detonator_1.py
index d90c8d4f..fed11c0f 100644
--- a/scripts/expertise/expertise_co_remote_detonator_1.py
+++ b/scripts/expertise/expertise_co_remote_detonator_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_remote_detonator_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_remote_detonator_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('co_remote_detonator_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("co_remote_detonator_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("co_remote_detonator_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("co_remote_detonator_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("co_remote_detonator_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("co_remote_detonator_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('co_remote_detonator_1')
-
+ actor.removeAbility("co_remote_detonator_1")
+ actor.removeAbility("co_remote_detonator_2")
+ actor.removeAbility("co_remote_detonator_3")
+ actor.removeAbility("co_remote_detonator_4")
+ actor.removeAbility("co_remote_detonator_5")
return
diff --git a/scripts/expertise/expertise_co_riddle_armor_1.py b/scripts/expertise/expertise_co_riddle_armor_1.py
index 4e3ebd79..04ea9722 100644
--- a/scripts/expertise/expertise_co_riddle_armor_1.py
+++ b/scripts/expertise/expertise_co_riddle_armor_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_riddle_armor_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_riddle_armor_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('co_riddle_armor')
-
+ actor.addAbility("co_riddle_armor")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('co_riddle_armor')
-
+ actor.removeAbility("co_riddle_armor")
return
diff --git a/scripts/expertise/expertise_co_short_fuse_1.py b/scripts/expertise/expertise_co_short_fuse_1.py
index 54240603..a5cbad44 100644
--- a/scripts/expertise/expertise_co_short_fuse_1.py
+++ b/scripts/expertise/expertise_co_short_fuse_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_short_fuse_1')
-
- actor.addSkillMod('expertise_delay_reduce_line_co_grenade', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_short_fuse_1')
-
- actor.removeSkillMod('expertise_delay_reduce_line_co_grenade', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_short_fuse_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_short_fuse_1")
return
diff --git a/scripts/expertise/expertise_co_stand_fast_1.py b/scripts/expertise/expertise_co_stand_fast_1.py
index 714eb9b6..46127787 100644
--- a/scripts/expertise/expertise_co_stand_fast_1.py
+++ b/scripts/expertise/expertise_co_stand_fast_1.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_stand_fast_1')
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_stand_fast_1')
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('co_stand_fast')
-
+ actor.addAbility("co_stand_fast")
return
-
+
def removeAbilities(core, actor, player):
-
- actor.removeAbility('co_stand_fast')
-
+ actor.removeAbility("co_stand_fast")
return
-
\ No newline at end of file
diff --git a/scripts/expertise/expertise_co_stim_armor_1.py b/scripts/expertise/expertise_co_stim_armor_1.py
index abe74611..eb69696b 100644
--- a/scripts/expertise/expertise_co_stim_armor_1.py
+++ b/scripts/expertise/expertise_co_stim_armor_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_stim_armor_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_stim_armor_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('co_stim_armor')
-
+ actor.addAbility("co_stim_armor")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('co_stim_armor')
-
+ actor.removeAbility("co_stim_armor")
return
diff --git a/scripts/expertise/expertise_co_strong_arm_1.py b/scripts/expertise/expertise_co_strong_arm_1.py
index 03ebed5f..b4e5ab18 100644
--- a/scripts/expertise/expertise_co_strong_arm_1.py
+++ b/scripts/expertise/expertise_co_strong_arm_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_strong_arm_1')
-
- actor.addSkillMod('expertise_action_line_co_grenade', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_strong_arm_1')
-
- actor.removeSkillMod('expertise_action_line_co_grenade', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_strong_arm_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_strong_arm_1")
return
diff --git a/scripts/expertise/expertise_co_strong_arm_2.py b/scripts/expertise/expertise_co_strong_arm_2.py
index 126ff5b7..b0672495 100644
--- a/scripts/expertise/expertise_co_strong_arm_2.py
+++ b/scripts/expertise/expertise_co_strong_arm_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_strong_arm_2')
-
- actor.addSkillMod('expertise_action_line_co_grenade', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_strong_arm_2')
-
- actor.removeSkillMod('expertise_action_line_co_grenade', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_strong_arm_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_strong_arm_2")
return
diff --git a/scripts/expertise/expertise_co_strong_arm_3.py b/scripts/expertise/expertise_co_strong_arm_3.py
index 8ed34544..d69525d7 100644
--- a/scripts/expertise/expertise_co_strong_arm_3.py
+++ b/scripts/expertise/expertise_co_strong_arm_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_strong_arm_3')
-
- actor.addSkillMod('expertise_action_line_co_grenade', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_strong_arm_3')
-
- actor.removeSkillMod('expertise_action_line_co_grenade', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_strong_arm_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_strong_arm_3")
return
diff --git a/scripts/expertise/expertise_co_strong_arm_4.py b/scripts/expertise/expertise_co_strong_arm_4.py
index ea9ec450..dd42b534 100644
--- a/scripts/expertise/expertise_co_strong_arm_4.py
+++ b/scripts/expertise/expertise_co_strong_arm_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_strong_arm_4')
-
- actor.addSkillMod('expertise_action_line_co_grenade', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_strong_arm_4')
-
- actor.removeSkillMod('expertise_action_line_co_grenade', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_strong_arm_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_strong_arm_4")
return
diff --git a/scripts/expertise/expertise_co_suppressing_fire_1.py b/scripts/expertise/expertise_co_suppressing_fire_1.py
index a9192094..b9181853 100644
--- a/scripts/expertise/expertise_co_suppressing_fire_1.py
+++ b/scripts/expertise/expertise_co_suppressing_fire_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_suppressing_fire_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_suppressing_fire_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('co_suppressing_fire')
-
+ actor.addAbility("co_suppressing_fire")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('co_suppressing_fire')
-
+ actor.removeAbility("co_suppressing_fire")
return
diff --git a/scripts/expertise/expertise_co_suppression_efficiency_1.py b/scripts/expertise/expertise_co_suppression_efficiency_1.py
index 72851743..60950dc4 100644
--- a/scripts/expertise/expertise_co_suppression_efficiency_1.py
+++ b/scripts/expertise/expertise_co_suppression_efficiency_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_suppression_efficiency_1')
-
- actor.addSkillMod('expertise_supression_speed', 10)
- actor.addSkillMod('expertise_supression_glance', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_suppression_efficiency_1')
-
- actor.removeSkillMod('expertise_supression_speed', 10)
- actor.removeSkillMod('expertise_supression_glance', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_suppression_efficiency_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_suppression_efficiency_1")
return
diff --git a/scripts/expertise/expertise_co_suppression_efficiency_2.py b/scripts/expertise/expertise_co_suppression_efficiency_2.py
index 97830b16..3ce19870 100644
--- a/scripts/expertise/expertise_co_suppression_efficiency_2.py
+++ b/scripts/expertise/expertise_co_suppression_efficiency_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_suppression_efficiency_2')
-
- actor.addSkillMod('expertise_supression_speed', 10)
- actor.addSkillMod('expertise_supression_glance', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_suppression_efficiency_2')
-
- actor.removeSkillMod('expertise_supression_speed', 10)
- actor.removeSkillMod('expertise_supression_glance', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_suppression_efficiency_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_suppression_efficiency_2")
return
diff --git a/scripts/expertise/expertise_co_suppression_efficiency_3.py b/scripts/expertise/expertise_co_suppression_efficiency_3.py
index a0d3e6b6..00e43a22 100644
--- a/scripts/expertise/expertise_co_suppression_efficiency_3.py
+++ b/scripts/expertise/expertise_co_suppression_efficiency_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_suppression_efficiency_3')
-
- actor.addSkillMod('expertise_supression_speed', 10)
- actor.addSkillMod('expertise_supression_glance', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_suppression_efficiency_3')
-
- actor.removeSkillMod('expertise_supression_speed', 10)
- actor.removeSkillMod('expertise_supression_glance', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_suppression_efficiency_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_suppression_efficiency_3")
return
diff --git a/scripts/expertise/expertise_co_suppression_efficiency_4.py b/scripts/expertise/expertise_co_suppression_efficiency_4.py
index 3898d8fd..f9c1c3e5 100644
--- a/scripts/expertise/expertise_co_suppression_efficiency_4.py
+++ b/scripts/expertise/expertise_co_suppression_efficiency_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_suppression_efficiency_4')
-
- actor.addSkillMod('expertise_supression_speed', 10)
- actor.addSkillMod('expertise_supression_glance', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_suppression_efficiency_4')
-
- actor.removeSkillMod('expertise_supression_speed', 10)
- actor.removeSkillMod('expertise_supression_glance', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_suppression_efficiency_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_suppression_efficiency_4")
return
diff --git a/scripts/expertise/expertise_co_tibanna_gas_1.py b/scripts/expertise/expertise_co_tibanna_gas_1.py
index f3c83322..1c8d5371 100644
--- a/scripts/expertise/expertise_co_tibanna_gas_1.py
+++ b/scripts/expertise/expertise_co_tibanna_gas_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_tibanna_gas_1')
-
- actor.addSkillMod('expertise_damage_weapon_3', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_tibanna_gas_1')
-
- actor.removeSkillMod('expertise_damage_weapon_3', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_tibanna_gas_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_tibanna_gas_1")
return
diff --git a/scripts/expertise/expertise_co_tibanna_gas_2.py b/scripts/expertise/expertise_co_tibanna_gas_2.py
index ccc62783..f907947a 100644
--- a/scripts/expertise/expertise_co_tibanna_gas_2.py
+++ b/scripts/expertise/expertise_co_tibanna_gas_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_tibanna_gas_2')
-
- actor.addSkillMod('expertise_damage_weapon_3', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_tibanna_gas_2')
-
- actor.removeSkillMod('expertise_damage_weapon_3', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_tibanna_gas_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_tibanna_gas_2")
return
diff --git a/scripts/expertise/expertise_co_tibanna_gas_3.py b/scripts/expertise/expertise_co_tibanna_gas_3.py
index 49895f55..4b1ac247 100644
--- a/scripts/expertise/expertise_co_tibanna_gas_3.py
+++ b/scripts/expertise/expertise_co_tibanna_gas_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_tibanna_gas_3')
-
- actor.addSkillMod('expertise_damage_weapon_3', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_tibanna_gas_3')
-
- actor.removeSkillMod('expertise_damage_weapon_3', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_tibanna_gas_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_tibanna_gas_3")
return
diff --git a/scripts/expertise/expertise_co_tibanna_gas_4.py b/scripts/expertise/expertise_co_tibanna_gas_4.py
index 09e23289..67b238f2 100644
--- a/scripts/expertise/expertise_co_tibanna_gas_4.py
+++ b/scripts/expertise/expertise_co_tibanna_gas_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_tibanna_gas_4')
-
- actor.addSkillMod('expertise_damage_weapon_3', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_tibanna_gas_4')
-
- actor.removeSkillMod('expertise_damage_weapon_3', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_tibanna_gas_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_tibanna_gas_4")
return
diff --git a/scripts/expertise/expertise_co_timer_reset_1.py b/scripts/expertise/expertise_co_timer_reset_1.py
index c1f4cdb0..1b2e232d 100644
--- a/scripts/expertise/expertise_co_timer_reset_1.py
+++ b/scripts/expertise/expertise_co_timer_reset_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_timer_reset_1')
-
- actor.addSkillMod('expertise_delay_line_co_remote_detonator', 240)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_timer_reset_1')
-
- actor.removeSkillMod('expertise_delay_line_co_remote_detonator', 240)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_timer_reset_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_timer_reset_1")
return
diff --git a/scripts/expertise/expertise_co_timer_reset_2.py b/scripts/expertise/expertise_co_timer_reset_2.py
index 452832a5..9c29a8c9 100644
--- a/scripts/expertise/expertise_co_timer_reset_2.py
+++ b/scripts/expertise/expertise_co_timer_reset_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_timer_reset_2')
-
- actor.addSkillMod('expertise_delay_line_co_remote_detonator', 240)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_timer_reset_2')
-
- actor.removeSkillMod('expertise_delay_line_co_remote_detonator', 240)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_timer_reset_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_timer_reset_2")
return
diff --git a/scripts/expertise/expertise_co_youll_regret_that_1.py b/scripts/expertise/expertise_co_youll_regret_that_1.py
index eae8c028..a0895f86 100644
--- a/scripts/expertise/expertise_co_youll_regret_that_1.py
+++ b/scripts/expertise/expertise_co_youll_regret_that_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_youll_regret_that_1')
-
- actor.addSkillMod('kill_meter_co_youll_regret_that_reac', 100)
- actor.addSkillMod('expertise_youll_regret_that', 1000)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_youll_regret_that_1')
-
- actor.removeSkillMod('kill_meter_co_youll_regret_that_reac', 100)
- actor.removeSkillMod('expertise_youll_regret_that', 1000)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_youll_regret_that_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_youll_regret_that_1")
return
diff --git a/scripts/expertise/expertise_co_youll_regret_that_2.py b/scripts/expertise/expertise_co_youll_regret_that_2.py
index 8075c520..d96de9f4 100644
--- a/scripts/expertise/expertise_co_youll_regret_that_2.py
+++ b/scripts/expertise/expertise_co_youll_regret_that_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_youll_regret_that_2')
-
- actor.addSkillMod('kill_meter_co_youll_regret_that_reac', 0)
- actor.addSkillMod('expertise_youll_regret_that', 1000)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_youll_regret_that_2')
-
- actor.removeSkillMod('kill_meter_co_youll_regret_that_reac', 0)
- actor.removeSkillMod('expertise_youll_regret_that', 1000)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_youll_regret_that_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_youll_regret_that_2")
return
diff --git a/scripts/expertise/expertise_co_youll_regret_that_3.py b/scripts/expertise/expertise_co_youll_regret_that_3.py
index e4724ece..0ab9bab3 100644
--- a/scripts/expertise/expertise_co_youll_regret_that_3.py
+++ b/scripts/expertise/expertise_co_youll_regret_that_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_youll_regret_that_3')
-
- actor.addSkillMod('kill_meter_co_youll_regret_that_reac', 0)
- actor.addSkillMod('expertise_youll_regret_that', 1000)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_youll_regret_that_3')
-
- actor.removeSkillMod('kill_meter_co_youll_regret_that_reac', 0)
- actor.removeSkillMod('expertise_youll_regret_that', 1000)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_youll_regret_that_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_youll_regret_that_3")
return
diff --git a/scripts/expertise/expertise_co_youll_regret_that_4.py b/scripts/expertise/expertise_co_youll_regret_that_4.py
index b4e02069..95a86d07 100644
--- a/scripts/expertise/expertise_co_youll_regret_that_4.py
+++ b/scripts/expertise/expertise_co_youll_regret_that_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.addSkill('expertise_co_youll_regret_that_4')
-
- actor.addSkillMod('kill_meter_co_youll_regret_that_reac', 0)
- actor.addSkillMod('expertise_youll_regret_that', 1000)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'commando_1a':
- return
-
- actor.removeSkill('expertise_co_youll_regret_that_4')
-
- actor.removeSkillMod('kill_meter_co_youll_regret_that_reac', 0)
- actor.removeSkillMod('expertise_youll_regret_that', 1000)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_co_youll_regret_that_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_co_youll_regret_that_4")
return
diff --git a/scripts/expertise/expertise_cybernetic_dexterity_1.py b/scripts/expertise/expertise_cybernetic_dexterity_1.py
index 173aec59..db71010f 100644
--- a/scripts/expertise/expertise_cybernetic_dexterity_1.py
+++ b/scripts/expertise/expertise_cybernetic_dexterity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_cybernetic_dexterity_1')
-
- actor.addSkillMod('cybernetic_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_cybernetic_dexterity_1')
-
- actor.removeSkillMod('cybernetic_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_cybernetic_dexterity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_cybernetic_dexterity_1")
return
diff --git a/scripts/expertise/expertise_cybernetic_dexterity_2.py b/scripts/expertise/expertise_cybernetic_dexterity_2.py
index 1627c0f4..40cfd8c9 100644
--- a/scripts/expertise/expertise_cybernetic_dexterity_2.py
+++ b/scripts/expertise/expertise_cybernetic_dexterity_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_cybernetic_dexterity_2')
-
- actor.addSkillMod('cybernetic_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_cybernetic_dexterity_2')
-
- actor.removeSkillMod('cybernetic_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_cybernetic_dexterity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_cybernetic_dexterity_2")
return
diff --git a/scripts/expertise/expertise_cybernetic_dexterity_3.py b/scripts/expertise/expertise_cybernetic_dexterity_3.py
index e80429b1..de7ea37b 100644
--- a/scripts/expertise/expertise_cybernetic_dexterity_3.py
+++ b/scripts/expertise/expertise_cybernetic_dexterity_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_cybernetic_dexterity_3')
-
- actor.addSkillMod('cybernetic_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_cybernetic_dexterity_3')
-
- actor.removeSkillMod('cybernetic_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_cybernetic_dexterity_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_cybernetic_dexterity_3")
return
diff --git a/scripts/expertise/expertise_cybernetic_dexterity_4.py b/scripts/expertise/expertise_cybernetic_dexterity_4.py
index 9e47bf2b..303f05f7 100644
--- a/scripts/expertise/expertise_cybernetic_dexterity_4.py
+++ b/scripts/expertise/expertise_cybernetic_dexterity_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_cybernetic_dexterity_4')
-
- actor.addSkillMod('cybernetic_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_cybernetic_dexterity_4')
-
- actor.removeSkillMod('cybernetic_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_cybernetic_dexterity_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_cybernetic_dexterity_4")
return
diff --git a/scripts/expertise/expertise_domestic_artisan_advanced_theory_1.py b/scripts/expertise/expertise_domestic_artisan_advanced_theory_1.py
index bd8a80ca..7768503c 100644
--- a/scripts/expertise/expertise_domestic_artisan_advanced_theory_1.py
+++ b/scripts/expertise/expertise_domestic_artisan_advanced_theory_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_artisan_advanced_theory_1')
-
- actor.addSkillMod('general_experimentation', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_artisan_advanced_theory_1')
-
- actor.removeSkillMod('general_experimentation', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_artisan_advanced_theory_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_artisan_advanced_theory_1")
return
diff --git a/scripts/expertise/expertise_domestic_artisan_dexterity_1.py b/scripts/expertise/expertise_domestic_artisan_dexterity_1.py
index f473579f..558c2105 100644
--- a/scripts/expertise/expertise_domestic_artisan_dexterity_1.py
+++ b/scripts/expertise/expertise_domestic_artisan_dexterity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_artisan_dexterity_1')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_artisan_dexterity_1')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_artisan_dexterity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_artisan_dexterity_1")
return
diff --git a/scripts/expertise/expertise_domestic_artisan_dexterity_2.py b/scripts/expertise/expertise_domestic_artisan_dexterity_2.py
index 913a4d0e..8c7ab6cf 100644
--- a/scripts/expertise/expertise_domestic_artisan_dexterity_2.py
+++ b/scripts/expertise/expertise_domestic_artisan_dexterity_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_artisan_dexterity_2')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_artisan_dexterity_2')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_artisan_dexterity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_artisan_dexterity_2")
return
diff --git a/scripts/expertise/expertise_domestic_artisan_dexterity_3.py b/scripts/expertise/expertise_domestic_artisan_dexterity_3.py
index a430b03f..3759a96d 100644
--- a/scripts/expertise/expertise_domestic_artisan_dexterity_3.py
+++ b/scripts/expertise/expertise_domestic_artisan_dexterity_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_artisan_dexterity_3')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_artisan_dexterity_3')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_artisan_dexterity_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_artisan_dexterity_3")
return
diff --git a/scripts/expertise/expertise_domestic_artisan_dexterity_4.py b/scripts/expertise/expertise_domestic_artisan_dexterity_4.py
index aa5c57b2..4be842ea 100644
--- a/scripts/expertise/expertise_domestic_artisan_dexterity_4.py
+++ b/scripts/expertise/expertise_domestic_artisan_dexterity_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_artisan_dexterity_4')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_artisan_dexterity_4')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_artisan_dexterity_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_artisan_dexterity_4")
return
diff --git a/scripts/expertise/expertise_domestic_artisan_hypothesis_1.py b/scripts/expertise/expertise_domestic_artisan_hypothesis_1.py
index 00c3dbcb..d8af5dc4 100644
--- a/scripts/expertise/expertise_domestic_artisan_hypothesis_1.py
+++ b/scripts/expertise/expertise_domestic_artisan_hypothesis_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_artisan_hypothesis_1')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_artisan_hypothesis_1')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_artisan_artisan_hypthesis_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_artisan_artisan_hypthesis_1")
return
diff --git a/scripts/expertise/expertise_domestic_artisan_hypothesis_2.py b/scripts/expertise/expertise_domestic_artisan_hypothesis_2.py
index b0e1ffc0..d9a13f59 100644
--- a/scripts/expertise/expertise_domestic_artisan_hypothesis_2.py
+++ b/scripts/expertise/expertise_domestic_artisan_hypothesis_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_artisan_hypothesis_2')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_artisan_hypothesis_2')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_artisan_hypthesis_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_artisan_hypthesis_2")
return
diff --git a/scripts/expertise/expertise_domestic_artisan_hypothesis_3.py b/scripts/expertise/expertise_domestic_artisan_hypothesis_3.py
index e3411464..1ebf788d 100644
--- a/scripts/expertise/expertise_domestic_artisan_hypothesis_3.py
+++ b/scripts/expertise/expertise_domestic_artisan_hypothesis_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_artisan_hypothesis_3')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_artisan_hypothesis_3')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_artisan_hypthesis_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_artisan_hypthesis_3")
return
diff --git a/scripts/expertise/expertise_domestic_artisan_hypothesis_4.py b/scripts/expertise/expertise_domestic_artisan_hypothesis_4.py
index 81e4a849..e0797ccd 100644
--- a/scripts/expertise/expertise_domestic_artisan_hypothesis_4.py
+++ b/scripts/expertise/expertise_domestic_artisan_hypothesis_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_artisan_hypothesis_4')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_artisan_hypothesis_4')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_artisan_hypthesis_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_artisan_hypthesis_4")
return
diff --git a/scripts/expertise/expertise_domestic_chef_advanced_theory_1.py b/scripts/expertise/expertise_domestic_chef_advanced_theory_1.py
index e3012ee2..2ee6b7d6 100644
--- a/scripts/expertise/expertise_domestic_chef_advanced_theory_1.py
+++ b/scripts/expertise/expertise_domestic_chef_advanced_theory_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_chef_advanced_theory_1')
-
- actor.addSkillMod('food_experimentation', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_chef_advanced_theory_1')
-
- actor.removeSkillMod('food_experimentation', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_chef_advanced_theory_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_chef_advanced_theory_1")
return
diff --git a/scripts/expertise/expertise_domestic_chef_dexterity_1.py b/scripts/expertise/expertise_domestic_chef_dexterity_1.py
index 0a8f7fdd..f3edfc97 100644
--- a/scripts/expertise/expertise_domestic_chef_dexterity_1.py
+++ b/scripts/expertise/expertise_domestic_chef_dexterity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_chef_dexterity_1')
-
- actor.addSkillMod('food_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_chef_dexterity_1')
-
- actor.removeSkillMod('food_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_chef_dexterity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_chef_dexterity_1")
return
diff --git a/scripts/expertise/expertise_domestic_chef_dexterity_2.py b/scripts/expertise/expertise_domestic_chef_dexterity_2.py
index b5430961..006997ac 100644
--- a/scripts/expertise/expertise_domestic_chef_dexterity_2.py
+++ b/scripts/expertise/expertise_domestic_chef_dexterity_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_chef_dexterity_2')
-
- actor.addSkillMod('food_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_chef_dexterity_2')
-
- actor.removeSkillMod('food_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_chef_dexterity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_chef_dexterity_2")
return
diff --git a/scripts/expertise/expertise_domestic_chef_dexterity_3.py b/scripts/expertise/expertise_domestic_chef_dexterity_3.py
index f2e888a5..f35f9cad 100644
--- a/scripts/expertise/expertise_domestic_chef_dexterity_3.py
+++ b/scripts/expertise/expertise_domestic_chef_dexterity_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_chef_dexterity_3')
-
- actor.addSkillMod('food_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_chef_dexterity_3')
-
- actor.removeSkillMod('food_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_chef_dexterity_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_chef_dexterity_3")
return
diff --git a/scripts/expertise/expertise_domestic_chef_dexterity_4.py b/scripts/expertise/expertise_domestic_chef_dexterity_4.py
index 0c8c273e..257e22e5 100644
--- a/scripts/expertise/expertise_domestic_chef_dexterity_4.py
+++ b/scripts/expertise/expertise_domestic_chef_dexterity_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_chef_dexterity_4')
-
- actor.addSkillMod('food_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_chef_dexterity_4')
-
- actor.removeSkillMod('food_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_chef_dexterity_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_chef_dexterity_4")
return
diff --git a/scripts/expertise/expertise_domestic_chef_hypothesis_1.py b/scripts/expertise/expertise_domestic_chef_hypothesis_1.py
index 4d0ef1b3..ce68731f 100644
--- a/scripts/expertise/expertise_domestic_chef_hypothesis_1.py
+++ b/scripts/expertise/expertise_domestic_chef_hypothesis_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_chef_hypothesis_1')
-
- actor.addSkillMod('expertise_experimentation_increase_chef', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_chef_hypothesis_1')
-
- actor.removeSkillMod('expertise_experimentation_increase_chef', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_chef_hypothesis_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_chef_hypothesis_1")
return
diff --git a/scripts/expertise/expertise_domestic_chef_hypothesis_2.py b/scripts/expertise/expertise_domestic_chef_hypothesis_2.py
index 2203b3f4..e27b783b 100644
--- a/scripts/expertise/expertise_domestic_chef_hypothesis_2.py
+++ b/scripts/expertise/expertise_domestic_chef_hypothesis_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_chef_hypothesis_2')
-
- actor.addSkillMod('expertise_experimentation_increase_chef', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_chef_hypothesis_2')
-
- actor.removeSkillMod('expertise_experimentation_increase_chef', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_chef_hypothesis_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_chef_hypothesis_2")
return
diff --git a/scripts/expertise/expertise_domestic_chef_hypothesis_3.py b/scripts/expertise/expertise_domestic_chef_hypothesis_3.py
index b82e5505..578de3e8 100644
--- a/scripts/expertise/expertise_domestic_chef_hypothesis_3.py
+++ b/scripts/expertise/expertise_domestic_chef_hypothesis_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_chef_hypothesis_3')
-
- actor.addSkillMod('expertise_experimentation_increase_chef', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_chef_hypothesis_3')
-
- actor.removeSkillMod('expertise_experimentation_increase_chef', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_chef_hypothesis_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_chef_hypothesis_3")
return
diff --git a/scripts/expertise/expertise_domestic_chef_hypothesis_4.py b/scripts/expertise/expertise_domestic_chef_hypothesis_4.py
index 53e10ab3..65d4a9d4 100644
--- a/scripts/expertise/expertise_domestic_chef_hypothesis_4.py
+++ b/scripts/expertise/expertise_domestic_chef_hypothesis_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_chef_hypothesis_4')
-
- actor.addSkillMod('expertise_experimentation_increase_chef', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_chef_hypothesis_4')
-
- actor.removeSkillMod('expertise_experimentation_increase_chef', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_chef_hypothesis_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_chef_hypothesis_4")
return
diff --git a/scripts/expertise/expertise_domestic_chef_insight_1.py b/scripts/expertise/expertise_domestic_chef_insight_1.py
index 1e07a424..620ede83 100644
--- a/scripts/expertise/expertise_domestic_chef_insight_1.py
+++ b/scripts/expertise/expertise_domestic_chef_insight_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_chef_insight_1')
-
- actor.addSkillMod('expertise_complexity_decrease_chef', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_chef_insight_1')
-
- actor.removeSkillMod('expertise_complexity_decrease_chef', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_chef_insight_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_chef_insight_1")
return
diff --git a/scripts/expertise/expertise_domestic_chef_insight_2.py b/scripts/expertise/expertise_domestic_chef_insight_2.py
index b3c8a9b9..1b3cfd75 100644
--- a/scripts/expertise/expertise_domestic_chef_insight_2.py
+++ b/scripts/expertise/expertise_domestic_chef_insight_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_chef_insight_2')
-
- actor.addSkillMod('expertise_complexity_decrease_chef', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_chef_insight_2')
-
- actor.removeSkillMod('expertise_complexity_decrease_chef', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_chef_insight_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_chef_insight_2")
return
diff --git a/scripts/expertise/expertise_domestic_chef_keen_understanding_1.py b/scripts/expertise/expertise_domestic_chef_keen_understanding_1.py
index 4449c44c..2d6a9548 100644
--- a/scripts/expertise/expertise_domestic_chef_keen_understanding_1.py
+++ b/scripts/expertise/expertise_domestic_chef_keen_understanding_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_chef_keen_understanding_1')
-
- actor.addSkillMod('expertise_complexity_decrease_chef', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_chef_keen_understanding_1')
-
- actor.removeSkillMod('expertise_complexity_decrease_chef', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_chef_keen_understanding_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_chef_keen_understanding_1")
return
diff --git a/scripts/expertise/expertise_domestic_chef_keen_understanding_2.py b/scripts/expertise/expertise_domestic_chef_keen_understanding_2.py
index 3fdc103f..1a8fef1f 100644
--- a/scripts/expertise/expertise_domestic_chef_keen_understanding_2.py
+++ b/scripts/expertise/expertise_domestic_chef_keen_understanding_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_chef_keen_understanding_2')
-
- actor.addSkillMod('expertise_complexity_decrease_chef', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_chef_keen_understanding_2')
-
- actor.removeSkillMod('expertise_complexity_decrease_chef', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_chef_keen_understanding_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_chef_keen_understanding_2")
return
diff --git a/scripts/expertise/expertise_domestic_chef_schematic_1_1.py b/scripts/expertise/expertise_domestic_chef_schematic_1_1.py
index 47138106..8da9070b 100644
--- a/scripts/expertise/expertise_domestic_chef_schematic_1_1.py
+++ b/scripts/expertise/expertise_domestic_chef_schematic_1_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_chef_schematic_1_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_chef_schematic_1_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_chef_schematic_1_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_chef_schematic_1_1")
return
diff --git a/scripts/expertise/expertise_domestic_chef_schematic_2_1.py b/scripts/expertise/expertise_domestic_chef_schematic_2_1.py
index 1ec86323..ec21ccbf 100644
--- a/scripts/expertise/expertise_domestic_chef_schematic_2_1.py
+++ b/scripts/expertise/expertise_domestic_chef_schematic_2_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_chef_schematic_2_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_chef_schematic_2_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_chef_schematic_2_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_chef_schematic_2_1")
return
diff --git a/scripts/expertise/expertise_domestic_resource_processing_1.py b/scripts/expertise/expertise_domestic_resource_processing_1.py
index 62a2adf5..7fa9d660 100644
--- a/scripts/expertise/expertise_domestic_resource_processing_1.py
+++ b/scripts/expertise/expertise_domestic_resource_processing_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_resource_processing_1')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_resource_processing_1')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_resource_processing_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_resource_processing_1")
return
diff --git a/scripts/expertise/expertise_domestic_resource_processing_2.py b/scripts/expertise/expertise_domestic_resource_processing_2.py
index ccd73bd5..8e6e3a11 100644
--- a/scripts/expertise/expertise_domestic_resource_processing_2.py
+++ b/scripts/expertise/expertise_domestic_resource_processing_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_resource_processing_2')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_resource_processing_2')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_resource_processing_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_resource_processing_2")
return
diff --git a/scripts/expertise/expertise_domestic_resource_refinement_1.py b/scripts/expertise/expertise_domestic_resource_refinement_1.py
index fd3e810f..b0352b8e 100644
--- a/scripts/expertise/expertise_domestic_resource_refinement_1.py
+++ b/scripts/expertise/expertise_domestic_resource_refinement_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_resource_refinement_1')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_resource_refinement_1')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_resource_refinement_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_resource_refinement_1")
return
diff --git a/scripts/expertise/expertise_domestic_resource_refinement_2.py b/scripts/expertise/expertise_domestic_resource_refinement_2.py
index 9dfedf70..74913100 100644
--- a/scripts/expertise/expertise_domestic_resource_refinement_2.py
+++ b/scripts/expertise/expertise_domestic_resource_refinement_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_resource_refinement_2')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_resource_refinement_2')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_resource_refinement_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_resource_refinement_2")
return
diff --git a/scripts/expertise/expertise_domestic_tailor_advanced_theory_1.py b/scripts/expertise/expertise_domestic_tailor_advanced_theory_1.py
index 2a84d182..46aa159d 100644
--- a/scripts/expertise/expertise_domestic_tailor_advanced_theory_1.py
+++ b/scripts/expertise/expertise_domestic_tailor_advanced_theory_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_tailor_advanced_theory_1')
-
- actor.addSkillMod('clothing_experimentation', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_tailor_advanced_theory_1')
-
- actor.removeSkillMod('clothing_experimentation', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_tailor_advanced_theory_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_tailor_advanced_theory_1")
return
diff --git a/scripts/expertise/expertise_domestic_tailor_attachment_upgrade_1.py b/scripts/expertise/expertise_domestic_tailor_attachment_upgrade_1.py
index c3be240b..d10933fb 100644
--- a/scripts/expertise/expertise_domestic_tailor_attachment_upgrade_1.py
+++ b/scripts/expertise/expertise_domestic_tailor_attachment_upgrade_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_tailor_attachment_upgrade_1')
-
- actor.addSkillMod('expertise_attachment_upgrade', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_tailor_attachment_upgrade_1')
-
- actor.removeSkillMod('expertise_attachment_upgrade', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_tailor_attachment_upgrade_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_tailor_attachment_upgrade_1")
return
diff --git a/scripts/expertise/expertise_domestic_tailor_dexterity_1.py b/scripts/expertise/expertise_domestic_tailor_dexterity_1.py
index c0c3c0bb..7b05bf09 100644
--- a/scripts/expertise/expertise_domestic_tailor_dexterity_1.py
+++ b/scripts/expertise/expertise_domestic_tailor_dexterity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_tailor_dexterity_1')
-
- actor.addSkillMod('clothing_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_tailor_dexterity_1')
-
- actor.removeSkillMod('clothing_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_tailor_dexterity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_tailor_dexterity_1")
return
diff --git a/scripts/expertise/expertise_domestic_tailor_dexterity_2.py b/scripts/expertise/expertise_domestic_tailor_dexterity_2.py
index 24fb5fc8..16c9b28e 100644
--- a/scripts/expertise/expertise_domestic_tailor_dexterity_2.py
+++ b/scripts/expertise/expertise_domestic_tailor_dexterity_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_tailor_dexterity_2')
-
- actor.addSkillMod('clothing_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_tailor_dexterity_2')
-
- actor.removeSkillMod('clothing_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_tailor_dexterity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_tailor_dexterity_2")
return
diff --git a/scripts/expertise/expertise_domestic_tailor_dexterity_3.py b/scripts/expertise/expertise_domestic_tailor_dexterity_3.py
index 8bee3264..0f4697c9 100644
--- a/scripts/expertise/expertise_domestic_tailor_dexterity_3.py
+++ b/scripts/expertise/expertise_domestic_tailor_dexterity_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_tailor_dexterity_3')
-
- actor.addSkillMod('clothing_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_tailor_dexterity_3')
-
- actor.removeSkillMod('clothing_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_tailor_dexterity_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_tailor_dexterity_3")
return
diff --git a/scripts/expertise/expertise_domestic_tailor_dexterity_4.py b/scripts/expertise/expertise_domestic_tailor_dexterity_4.py
index 828adfd1..8ef125c7 100644
--- a/scripts/expertise/expertise_domestic_tailor_dexterity_4.py
+++ b/scripts/expertise/expertise_domestic_tailor_dexterity_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_tailor_dexterity_4')
-
- actor.addSkillMod('clothing_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_tailor_dexterity_4')
-
- actor.removeSkillMod('clothing_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_tailor_dexterity_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_tailor_dexterity_4")
return
diff --git a/scripts/expertise/expertise_domestic_tailor_hypothesis_1.py b/scripts/expertise/expertise_domestic_tailor_hypothesis_1.py
index d384d0ea..e9e14164 100644
--- a/scripts/expertise/expertise_domestic_tailor_hypothesis_1.py
+++ b/scripts/expertise/expertise_domestic_tailor_hypothesis_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_tailor_hypothesis_1')
-
- actor.addSkillMod('expertise_experimentation_increase_tailor', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_tailor_hypothesis_1')
-
- actor.removeSkillMod('expertise_experimentation_increase_tailor', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_tailor_hypothesis_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_tailor_hypothesis_1")
return
diff --git a/scripts/expertise/expertise_domestic_tailor_hypothesis_2.py b/scripts/expertise/expertise_domestic_tailor_hypothesis_2.py
index dc25b650..0dad6f4d 100644
--- a/scripts/expertise/expertise_domestic_tailor_hypothesis_2.py
+++ b/scripts/expertise/expertise_domestic_tailor_hypothesis_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_tailor_hypothesis_2')
-
- actor.addSkillMod('expertise_experimentation_increase_tailor', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_tailor_hypothesis_2')
-
- actor.removeSkillMod('expertise_experimentation_increase_tailor', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_tailor_hypothesis_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_tailor_hypothesis_2")
return
diff --git a/scripts/expertise/expertise_domestic_tailor_hypothesis_3.py b/scripts/expertise/expertise_domestic_tailor_hypothesis_3.py
index 41572d81..70d55b5c 100644
--- a/scripts/expertise/expertise_domestic_tailor_hypothesis_3.py
+++ b/scripts/expertise/expertise_domestic_tailor_hypothesis_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_tailor_hypothesis_3')
-
- actor.addSkillMod('expertise_experimentation_increase_tailor', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_tailor_hypothesis_3')
-
- actor.removeSkillMod('expertise_experimentation_increase_tailor', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_tailor_hypothesis_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_tailor_hypothesis_3")
return
diff --git a/scripts/expertise/expertise_domestic_tailor_hypothesis_4.py b/scripts/expertise/expertise_domestic_tailor_hypothesis_4.py
index 2009c763..c9a25d1c 100644
--- a/scripts/expertise/expertise_domestic_tailor_hypothesis_4.py
+++ b/scripts/expertise/expertise_domestic_tailor_hypothesis_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_tailor_hypothesis_4')
-
- actor.addSkillMod('expertise_experimentation_increase_tailor', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_tailor_hypothesis_4')
-
- actor.removeSkillMod('expertise_experimentation_increase_tailor', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_tailor_hypothesis_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_tailor_hypothesis_4")
return
diff --git a/scripts/expertise/expertise_domestic_tailor_insight_1.py b/scripts/expertise/expertise_domestic_tailor_insight_1.py
index 1734ab71..dcafb9f2 100644
--- a/scripts/expertise/expertise_domestic_tailor_insight_1.py
+++ b/scripts/expertise/expertise_domestic_tailor_insight_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_tailor_insight_1')
-
- actor.addSkillMod('expertise_complexity_decrease_tailor', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_tailor_insight_1')
-
- actor.removeSkillMod('expertise_complexity_decrease_tailor', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_tailor_insight_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_tailor_insight_1")
return
diff --git a/scripts/expertise/expertise_domestic_tailor_insight_2.py b/scripts/expertise/expertise_domestic_tailor_insight_2.py
index e65231bd..cd307c4c 100644
--- a/scripts/expertise/expertise_domestic_tailor_insight_2.py
+++ b/scripts/expertise/expertise_domestic_tailor_insight_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_tailor_insight_2')
-
- actor.addSkillMod('expertise_complexity_decrease_tailor', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_tailor_insight_2')
-
- actor.removeSkillMod('expertise_complexity_decrease_tailor', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_tailor_insight_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_tailor_insight_2")
return
diff --git a/scripts/expertise/expertise_domestic_tailor_keen_understanding_1.py b/scripts/expertise/expertise_domestic_tailor_keen_understanding_1.py
index 59a274ff..e4c2ab72 100644
--- a/scripts/expertise/expertise_domestic_tailor_keen_understanding_1.py
+++ b/scripts/expertise/expertise_domestic_tailor_keen_understanding_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_tailor_keen_understanding_1')
-
- actor.addSkillMod('expertise_complexity_decrease_tailor', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_tailor_keen_understanding_1')
-
- actor.removeSkillMod('expertise_complexity_decrease_tailor', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_tailor_keen_understanding_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_tailor_keen_understanding_1")
return
diff --git a/scripts/expertise/expertise_domestic_tailor_keen_understanding_2.py b/scripts/expertise/expertise_domestic_tailor_keen_understanding_2.py
index 1504d0e2..b866a83f 100644
--- a/scripts/expertise/expertise_domestic_tailor_keen_understanding_2.py
+++ b/scripts/expertise/expertise_domestic_tailor_keen_understanding_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_tailor_keen_understanding_2')
-
- actor.addSkillMod('expertise_complexity_decrease_tailor', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_tailor_keen_understanding_2')
-
- actor.removeSkillMod('expertise_complexity_decrease_tailor', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_tailor_keen_understanding_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_tailor_keen_understanding_2")
return
diff --git a/scripts/expertise/expertise_domestic_tailor_socket_bonus_1.py b/scripts/expertise/expertise_domestic_tailor_socket_bonus_1.py
index 9c86c720..4cac0dfc 100644
--- a/scripts/expertise/expertise_domestic_tailor_socket_bonus_1.py
+++ b/scripts/expertise/expertise_domestic_tailor_socket_bonus_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.addSkill('expertise_domestic_tailor_socket_bonus_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_dom_1a':
- return
-
- actor.removeSkill('expertise_domestic_tailor_socket_bonus_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_domestic_tailor_socket_bonus_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_domestic_tailor_socket_bonus_1")
return
diff --git a/scripts/expertise/expertise_en_affability_1.py b/scripts/expertise/expertise_en_affability_1.py
index 7057b18d..35dfd326 100644
--- a/scripts/expertise/expertise_en_affability_1.py
+++ b/scripts/expertise/expertise_en_affability_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_affability_1')
-
- actor.addSkillMod('expertise_en_performance_increase', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_affability_1')
-
- actor.removeSkillMod('expertise_en_performance_increase', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_affability_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_affability_1")
return
diff --git a/scripts/expertise/expertise_en_affability_2.py b/scripts/expertise/expertise_en_affability_2.py
index fe7cad65..38b336df 100644
--- a/scripts/expertise/expertise_en_affability_2.py
+++ b/scripts/expertise/expertise_en_affability_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_affability_2')
-
- actor.addSkillMod('expertise_en_performance_increase', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_affability_2')
-
- actor.removeSkillMod('expertise_en_performance_increase', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_affability_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_affability_2")
return
diff --git a/scripts/expertise/expertise_en_affability_3.py b/scripts/expertise/expertise_en_affability_3.py
index 7a73a8ef..0a2cf7fc 100644
--- a/scripts/expertise/expertise_en_affability_3.py
+++ b/scripts/expertise/expertise_en_affability_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_affability_3')
-
- actor.addSkillMod('expertise_en_performance_increase', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_affability_3')
-
- actor.removeSkillMod('expertise_en_performance_increase', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_affability_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_affability_3")
return
diff --git a/scripts/expertise/expertise_en_affability_4.py b/scripts/expertise/expertise_en_affability_4.py
index 3ae998dc..3949d215 100644
--- a/scripts/expertise/expertise_en_affability_4.py
+++ b/scripts/expertise/expertise_en_affability_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_affability_4')
-
- actor.addSkillMod('expertise_en_performance_increase', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_affability_4')
-
- actor.removeSkillMod('expertise_en_performance_increase', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_affability_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_affability_4")
return
diff --git a/scripts/expertise/expertise_en_allure_1.py b/scripts/expertise/expertise_en_allure_1.py
index e4c017a8..9448b911 100644
--- a/scripts/expertise/expertise_en_allure_1.py
+++ b/scripts/expertise/expertise_en_allure_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_allure_1')
-
- actor.addSkillMod('expertise_buff_duration_line_en_unhealthy_fixation_debuff', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_allure_1')
-
- actor.removeSkillMod('expertise_buff_duration_line_en_unhealthy_fixation_debuff', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_allure_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_allure_1")
return
diff --git a/scripts/expertise/expertise_en_allure_2.py b/scripts/expertise/expertise_en_allure_2.py
index bb95fb7b..831a7c36 100644
--- a/scripts/expertise/expertise_en_allure_2.py
+++ b/scripts/expertise/expertise_en_allure_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_allure_2')
-
- actor.addSkillMod('expertise_buff_duration_line_en_unhealthy_fixation_debuff', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_allure_2')
-
- actor.removeSkillMod('expertise_buff_duration_line_en_unhealthy_fixation_debuff', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_allure_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_allure_2")
return
diff --git a/scripts/expertise/expertise_en_allure_3.py b/scripts/expertise/expertise_en_allure_3.py
index b0385c29..f896a1d2 100644
--- a/scripts/expertise/expertise_en_allure_3.py
+++ b/scripts/expertise/expertise_en_allure_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_allure_3')
-
- actor.addSkillMod('expertise_buff_duration_line_en_unhealthy_fixation_debuff', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_allure_3')
-
- actor.removeSkillMod('expertise_buff_duration_line_en_unhealthy_fixation_debuff', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_allure_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_allure_3")
return
diff --git a/scripts/expertise/expertise_en_annulling_1.py b/scripts/expertise/expertise_en_annulling_1.py
index a2565ffd..6055557a 100644
--- a/scripts/expertise/expertise_en_annulling_1.py
+++ b/scripts/expertise/expertise_en_annulling_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_annulling_1')
-
- actor.addSkillMod('expertise_buff_en_void_dance_buff', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_annulling_1')
-
- actor.removeSkillMod('expertise_buff_en_void_dance_buff', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_annulling_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_annulling_1")
return
diff --git a/scripts/expertise/expertise_en_annulling_2.py b/scripts/expertise/expertise_en_annulling_2.py
index c80a1394..e06fc2ef 100644
--- a/scripts/expertise/expertise_en_annulling_2.py
+++ b/scripts/expertise/expertise_en_annulling_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_annulling_2')
-
- actor.addSkillMod('expertise_buff_en_void_dance_buff', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_annulling_2')
-
- actor.removeSkillMod('expertise_buff_en_void_dance_buff', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_annulling_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_annulling_2")
return
diff --git a/scripts/expertise/expertise_en_annulling_3.py b/scripts/expertise/expertise_en_annulling_3.py
index 457479f8..b26f4814 100644
--- a/scripts/expertise/expertise_en_annulling_3.py
+++ b/scripts/expertise/expertise_en_annulling_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_annulling_3')
-
- actor.addSkillMod('expertise_buff_en_void_dance_buff', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_annulling_3')
-
- actor.removeSkillMod('expertise_buff_en_void_dance_buff', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_annulling_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_annulling_3")
return
diff --git a/scripts/expertise/expertise_en_conditioned_vessel_1.py b/scripts/expertise/expertise_en_conditioned_vessel_1.py
index 49149612..896a8752 100644
--- a/scripts/expertise/expertise_en_conditioned_vessel_1.py
+++ b/scripts/expertise/expertise_en_conditioned_vessel_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_conditioned_vessel_1')
-
- actor.addSkillMod('expertise_damage_melee', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_conditioned_vessel_1')
-
- actor.removeSkillMod('expertise_damage_melee', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_conditioned_vessel_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_conditioned_vessel_1")
return
diff --git a/scripts/expertise/expertise_en_conditioned_vessel_2.py b/scripts/expertise/expertise_en_conditioned_vessel_2.py
index e8dd80c1..e7123ab7 100644
--- a/scripts/expertise/expertise_en_conditioned_vessel_2.py
+++ b/scripts/expertise/expertise_en_conditioned_vessel_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_conditioned_vessel_2')
-
- actor.addSkillMod('expertise_damage_melee', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_conditioned_vessel_2')
-
- actor.removeSkillMod('expertise_damage_melee', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_conditioned_vessel_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_conditioned_vessel_2")
return
diff --git a/scripts/expertise/expertise_en_conditioned_vessel_3.py b/scripts/expertise/expertise_en_conditioned_vessel_3.py
index e32a7943..e0292169 100644
--- a/scripts/expertise/expertise_en_conditioned_vessel_3.py
+++ b/scripts/expertise/expertise_en_conditioned_vessel_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_conditioned_vessel_3')
-
- actor.addSkillMod('expertise_damage_melee', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_conditioned_vessel_3')
-
- actor.removeSkillMod('expertise_damage_melee', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_conditioned_vessel_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_conditioned_vessel_3")
return
diff --git a/scripts/expertise/expertise_en_conditioned_vessel_4.py b/scripts/expertise/expertise_en_conditioned_vessel_4.py
index ce6146de..f0d7b6e7 100644
--- a/scripts/expertise/expertise_en_conditioned_vessel_4.py
+++ b/scripts/expertise/expertise_en_conditioned_vessel_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_conditioned_vessel_4')
-
- actor.addSkillMod('expertise_damage_melee', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_conditioned_vessel_4')
-
- actor.removeSkillMod('expertise_damage_melee', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_conditioned_vessel_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_conditioned_vessel_4")
return
diff --git a/scripts/expertise/expertise_en_controlled_spin_1.py b/scripts/expertise/expertise_en_controlled_spin_1.py
index 4ff248df..dc088a17 100644
--- a/scripts/expertise/expertise_en_controlled_spin_1.py
+++ b/scripts/expertise/expertise_en_controlled_spin_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_controlled_spin_1')
-
- actor.addSkillMod('expertise_damage_line_en_sweeping_pirouette', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_controlled_spin_1')
-
- actor.removeSkillMod('expertise_damage_line_en_sweeping_pirouette', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_controlled_spin_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_controlled_spin_1")
return
diff --git a/scripts/expertise/expertise_en_controlled_spin_2.py b/scripts/expertise/expertise_en_controlled_spin_2.py
index 3b9f1f51..018aae71 100644
--- a/scripts/expertise/expertise_en_controlled_spin_2.py
+++ b/scripts/expertise/expertise_en_controlled_spin_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_controlled_spin_2')
-
- actor.addSkillMod('expertise_damage_line_en_sweeping_pirouette', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_controlled_spin_2')
-
- actor.removeSkillMod('expertise_damage_line_en_sweeping_pirouette', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_controlled_spin_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_controlled_spin_2")
return
diff --git a/scripts/expertise/expertise_en_controlled_spin_3.py b/scripts/expertise/expertise_en_controlled_spin_3.py
index 222ca61c..4850d8cc 100644
--- a/scripts/expertise/expertise_en_controlled_spin_3.py
+++ b/scripts/expertise/expertise_en_controlled_spin_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_controlled_spin_3')
-
- actor.addSkillMod('expertise_damage_line_en_sweeping_pirouette', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_controlled_spin_3')
-
- actor.removeSkillMod('expertise_damage_line_en_sweeping_pirouette', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_controlled_spin_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_controlled_spin_3")
return
diff --git a/scripts/expertise/expertise_en_creativity_1.py b/scripts/expertise/expertise_en_creativity_1.py
index 0583185f..ec5120d4 100644
--- a/scripts/expertise/expertise_en_creativity_1.py
+++ b/scripts/expertise/expertise_en_creativity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_creativity_1')
-
- actor.addSkillMod('expertise_en_inspire_base_point_increase', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_creativity_1')
-
- actor.removeSkillMod('expertise_en_inspire_base_point_increase', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_creativity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_creativity_1")
return
diff --git a/scripts/expertise/expertise_en_creativity_2.py b/scripts/expertise/expertise_en_creativity_2.py
index e04aea75..9e919439 100644
--- a/scripts/expertise/expertise_en_creativity_2.py
+++ b/scripts/expertise/expertise_en_creativity_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_creativity_2')
-
- actor.addSkillMod('expertise_en_inspire_base_point_increase', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_creativity_2')
-
- actor.removeSkillMod('expertise_en_inspire_base_point_increase', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_creativity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_creativity_2")
return
diff --git a/scripts/expertise/expertise_en_creativity_3.py b/scripts/expertise/expertise_en_creativity_3.py
index 581aff38..a4e8153f 100644
--- a/scripts/expertise/expertise_en_creativity_3.py
+++ b/scripts/expertise/expertise_en_creativity_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_creativity_3')
-
- actor.addSkillMod('expertise_en_inspire_base_point_increase', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_creativity_3')
-
- actor.removeSkillMod('expertise_en_inspire_base_point_increase', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_creativity_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_creativity_3")
return
diff --git a/scripts/expertise/expertise_en_creativity_4.py b/scripts/expertise/expertise_en_creativity_4.py
index 35867c4a..f743578d 100644
--- a/scripts/expertise/expertise_en_creativity_4.py
+++ b/scripts/expertise/expertise_en_creativity_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_creativity_4')
-
- actor.addSkillMod('expertise_en_inspire_base_point_increase', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_creativity_4')
-
- actor.removeSkillMod('expertise_en_inspire_base_point_increase', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_creativity_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_creativity_4")
return
diff --git a/scripts/expertise/expertise_en_dramatic_flair_1.py b/scripts/expertise/expertise_en_dramatic_flair_1.py
index 4195deb4..bd280ed0 100644
--- a/scripts/expertise/expertise_en_dramatic_flair_1.py
+++ b/scripts/expertise/expertise_en_dramatic_flair_1.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_dramatic_flair_1')
-
- actor.addSkillMod('constitution_modified', 15)
- actor.addSkillMod('strength_modified', 15)
- actor.addSkillMod('stamina_modified', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_dramatic_flair_1')
-
- actor.removeSkillMod('constitution_modified', 15)
- actor.removeSkillMod('strength_modified', 15)
- actor.removeSkillMod('stamina_modified', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_dramatic_flair_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_dramatic_flair_1")
return
diff --git a/scripts/expertise/expertise_en_dramatic_flair_2.py b/scripts/expertise/expertise_en_dramatic_flair_2.py
index 8706a5d3..7d32d156 100644
--- a/scripts/expertise/expertise_en_dramatic_flair_2.py
+++ b/scripts/expertise/expertise_en_dramatic_flair_2.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_dramatic_flair_2')
-
- actor.addSkillMod('constitution_modified', 15)
- actor.addSkillMod('strength_modified', 15)
- actor.addSkillMod('stamina_modified', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_dramatic_flair_2')
-
- actor.removeSkillMod('constitution_modified', 15)
- actor.removeSkillMod('strength_modified', 15)
- actor.removeSkillMod('stamina_modified', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_dramatic_flair_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_dramatic_flair_2")
return
diff --git a/scripts/expertise/expertise_en_dramatic_flair_3.py b/scripts/expertise/expertise_en_dramatic_flair_3.py
index 070e4796..16533340 100644
--- a/scripts/expertise/expertise_en_dramatic_flair_3.py
+++ b/scripts/expertise/expertise_en_dramatic_flair_3.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_dramatic_flair_3')
-
- actor.addSkillMod('constitution_modified', 15)
- actor.addSkillMod('strength_modified', 15)
- actor.addSkillMod('stamina_modified', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_dramatic_flair_3')
-
- actor.removeSkillMod('constitution_modified', 15)
- actor.removeSkillMod('strength_modified', 15)
- actor.removeSkillMod('stamina_modified', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_dramatic_flair_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_dramatic_flair_3")
return
diff --git a/scripts/expertise/expertise_en_dramatic_flair_4.py b/scripts/expertise/expertise_en_dramatic_flair_4.py
index 74442f0d..ccb52574 100644
--- a/scripts/expertise/expertise_en_dramatic_flair_4.py
+++ b/scripts/expertise/expertise_en_dramatic_flair_4.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_dramatic_flair_4')
-
- actor.addSkillMod('constitution_modified', 15)
- actor.addSkillMod('strength_modified', 15)
- actor.addSkillMod('stamina_modified', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_dramatic_flair_4')
-
- actor.removeSkillMod('constitution_modified', 15)
- actor.removeSkillMod('strength_modified', 15)
- actor.removeSkillMod('stamina_modified', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_dramatic_flair_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_dramatic_flair_4")
return
diff --git a/scripts/expertise/expertise_en_emotional_prescience_1.py b/scripts/expertise/expertise_en_emotional_prescience_1.py
index 3b7660fa..f9177d7c 100644
--- a/scripts/expertise/expertise_en_emotional_prescience_1.py
+++ b/scripts/expertise/expertise_en_emotional_prescience_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_emotional_prescience_1')
-
- actor.addSkillMod('expertise_glancing_blow_all', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_emotional_prescience_1')
-
- actor.removeSkillMod('expertise_glancing_blow_all', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_emotional_prescience_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_emotional_prescience_1")
return
diff --git a/scripts/expertise/expertise_en_emotional_prescience_2.py b/scripts/expertise/expertise_en_emotional_prescience_2.py
index f114424f..5afb81a1 100644
--- a/scripts/expertise/expertise_en_emotional_prescience_2.py
+++ b/scripts/expertise/expertise_en_emotional_prescience_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_emotional_prescience_2')
-
- actor.addSkillMod('expertise_glancing_blow_all', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_emotional_prescience_2')
-
- actor.removeSkillMod('expertise_glancing_blow_all', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_emotional_prescience_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_emotional_prescience_2")
return
diff --git a/scripts/expertise/expertise_en_emotional_prescience_3.py b/scripts/expertise/expertise_en_emotional_prescience_3.py
index 237d5361..8f5b2500 100644
--- a/scripts/expertise/expertise_en_emotional_prescience_3.py
+++ b/scripts/expertise/expertise_en_emotional_prescience_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_emotional_prescience_3')
-
- actor.addSkillMod('expertise_glancing_blow_all', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_emotional_prescience_3')
-
- actor.removeSkillMod('expertise_glancing_blow_all', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_emotional_prescience_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_emotional_prescience_3")
return
diff --git a/scripts/expertise/expertise_en_emotional_prescience_4.py b/scripts/expertise/expertise_en_emotional_prescience_4.py
index 482d9bb2..1a2ce7e1 100644
--- a/scripts/expertise/expertise_en_emotional_prescience_4.py
+++ b/scripts/expertise/expertise_en_emotional_prescience_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_emotional_prescience_4')
-
- actor.addSkillMod('expertise_glancing_blow_all', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_emotional_prescience_4')
-
- actor.removeSkillMod('expertise_glancing_blow_all', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_emotional_prescience_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_emotional_prescience_4")
return
diff --git a/scripts/expertise/expertise_en_encore_heal_1.py b/scripts/expertise/expertise_en_encore_heal_1.py
index 45e2ff4a..14d899a0 100644
--- a/scripts/expertise/expertise_en_encore_heal_1.py
+++ b/scripts/expertise/expertise_en_encore_heal_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_encore_heal_1')
-
- actor.addSkillMod('expertise_healing_line_en_heal', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_encore_heal_1')
-
- actor.removeSkillMod('expertise_healing_line_en_heal', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_encore_heal_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_encore_heal_1")
return
diff --git a/scripts/expertise/expertise_en_encore_heal_2.py b/scripts/expertise/expertise_en_encore_heal_2.py
index ea8aea9d..1ac0eb53 100644
--- a/scripts/expertise/expertise_en_encore_heal_2.py
+++ b/scripts/expertise/expertise_en_encore_heal_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_encore_heal_2')
-
- actor.addSkillMod('expertise_healing_line_en_heal', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_encore_heal_2')
-
- actor.removeSkillMod('expertise_healing_line_en_heal', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_encore_heal_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_encore_heal_2")
return
diff --git a/scripts/expertise/expertise_en_encore_heal_3.py b/scripts/expertise/expertise_en_encore_heal_3.py
index d8036306..348742d1 100644
--- a/scripts/expertise/expertise_en_encore_heal_3.py
+++ b/scripts/expertise/expertise_en_encore_heal_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_encore_heal_3')
-
- actor.addSkillMod('expertise_healing_line_en_heal', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_encore_heal_3')
-
- actor.removeSkillMod('expertise_healing_line_en_heal', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_encore_heal_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_encore_heal_3")
return
diff --git a/scripts/expertise/expertise_en_flush_with_success_1.py b/scripts/expertise/expertise_en_flush_with_success_1.py
index f94ae5e5..b25fc909 100644
--- a/scripts/expertise/expertise_en_flush_with_success_1.py
+++ b/scripts/expertise/expertise_en_flush_with_success_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_flush_with_success_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_flush_with_success_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('en_flush_with_success_buff_package')
-
+ actor.addAbility("en_flush_with_success_buff_package")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('en_flush_with_success_buff_package')
-
+ actor.removeAbility("en_flush_with_success_buff_package")
return
diff --git a/scripts/expertise/expertise_en_focused_control_1.py b/scripts/expertise/expertise_en_focused_control_1.py
index d781a25e..99d0436a 100644
--- a/scripts/expertise/expertise_en_focused_control_1.py
+++ b/scripts/expertise/expertise_en_focused_control_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_focused_control_1')
-
- actor.addSkillMod('expertise_action_weapon_melee', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_focused_control_1')
-
- actor.removeSkillMod('expertise_action_weapon_melee', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_focused_control_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_focused_control_1")
return
diff --git a/scripts/expertise/expertise_en_focused_control_2.py b/scripts/expertise/expertise_en_focused_control_2.py
index 9e78ebe3..2b81f293 100644
--- a/scripts/expertise/expertise_en_focused_control_2.py
+++ b/scripts/expertise/expertise_en_focused_control_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_focused_control_2')
-
- actor.addSkillMod('expertise_action_weapon_melee', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_focused_control_2')
-
- actor.removeSkillMod('expertise_action_weapon_melee', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_focused_control_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_focused_control_2")
return
diff --git a/scripts/expertise/expertise_en_focused_control_3.py b/scripts/expertise/expertise_en_focused_control_3.py
index 17a8b154..b256a48d 100644
--- a/scripts/expertise/expertise_en_focused_control_3.py
+++ b/scripts/expertise/expertise_en_focused_control_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_focused_control_3')
-
- actor.addSkillMod('expertise_action_weapon_melee', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_focused_control_3')
-
- actor.removeSkillMod('expertise_action_weapon_melee', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_focused_control_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_focused_control_3")
return
diff --git a/scripts/expertise/expertise_en_focused_control_4.py b/scripts/expertise/expertise_en_focused_control_4.py
index cc4e07a9..f3ec007f 100644
--- a/scripts/expertise/expertise_en_focused_control_4.py
+++ b/scripts/expertise/expertise_en_focused_control_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_focused_control_4')
-
- actor.addSkillMod('expertise_action_weapon_melee', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_focused_control_4')
-
- actor.removeSkillMod('expertise_action_weapon_melee', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_focused_control_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_focused_control_4")
return
diff --git a/scripts/expertise/expertise_en_folded_inward_1.py b/scripts/expertise/expertise_en_folded_inward_1.py
index 55c57629..142d632c 100644
--- a/scripts/expertise/expertise_en_folded_inward_1.py
+++ b/scripts/expertise/expertise_en_folded_inward_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_folded_inward_1')
-
- actor.addSkillMod('expertise_innate_protection_all', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_folded_inward_1')
-
- actor.removeSkillMod('expertise_innate_protection_all', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_folded_inward_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_folded_inward_1")
return
diff --git a/scripts/expertise/expertise_en_folded_inward_2.py b/scripts/expertise/expertise_en_folded_inward_2.py
index 65df6e4f..3c56cd2c 100644
--- a/scripts/expertise/expertise_en_folded_inward_2.py
+++ b/scripts/expertise/expertise_en_folded_inward_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_folded_inward_2')
-
- actor.addSkillMod('expertise_innate_protection_all', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_folded_inward_2')
-
- actor.removeSkillMod('expertise_innate_protection_all', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_folded_inward_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_folded_inward_2")
return
diff --git a/scripts/expertise/expertise_en_folded_inward_3.py b/scripts/expertise/expertise_en_folded_inward_3.py
index 7717392f..40b26c21 100644
--- a/scripts/expertise/expertise_en_folded_inward_3.py
+++ b/scripts/expertise/expertise_en_folded_inward_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_folded_inward_3')
-
- actor.addSkillMod('expertise_innate_protection_all', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_folded_inward_3')
-
- actor.removeSkillMod('expertise_innate_protection_all', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_folded_inward_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_folded_inward_3")
return
diff --git a/scripts/expertise/expertise_en_folded_inward_4.py b/scripts/expertise/expertise_en_folded_inward_4.py
index 7ece6014..94c18354 100644
--- a/scripts/expertise/expertise_en_folded_inward_4.py
+++ b/scripts/expertise/expertise_en_folded_inward_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_folded_inward_4')
-
- actor.addSkillMod('expertise_innate_protection_all', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_folded_inward_4')
-
- actor.removeSkillMod('expertise_innate_protection_all', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_folded_inward_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_folded_inward_4")
return
diff --git a/scripts/expertise/expertise_en_go_with_the_flow_1.py b/scripts/expertise/expertise_en_go_with_the_flow_1.py
index 5f8c9bfa..e51fdee5 100644
--- a/scripts/expertise/expertise_en_go_with_the_flow_1.py
+++ b/scripts/expertise/expertise_en_go_with_the_flow_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_go_with_the_flow_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_go_with_the_flow_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('en_go_with_the_flow_buff_package')
-
+ actor.addAbility("en_go_with_the_flow_buff_package")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('en_go_with_the_flow_buff_package')
-
+ actor.removeAbility("en_go_with_the_flow_buff_package")
return
diff --git a/scripts/expertise/expertise_en_harvest_faire_1.py b/scripts/expertise/expertise_en_harvest_faire_1.py
index 924feeb4..21238bc0 100644
--- a/scripts/expertise/expertise_en_harvest_faire_1.py
+++ b/scripts/expertise/expertise_en_harvest_faire_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_harvest_faire_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_harvest_faire_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('en_harvest_faire_buff_package')
-
+ actor.addAbility("en_harvest_fair_buff_package")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('en_harvest_faire_buff_package')
-
+ actor.removeAbility("en_harvest_fair_buff_package")
return
diff --git a/scripts/expertise/expertise_en_heal_1.py b/scripts/expertise/expertise_en_heal_1.py
index a80678b6..d4e3d669 100644
--- a/scripts/expertise/expertise_en_heal_1.py
+++ b/scripts/expertise/expertise_en_heal_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_heal_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_heal_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('en_heal_1')
-
+ actor.addAbility("en_heal_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('en_heal_1')
-
+ actor.removeAbility("en_heal_1")
return
diff --git a/scripts/expertise/expertise_en_holism_1.py b/scripts/expertise/expertise_en_holism_1.py
index 8240988c..af3b40a1 100644
--- a/scripts/expertise/expertise_en_holism_1.py
+++ b/scripts/expertise/expertise_en_holism_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_holism_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_holism_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('en_healer_buff_package')
-
+ actor.addAbility("en_healer_buff_package")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('en_healer_buff_package')
-
+ actor.removeAbility("en_healer_buff_package")
return
diff --git a/scripts/expertise/expertise_en_holographic_duration_1.py b/scripts/expertise/expertise_en_holographic_duration_1.py
index 2b9bcf4d..04ec0485 100644
--- a/scripts/expertise/expertise_en_holographic_duration_1.py
+++ b/scripts/expertise/expertise_en_holographic_duration_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_holographic_duration_1')
-
- actor.addSkillMod('expertise_en_holographic_duration', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_holographic_duration_1')
-
- actor.removeSkillMod('expertise_en_holographic_duration', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_holographic_duration_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_holographic_duration_1")
return
diff --git a/scripts/expertise/expertise_en_holographic_mastery_1.py b/scripts/expertise/expertise_en_holographic_mastery_1.py
index 49e65ba1..cb7f5424 100644
--- a/scripts/expertise/expertise_en_holographic_mastery_1.py
+++ b/scripts/expertise/expertise_en_holographic_mastery_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_holographic_mastery_1')
-
- actor.addSkillMod('expertise_en_holographic_additional_backup', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_holographic_mastery_1')
-
- actor.removeSkillMod('expertise_en_holographic_additional_backup', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_holographic_mastery_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_holographic_mastery_1")
return
diff --git a/scripts/expertise/expertise_en_holographic_mastery_2.py b/scripts/expertise/expertise_en_holographic_mastery_2.py
index 231c7f2e..6fc49ee0 100644
--- a/scripts/expertise/expertise_en_holographic_mastery_2.py
+++ b/scripts/expertise/expertise_en_holographic_mastery_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_holographic_mastery_2')
-
- actor.addSkillMod('expertise_en_holographic_additional_backup', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_holographic_mastery_2')
-
- actor.removeSkillMod('expertise_en_holographic_additional_backup', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_holographic_mastery_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_holographic_mastery_2")
return
diff --git a/scripts/expertise/expertise_en_improv_1.py b/scripts/expertise/expertise_en_improv_1.py
index 72cdde87..b2b0352b 100644
--- a/scripts/expertise/expertise_en_improv_1.py
+++ b/scripts/expertise/expertise_en_improv_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_improv_1')
-
- actor.addSkillMod('expertise_en_improv', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_improv_1')
-
- actor.removeSkillMod('expertise_en_improv', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_improv_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_improv_1")
return
diff --git a/scripts/expertise/expertise_en_inspired_fitness_1.py b/scripts/expertise/expertise_en_inspired_fitness_1.py
index 0c390c15..1c557c8d 100644
--- a/scripts/expertise/expertise_en_inspired_fitness_1.py
+++ b/scripts/expertise/expertise_en_inspired_fitness_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_fitness_1')
-
- actor.addSkillMod('expertise_en_inspire_attrib_increase', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_fitness_1')
-
- actor.removeSkillMod('expertise_en_inspire_attrib_increase', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_fitness_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_fitness_1")
return
diff --git a/scripts/expertise/expertise_en_inspired_fitness_2.py b/scripts/expertise/expertise_en_inspired_fitness_2.py
index 6c5673b2..92101da2 100644
--- a/scripts/expertise/expertise_en_inspired_fitness_2.py
+++ b/scripts/expertise/expertise_en_inspired_fitness_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_fitness_2')
-
- actor.addSkillMod('expertise_en_inspire_attrib_increase', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_fitness_2')
-
- actor.removeSkillMod('expertise_en_inspire_attrib_increase', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_fitness_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_fitness_2")
return
diff --git a/scripts/expertise/expertise_en_inspired_fitness_3.py b/scripts/expertise/expertise_en_inspired_fitness_3.py
index e5612aa8..91839161 100644
--- a/scripts/expertise/expertise_en_inspired_fitness_3.py
+++ b/scripts/expertise/expertise_en_inspired_fitness_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_fitness_3')
-
- actor.addSkillMod('expertise_en_inspire_attrib_increase', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_fitness_3')
-
- actor.removeSkillMod('expertise_en_inspire_attrib_increase', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_fitness_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_fitness_3")
return
diff --git a/scripts/expertise/expertise_en_inspired_fitness_4.py b/scripts/expertise/expertise_en_inspired_fitness_4.py
index e3dd6795..649ae342 100644
--- a/scripts/expertise/expertise_en_inspired_fitness_4.py
+++ b/scripts/expertise/expertise_en_inspired_fitness_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_fitness_4')
-
- actor.addSkillMod('expertise_en_inspire_attrib_increase', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_fitness_4')
-
- actor.removeSkillMod('expertise_en_inspire_attrib_increase', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_fitness_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_fitness_4")
return
diff --git a/scripts/expertise/expertise_en_inspired_industry_1.py b/scripts/expertise/expertise_en_inspired_industry_1.py
index 984745b2..f544cc87 100644
--- a/scripts/expertise/expertise_en_inspired_industry_1.py
+++ b/scripts/expertise/expertise_en_inspired_industry_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_industry_1')
-
- actor.addSkillMod('expertise_en_inspire_trader_increase', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_industry_1')
-
- actor.removeSkillMod('expertise_en_inspire_trader_increase', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_industry_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_industry_1")
return
diff --git a/scripts/expertise/expertise_en_inspired_industry_2.py b/scripts/expertise/expertise_en_inspired_industry_2.py
index bf04fe23..4c0f93d3 100644
--- a/scripts/expertise/expertise_en_inspired_industry_2.py
+++ b/scripts/expertise/expertise_en_inspired_industry_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_industry_2')
-
- actor.addSkillMod('expertise_en_inspire_trader_increase', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_industry_2')
-
- actor.removeSkillMod('expertise_en_inspire_trader_increase', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_industry_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_industry_2")
return
diff --git a/scripts/expertise/expertise_en_inspired_industry_3.py b/scripts/expertise/expertise_en_inspired_industry_3.py
index 7aa507cd..619e0efa 100644
--- a/scripts/expertise/expertise_en_inspired_industry_3.py
+++ b/scripts/expertise/expertise_en_inspired_industry_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_industry_3')
-
- actor.addSkillMod('expertise_en_inspire_trader_increase', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_industry_3')
-
- actor.removeSkillMod('expertise_en_inspire_trader_increase', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_industry_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_industry_3")
return
diff --git a/scripts/expertise/expertise_en_inspired_industry_4.py b/scripts/expertise/expertise_en_inspired_industry_4.py
index eb6e23dc..8a99a16c 100644
--- a/scripts/expertise/expertise_en_inspired_industry_4.py
+++ b/scripts/expertise/expertise_en_inspired_industry_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_industry_4')
-
- actor.addSkillMod('expertise_en_inspire_trader_increase', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_industry_4')
-
- actor.removeSkillMod('expertise_en_inspire_trader_increase', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_industry_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_industry_4")
return
diff --git a/scripts/expertise/expertise_en_inspired_reactions_1.py b/scripts/expertise/expertise_en_inspired_reactions_1.py
index 70e22c6b..90e56a58 100644
--- a/scripts/expertise/expertise_en_inspired_reactions_1.py
+++ b/scripts/expertise/expertise_en_inspired_reactions_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_reactions_1')
-
- actor.addSkillMod('expertise_en_inspire_proc_chance_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_reactions_1')
-
- actor.removeSkillMod('expertise_en_inspire_proc_chance_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_reactions_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_reactions_1")
return
diff --git a/scripts/expertise/expertise_en_inspired_reactions_2.py b/scripts/expertise/expertise_en_inspired_reactions_2.py
index 8c43af78..9fb0f596 100644
--- a/scripts/expertise/expertise_en_inspired_reactions_2.py
+++ b/scripts/expertise/expertise_en_inspired_reactions_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_reactions_2')
-
- actor.addSkillMod('expertise_en_inspire_proc_chance_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_reactions_2')
-
- actor.removeSkillMod('expertise_en_inspire_proc_chance_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_reactions_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_reactions_2")
return
diff --git a/scripts/expertise/expertise_en_inspired_reactions_3.py b/scripts/expertise/expertise_en_inspired_reactions_3.py
index 8cb9b345..0ae224f0 100644
--- a/scripts/expertise/expertise_en_inspired_reactions_3.py
+++ b/scripts/expertise/expertise_en_inspired_reactions_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_reactions_3')
-
- actor.addSkillMod('expertise_en_inspire_proc_chance_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_reactions_3')
-
- actor.removeSkillMod('expertise_en_inspire_proc_chance_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_reactions_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_reactions_3")
return
diff --git a/scripts/expertise/expertise_en_inspired_reactions_4.py b/scripts/expertise/expertise_en_inspired_reactions_4.py
index fabf14bf..c3818211 100644
--- a/scripts/expertise/expertise_en_inspired_reactions_4.py
+++ b/scripts/expertise/expertise_en_inspired_reactions_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_reactions_4')
-
- actor.addSkillMod('expertise_en_inspire_proc_chance_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_reactions_4')
-
- actor.removeSkillMod('expertise_en_inspire_proc_chance_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_reactions_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_reactions_4")
return
diff --git a/scripts/expertise/expertise_en_inspired_resilience_1.py b/scripts/expertise/expertise_en_inspired_resilience_1.py
index f758fba6..c62a7767 100644
--- a/scripts/expertise/expertise_en_inspired_resilience_1.py
+++ b/scripts/expertise/expertise_en_inspired_resilience_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_resilience_1')
-
- actor.addSkillMod('expertise_en_inspire_resist_increase', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_resilience_1')
-
- actor.removeSkillMod('expertise_en_inspire_resist_increase', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_resilience_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_resilience_1")
return
diff --git a/scripts/expertise/expertise_en_inspired_resilience_2.py b/scripts/expertise/expertise_en_inspired_resilience_2.py
index 9bb7a05a..fe23ae90 100644
--- a/scripts/expertise/expertise_en_inspired_resilience_2.py
+++ b/scripts/expertise/expertise_en_inspired_resilience_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_resilience_2')
-
- actor.addSkillMod('expertise_en_inspire_resist_increase', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_resilience_2')
-
- actor.removeSkillMod('expertise_en_inspire_resist_increase', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_resilience_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_resilience_2")
return
diff --git a/scripts/expertise/expertise_en_inspired_resilience_3.py b/scripts/expertise/expertise_en_inspired_resilience_3.py
index 9be4cfb8..1506e79b 100644
--- a/scripts/expertise/expertise_en_inspired_resilience_3.py
+++ b/scripts/expertise/expertise_en_inspired_resilience_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_resilience_3')
-
- actor.addSkillMod('expertise_en_inspire_resist_increase', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_resilience_3')
-
- actor.removeSkillMod('expertise_en_inspire_resist_increase', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_resilience_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_resilience_3")
return
diff --git a/scripts/expertise/expertise_en_inspired_resilience_4.py b/scripts/expertise/expertise_en_inspired_resilience_4.py
index 964c5a3d..f6db50ad 100644
--- a/scripts/expertise/expertise_en_inspired_resilience_4.py
+++ b/scripts/expertise/expertise_en_inspired_resilience_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_resilience_4')
-
- actor.addSkillMod('expertise_en_inspire_resist_increase', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_resilience_4')
-
- actor.removeSkillMod('expertise_en_inspire_resist_increase', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_resilience_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_resilience_4")
return
diff --git a/scripts/expertise/expertise_en_inspired_warfare_1.py b/scripts/expertise/expertise_en_inspired_warfare_1.py
index e912692f..f1f8049e 100644
--- a/scripts/expertise/expertise_en_inspired_warfare_1.py
+++ b/scripts/expertise/expertise_en_inspired_warfare_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_warfare_1')
-
- actor.addSkillMod('expertise_en_combat_buff_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_warfare_1')
-
- actor.removeSkillMod('expertise_en_combat_buff_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_warfare_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_warfare_1")
return
diff --git a/scripts/expertise/expertise_en_inspired_warfare_2.py b/scripts/expertise/expertise_en_inspired_warfare_2.py
index 20007561..541c27f1 100644
--- a/scripts/expertise/expertise_en_inspired_warfare_2.py
+++ b/scripts/expertise/expertise_en_inspired_warfare_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_warfare_2')
-
- actor.addSkillMod('expertise_en_combat_buff_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_warfare_2')
-
- actor.removeSkillMod('expertise_en_combat_buff_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_warfare_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_warfare_2")
return
diff --git a/scripts/expertise/expertise_en_inspired_warfare_3.py b/scripts/expertise/expertise_en_inspired_warfare_3.py
index 8c94697d..00781c96 100644
--- a/scripts/expertise/expertise_en_inspired_warfare_3.py
+++ b/scripts/expertise/expertise_en_inspired_warfare_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_warfare_3')
-
- actor.addSkillMod('expertise_en_combat_buff_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_warfare_3')
-
- actor.removeSkillMod('expertise_en_combat_buff_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_warfare_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_warfare_3")
return
diff --git a/scripts/expertise/expertise_en_inspired_warfare_4.py b/scripts/expertise/expertise_en_inspired_warfare_4.py
index 9a235b2e..159615a1 100644
--- a/scripts/expertise/expertise_en_inspired_warfare_4.py
+++ b/scripts/expertise/expertise_en_inspired_warfare_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_inspired_warfare_4')
-
- actor.addSkillMod('expertise_en_combat_buff_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_inspired_warfare_4')
-
- actor.removeSkillMod('expertise_en_combat_buff_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_inspired_warfare_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_inspired_warfare_4")
return
diff --git a/scripts/expertise/expertise_en_intense_performer_1.py b/scripts/expertise/expertise_en_intense_performer_1.py
index 545cb29d..4a064e58 100644
--- a/scripts/expertise/expertise_en_intense_performer_1.py
+++ b/scripts/expertise/expertise_en_intense_performer_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_intense_performer_1')
-
- actor.addSkillMod('expertise_en_inspire_pulse_duration_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_intense_performer_1')
-
- actor.removeSkillMod('expertise_en_inspire_pulse_duration_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_intense_performer_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_intense_performer_1")
return
diff --git a/scripts/expertise/expertise_en_intense_performer_2.py b/scripts/expertise/expertise_en_intense_performer_2.py
index 5cab16af..6650519c 100644
--- a/scripts/expertise/expertise_en_intense_performer_2.py
+++ b/scripts/expertise/expertise_en_intense_performer_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_intense_performer_2')
-
- actor.addSkillMod('expertise_en_inspire_pulse_duration_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_intense_performer_2')
-
- actor.removeSkillMod('expertise_en_inspire_pulse_duration_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_intense_performer_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_intense_performer_2")
return
diff --git a/scripts/expertise/expertise_en_intense_performer_3.py b/scripts/expertise/expertise_en_intense_performer_3.py
index 2906eb60..0c213a0d 100644
--- a/scripts/expertise/expertise_en_intense_performer_3.py
+++ b/scripts/expertise/expertise_en_intense_performer_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_intense_performer_3')
-
- actor.addSkillMod('expertise_en_inspire_pulse_duration_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_intense_performer_3')
-
- actor.removeSkillMod('expertise_en_inspire_pulse_duration_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_intense_performer_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_intense_performer_3")
return
diff --git a/scripts/expertise/expertise_en_intense_performer_4.py b/scripts/expertise/expertise_en_intense_performer_4.py
index b1a35e36..82cf75e6 100644
--- a/scripts/expertise/expertise_en_intense_performer_4.py
+++ b/scripts/expertise/expertise_en_intense_performer_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_intense_performer_4')
-
- actor.addSkillMod('expertise_en_inspire_pulse_duration_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_intense_performer_4')
-
- actor.removeSkillMod('expertise_en_inspire_pulse_duration_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_intense_performer_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_intense_performer_4")
return
diff --git a/scripts/expertise/expertise_en_lasting_impression_1.py b/scripts/expertise/expertise_en_lasting_impression_1.py
index 00d71f54..cd2f80fe 100644
--- a/scripts/expertise/expertise_en_lasting_impression_1.py
+++ b/scripts/expertise/expertise_en_lasting_impression_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_lasting_impression_1')
-
- actor.addSkillMod('expertise_en_inspire_buff_duration_increase', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_lasting_impression_1')
-
- actor.removeSkillMod('expertise_en_inspire_buff_duration_increase', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_lasting_impression_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_lasting_impression_1")
return
diff --git a/scripts/expertise/expertise_en_lasting_impression_2.py b/scripts/expertise/expertise_en_lasting_impression_2.py
index af780c13..2c17365a 100644
--- a/scripts/expertise/expertise_en_lasting_impression_2.py
+++ b/scripts/expertise/expertise_en_lasting_impression_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_lasting_impression_2')
-
- actor.addSkillMod('expertise_en_inspire_buff_duration_increase', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_lasting_impression_2')
-
- actor.removeSkillMod('expertise_en_inspire_buff_duration_increase', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_lasting_impression_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_lasting_impression_2")
return
diff --git a/scripts/expertise/expertise_en_lasting_impression_3.py b/scripts/expertise/expertise_en_lasting_impression_3.py
index 15e469e6..2012d616 100644
--- a/scripts/expertise/expertise_en_lasting_impression_3.py
+++ b/scripts/expertise/expertise_en_lasting_impression_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_lasting_impression_3')
-
- actor.addSkillMod('expertise_en_inspire_buff_duration_increase', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_lasting_impression_3')
-
- actor.removeSkillMod('expertise_en_inspire_buff_duration_increase', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_lasting_impression_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_lasting_impression_3")
return
diff --git a/scripts/expertise/expertise_en_lasting_impression_4.py b/scripts/expertise/expertise_en_lasting_impression_4.py
index 6d5abf56..c90caf25 100644
--- a/scripts/expertise/expertise_en_lasting_impression_4.py
+++ b/scripts/expertise/expertise_en_lasting_impression_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_lasting_impression_4')
-
- actor.addSkillMod('expertise_en_inspire_buff_duration_increase', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_lasting_impression_4')
-
- actor.removeSkillMod('expertise_en_inspire_buff_duration_increase', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_lasting_impression_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_lasting_impression_4")
return
diff --git a/scripts/expertise/expertise_en_project_will_1.py b/scripts/expertise/expertise_en_project_will_1.py
index 621d018b..c1a2a52a 100644
--- a/scripts/expertise/expertise_en_project_will_1.py
+++ b/scripts/expertise/expertise_en_project_will_1.py
@@ -1,48 +1,28 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_project_will_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_project_will_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('en_project_will_0')
-
+ if actor.getLevel() >= 18:
+ actor.addAbility("en_project_will_0")
+ if actor.getLevel() >= 30:
+ actor.addAbility("en_project_will_1")
+ if actor.getLevel() >= 42:
+ actor.addAbility("en_project_will_2")
+ if actor.getLevel() >= 54:
+ actor.addAbility("en_project_will_3")
+ if actor.getLevel() >= 66:
+ actor.addAbility("en_project_will_4")
+ if actor.getLevel() >= 78:
+ actor.addAbility("en_project_will_5")
+ if actor.getLevel() >= 90:
+ actor.addAbility("en_project_will_6")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('en_project_will_0')
-
+ actor.removeAbility("en_project_will_0")
+ actor.removeAbility("en_project_will_1")
+ actor.removeAbility("en_project_will_2")
+ actor.removeAbility("en_project_will_3")
+ actor.removeAbility("en_project_will_4")
+ actor.removeAbility("en_project_will_5")
+ actor.removeAbility("en_project_will_6")
return
diff --git a/scripts/expertise/expertise_en_rising_spirit_1.py b/scripts/expertise/expertise_en_rising_spirit_1.py
index e6d8c87a..a2fda212 100644
--- a/scripts/expertise/expertise_en_rising_spirit_1.py
+++ b/scripts/expertise/expertise_en_rising_spirit_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_rising_spirit_1')
-
- actor.addSkillMod('expertise_undiminished_critical_melee', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_rising_spirit_1')
-
- actor.removeSkillMod('expertise_undiminished_critical_melee', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_rising_spirit_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_rising_spirit_1")
return
diff --git a/scripts/expertise/expertise_en_rising_spirit_2.py b/scripts/expertise/expertise_en_rising_spirit_2.py
index 9071bce3..c7bafd45 100644
--- a/scripts/expertise/expertise_en_rising_spirit_2.py
+++ b/scripts/expertise/expertise_en_rising_spirit_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_rising_spirit_2')
-
- actor.addSkillMod('expertise_undiminished_critical_melee', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_rising_spirit_2')
-
- actor.removeSkillMod('expertise_undiminished_critical_melee', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_rising_spirit_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_rising_spirit_2")
return
diff --git a/scripts/expertise/expertise_en_rising_spirit_3.py b/scripts/expertise/expertise_en_rising_spirit_3.py
index 80eb4c9d..05f1324e 100644
--- a/scripts/expertise/expertise_en_rising_spirit_3.py
+++ b/scripts/expertise/expertise_en_rising_spirit_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_rising_spirit_3')
-
- actor.addSkillMod('expertise_undiminished_critical_melee', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_rising_spirit_3')
-
- actor.removeSkillMod('expertise_undiminished_critical_melee', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_rising_spirit_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_rising_spirit_3")
return
diff --git a/scripts/expertise/expertise_en_rising_spirit_4.py b/scripts/expertise/expertise_en_rising_spirit_4.py
index 8151c478..3deb8a46 100644
--- a/scripts/expertise/expertise_en_rising_spirit_4.py
+++ b/scripts/expertise/expertise_en_rising_spirit_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_rising_spirit_4')
-
- actor.addSkillMod('expertise_undiminished_critical_melee', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_rising_spirit_4')
-
- actor.removeSkillMod('expertise_undiminished_critical_melee', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_rising_spirit_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_rising_spirit_4")
return
diff --git a/scripts/expertise/expertise_en_second_chance_1.py b/scripts/expertise/expertise_en_second_chance_1.py
index b8a8fd5b..ae7e08ae 100644
--- a/scripts/expertise/expertise_en_second_chance_1.py
+++ b/scripts/expertise/expertise_en_second_chance_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_second_chance_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_second_chance_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('en_second_chance_buff_package')
-
+ actor.addAbility("en_second_chance_buff_package")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('en_second_chance_buff_package')
-
+ actor.removeAbility("en_second_chance_buff_package")
return
diff --git a/scripts/expertise/expertise_en_show_stopper_1.py b/scripts/expertise/expertise_en_show_stopper_1.py
index e462f413..bb347a8e 100644
--- a/scripts/expertise/expertise_en_show_stopper_1.py
+++ b/scripts/expertise/expertise_en_show_stopper_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_show_stopper_1')
-
- actor.addSkillMod('expertise_critical_hit_reduction', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_show_stopper_1')
-
- actor.removeSkillMod('expertise_critical_hit_reduction', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_show_stopper_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_show_stopper_1")
return
diff --git a/scripts/expertise/expertise_en_show_stopper_2.py b/scripts/expertise/expertise_en_show_stopper_2.py
index 91828c58..99493ec7 100644
--- a/scripts/expertise/expertise_en_show_stopper_2.py
+++ b/scripts/expertise/expertise_en_show_stopper_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_show_stopper_2')
-
- actor.addSkillMod('expertise_critical_hit_reduction', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_show_stopper_2')
-
- actor.removeSkillMod('expertise_critical_hit_reduction', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_show_stopper_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_show_stopper_2")
return
diff --git a/scripts/expertise/expertise_en_show_stopper_3.py b/scripts/expertise/expertise_en_show_stopper_3.py
index ea0d428b..4f70ff63 100644
--- a/scripts/expertise/expertise_en_show_stopper_3.py
+++ b/scripts/expertise/expertise_en_show_stopper_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_show_stopper_3')
-
- actor.addSkillMod('expertise_critical_hit_reduction', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_show_stopper_3')
-
- actor.removeSkillMod('expertise_critical_hit_reduction', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_show_stopper_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_show_stopper_3")
return
diff --git a/scripts/expertise/expertise_en_spiral_kick_1.py b/scripts/expertise/expertise_en_spiral_kick_1.py
index f58c1624..f369c1c0 100644
--- a/scripts/expertise/expertise_en_spiral_kick_1.py
+++ b/scripts/expertise/expertise_en_spiral_kick_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_spiral_kick_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_spiral_kick_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('en_spiral_kick_0')
-
+ if actor.getLevel() >= 34:
+ actor.addAbility("en_spiral_kick_0")
+ if actor.getLevel() >= 48:
+ actor.addAbility("en_spiral_kick_1")
+ if actor.getLevel() >= 62:
+ actor.addAbility("en_spiral_kick_2")
+ if actor.getLevel() >= 76:
+ actor.addAbility("en_spiral_kick_3")
+ if actor.getLevel() >= 90:
+ actor.addAbility("en_spiral_kick_4")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('en_spiral_kick_0')
-
+ actor.removeAbility("en_spiral_kick_0")
+ actor.removeAbility("en_spiral_kick_1")
+ actor.removeAbility("en_spiral_kick_2")
+ actor.removeAbility("en_spiral_kick_3")
+ actor.removeAbility("en_spiral_kick_4")
return
diff --git a/scripts/expertise/expertise_en_sprint_1.py b/scripts/expertise/expertise_en_sprint_1.py
index c1c59fec..130650ef 100644
--- a/scripts/expertise/expertise_en_sprint_1.py
+++ b/scripts/expertise/expertise_en_sprint_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_sprint_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_sprint_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('en_sprint_1')
-
+ actor.addAbility("en_sprint_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('en_sprint_1')
-
+ actor.removeAbility("en_sprint_1")
return
diff --git a/scripts/expertise/expertise_en_stage_presence_1.py b/scripts/expertise/expertise_en_stage_presence_1.py
index 03d43717..073086aa 100644
--- a/scripts/expertise/expertise_en_stage_presence_1.py
+++ b/scripts/expertise/expertise_en_stage_presence_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_stage_presence_1')
-
- actor.addSkillMod('expertise_dodge', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_stage_presence_1')
-
- actor.removeSkillMod('expertise_dodge', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_stage_presence_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_stage_presence_1")
return
diff --git a/scripts/expertise/expertise_en_stage_presence_2.py b/scripts/expertise/expertise_en_stage_presence_2.py
index 08d9c491..95a28985 100644
--- a/scripts/expertise/expertise_en_stage_presence_2.py
+++ b/scripts/expertise/expertise_en_stage_presence_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_stage_presence_2')
-
- actor.addSkillMod('expertise_dodge', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_stage_presence_2')
-
- actor.removeSkillMod('expertise_dodge', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_stage_presence_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_stage_presence_2")
return
diff --git a/scripts/expertise/expertise_en_stage_presence_3.py b/scripts/expertise/expertise_en_stage_presence_3.py
index 6761e10e..827f44ea 100644
--- a/scripts/expertise/expertise_en_stage_presence_3.py
+++ b/scripts/expertise/expertise_en_stage_presence_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_stage_presence_3')
-
- actor.addSkillMod('expertise_dodge', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_stage_presence_3')
-
- actor.removeSkillMod('expertise_dodge', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_stage_presence_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_stage_presence_3")
return
diff --git a/scripts/expertise/expertise_en_strike_1.py b/scripts/expertise/expertise_en_strike_1.py
index c254bca2..6e76a074 100644
--- a/scripts/expertise/expertise_en_strike_1.py
+++ b/scripts/expertise/expertise_en_strike_1.py
@@ -1,48 +1,28 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_strike_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_strike_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('en_strike_0')
-
+ if actor.getLevel() >= 10:
+ actor.addAbility("en_strike_0")
+ if actor.getLevel() >= 22:
+ actor.addAbility("en_strike_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("en_strike_2")
+ if actor.getLevel() >= 46:
+ actor.addAbility("en_strike_3")
+ if actor.getLevel() >= 58:
+ actor.addAbility("en_strike_4")
+ if actor.getLevel() >= 70:
+ actor.addAbility("en_strike_5")
+ if actor.getLevel() >= 82:
+ actor.addAbility("en_strike_6")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('en_strike_0')
-
+ actor.removeAbility("en_strike_0")
+ actor.removeAbility("en_strike_1")
+ actor.removeAbility("en_strike_2")
+ actor.removeAbility("en_strike_3")
+ actor.removeAbility("en_strike_4")
+ actor.removeAbility("en_strike_5")
+ actor.removeAbility("en_strike_6")
return
diff --git a/scripts/expertise/expertise_en_sweeping_pirouette_1.py b/scripts/expertise/expertise_en_sweeping_pirouette_1.py
index 34fb24f9..906f27d2 100644
--- a/scripts/expertise/expertise_en_sweeping_pirouette_1.py
+++ b/scripts/expertise/expertise_en_sweeping_pirouette_1.py
@@ -1,48 +1,20 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_sweeping_pirouette_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_sweeping_pirouette_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('en_sweeping_pirouette_0')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("en_sweeping_pirouette_0")
+ if actor.getLevel() >= 38:
+ actor.addAbility("en_sweeping_pirouette_1")
+ if actor.getLevel() >= 50:
+ actor.addAbility("en_sweeping_pirouette_2")
+ if actor.getLevel() >= 62:
+ actor.addAbility("en_sweeping_pirouette_3")
+ if actor.getLevel() >= 74:
+ actor.addAbility("en_sweeping_pirouette_4")
+ if actor.getLevel() >= 86:
+ actor.addAbility("en_sweeping_pirouette_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('en_sweeping_pirouette_0')
-
+ actor.removeAbility("en_sweeping_pirouette_0")
return
diff --git a/scripts/expertise/expertise_en_thought_as_action_1.py b/scripts/expertise/expertise_en_thought_as_action_1.py
index 773cdea4..8d109903 100644
--- a/scripts/expertise/expertise_en_thought_as_action_1.py
+++ b/scripts/expertise/expertise_en_thought_as_action_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_thought_as_action_1')
-
- actor.addSkillMod('expertise_innate_protection_all', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_thought_as_action_1')
-
- actor.removeSkillMod('expertise_innate_protection_all', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_thought_as_action_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_thought_as_action_1")
return
diff --git a/scripts/expertise/expertise_en_thought_as_action_2.py b/scripts/expertise/expertise_en_thought_as_action_2.py
index a22d2466..bd397576 100644
--- a/scripts/expertise/expertise_en_thought_as_action_2.py
+++ b/scripts/expertise/expertise_en_thought_as_action_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_thought_as_action_2')
-
- actor.addSkillMod('expertise_innate_protection_all', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_thought_as_action_2')
-
- actor.removeSkillMod('expertise_innate_protection_all', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_thought_as_action_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_thought_as_action_2")
return
diff --git a/scripts/expertise/expertise_en_thought_as_action_3.py b/scripts/expertise/expertise_en_thought_as_action_3.py
index 3f0d6007..abbee833 100644
--- a/scripts/expertise/expertise_en_thought_as_action_3.py
+++ b/scripts/expertise/expertise_en_thought_as_action_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_thought_as_action_3')
-
- actor.addSkillMod('expertise_innate_protection_all', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_thought_as_action_3')
-
- actor.removeSkillMod('expertise_innate_protection_all', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_thought_as_action_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_thought_as_action_3")
return
diff --git a/scripts/expertise/expertise_en_thought_as_action_4.py b/scripts/expertise/expertise_en_thought_as_action_4.py
index 3df60d96..76958de5 100644
--- a/scripts/expertise/expertise_en_thought_as_action_4.py
+++ b/scripts/expertise/expertise_en_thought_as_action_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_thought_as_action_4')
-
- actor.addSkillMod('expertise_innate_protection_all', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_thought_as_action_4')
-
- actor.removeSkillMod('expertise_innate_protection_all', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_thought_as_action_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_thought_as_action_4")
return
diff --git a/scripts/expertise/expertise_en_thrill_1.py b/scripts/expertise/expertise_en_thrill_1.py
index 7db5db05..82c68807 100644
--- a/scripts/expertise/expertise_en_thrill_1.py
+++ b/scripts/expertise/expertise_en_thrill_1.py
@@ -1,48 +1,16 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_thrill_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_thrill_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('en_thrill')
-
+ if actor.getLevel() >= 10:
+ actor.addAbility("en_thrill")
+ if actor.getLevel() >= 34:
+ actor.addAbility("en_thrill_1")
+ if actor.getLevel() >= 62:
+ actor.addAbility("en_thrill_2")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('en_thrill')
-
+ actor.removeAbility("en_thrill")
+ actor.removeAbility("en_thrill_1")
+ actor.removeAbility("en_thrill_2")
return
diff --git a/scripts/expertise/expertise_en_to_the_hilt_1.py b/scripts/expertise/expertise_en_to_the_hilt_1.py
index 612021f5..18db5e7d 100644
--- a/scripts/expertise/expertise_en_to_the_hilt_1.py
+++ b/scripts/expertise/expertise_en_to_the_hilt_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_to_the_hilt_1')
-
- actor.addSkillMod('expertise_buff_duration_line_en_debuff_thrill', 2)
- actor.addSkillMod('expertise_en_debuff_thrill_increase', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_to_the_hilt_1')
-
- actor.removeSkillMod('expertise_buff_duration_line_en_debuff_thrill', 2)
- actor.removeSkillMod('expertise_en_debuff_thrill_increase', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_to_the_hilt_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_to_the_hilt_1")
return
diff --git a/scripts/expertise/expertise_en_to_the_hilt_2.py b/scripts/expertise/expertise_en_to_the_hilt_2.py
index 1e86749d..5546a211 100644
--- a/scripts/expertise/expertise_en_to_the_hilt_2.py
+++ b/scripts/expertise/expertise_en_to_the_hilt_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_to_the_hilt_2')
-
- actor.addSkillMod('expertise_buff_duration_line_en_debuff_thrill', 2)
- actor.addSkillMod('expertise_en_debuff_thrill_increase', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_to_the_hilt_2')
-
- actor.removeSkillMod('expertise_buff_duration_line_en_debuff_thrill', 2)
- actor.removeSkillMod('expertise_en_debuff_thrill_increase', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_to_the_hilt_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_to_the_hilt_2")
return
diff --git a/scripts/expertise/expertise_en_unhealthy_fixation_1.py b/scripts/expertise/expertise_en_unhealthy_fixation_1.py
index 9b22e915..2e2a2f30 100644
--- a/scripts/expertise/expertise_en_unhealthy_fixation_1.py
+++ b/scripts/expertise/expertise_en_unhealthy_fixation_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_unhealthy_fixation_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_unhealthy_fixation_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('en_unhealthy_fixation')
-
+ actor.addAbility("en_unhealthy_fixation")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('en_unhealthy_fixation')
-
+ actor.removeAbility("en_unhealthy_fixation")
return
diff --git a/scripts/expertise/expertise_en_uprising_1.py b/scripts/expertise/expertise_en_uprising_1.py
index efe9a7dd..dc55de01 100644
--- a/scripts/expertise/expertise_en_uprising_1.py
+++ b/scripts/expertise/expertise_en_uprising_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_uprising_1')
-
- actor.addSkillMod('expertise_critical_line_en_spiral_kick', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_uprising_1')
-
- actor.removeSkillMod('expertise_critical_line_en_spiral_kick', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_uprising_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_uprising_1")
return
diff --git a/scripts/expertise/expertise_en_uprising_2.py b/scripts/expertise/expertise_en_uprising_2.py
index d05c6024..5540f85b 100644
--- a/scripts/expertise/expertise_en_uprising_2.py
+++ b/scripts/expertise/expertise_en_uprising_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_uprising_2')
-
- actor.addSkillMod('expertise_critical_line_en_spiral_kick', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_uprising_2')
-
- actor.removeSkillMod('expertise_critical_line_en_spiral_kick', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_en_uprising_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_en_uprising_2")
return
diff --git a/scripts/expertise/expertise_en_void_dance_1.py b/scripts/expertise/expertise_en_void_dance_1.py
index 578b08a5..7127a2c4 100644
--- a/scripts/expertise/expertise_en_void_dance_1.py
+++ b/scripts/expertise/expertise_en_void_dance_1.py
@@ -1,48 +1,16 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.addSkill('expertise_en_void_dance_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'entertainer_1a':
- return
-
- actor.removeSkill('expertise_en_void_dance_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('en_void_dance')
-
+ if actor.getLevel() >= 10:
+ actor.addAbility("en_void_dance_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("en_void_dance_2")
+ if actor.getLevel() >= 62:
+ actor.addAbility("en_void_dance_3")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('en_void_dance')
-
+ actor.removeAbility("en_void_dance_1")
+ actor.removeAbility("en_void_dance_2")
+ actor.removeAbility("en_void_dance_3")
return
diff --git a/scripts/expertise/expertise_engineering_artisan_advanced_theory_1.py b/scripts/expertise/expertise_engineering_artisan_advanced_theory_1.py
index aaf17d68..bd6b7454 100644
--- a/scripts/expertise/expertise_engineering_artisan_advanced_theory_1.py
+++ b/scripts/expertise/expertise_engineering_artisan_advanced_theory_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_artisan_advanced_theory_1')
-
- actor.addSkillMod('general_experimentation', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_artisan_advanced_theory_1')
-
- actor.removeSkillMod('general_experimentation', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_artisan_advanced_theory_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_artisan_advanced_theory_1")
return
diff --git a/scripts/expertise/expertise_engineering_artisan_dexterity_1.py b/scripts/expertise/expertise_engineering_artisan_dexterity_1.py
index 1f4d7860..3e103c16 100644
--- a/scripts/expertise/expertise_engineering_artisan_dexterity_1.py
+++ b/scripts/expertise/expertise_engineering_artisan_dexterity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_artisan_dexterity_1')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_artisan_dexterity_1')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_artisan_dexterity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_artisan_dexterity_1")
return
diff --git a/scripts/expertise/expertise_engineering_artisan_dexterity_2.py b/scripts/expertise/expertise_engineering_artisan_dexterity_2.py
index 28cff05e..50edc60b 100644
--- a/scripts/expertise/expertise_engineering_artisan_dexterity_2.py
+++ b/scripts/expertise/expertise_engineering_artisan_dexterity_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_artisan_dexterity_2')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_artisan_dexterity_2')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_artisan_dexterity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_artisan_dexterity_2")
return
diff --git a/scripts/expertise/expertise_engineering_artisan_dexterity_3.py b/scripts/expertise/expertise_engineering_artisan_dexterity_3.py
index 11e3b091..0cd8c37e 100644
--- a/scripts/expertise/expertise_engineering_artisan_dexterity_3.py
+++ b/scripts/expertise/expertise_engineering_artisan_dexterity_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_artisan_dexterity_3')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_artisan_dexterity_3')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_artisan_dexterity_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_artisan_dexterity_3")
return
diff --git a/scripts/expertise/expertise_engineering_artisan_dexterity_4.py b/scripts/expertise/expertise_engineering_artisan_dexterity_4.py
index ae8bab3f..34c64977 100644
--- a/scripts/expertise/expertise_engineering_artisan_dexterity_4.py
+++ b/scripts/expertise/expertise_engineering_artisan_dexterity_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_artisan_dexterity_4')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_artisan_dexterity_4')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_artisan_dexterity_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_artisan_dexterity_4")
return
diff --git a/scripts/expertise/expertise_engineering_artisan_hypothesis_1.py b/scripts/expertise/expertise_engineering_artisan_hypothesis_1.py
index eb7b0aa0..c2daa093 100644
--- a/scripts/expertise/expertise_engineering_artisan_hypothesis_1.py
+++ b/scripts/expertise/expertise_engineering_artisan_hypothesis_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_artisan_hypothesis_1')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_artisan_hypothesis_1')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_artisan_hypothesis_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_artisan_hypothesis_1")
return
diff --git a/scripts/expertise/expertise_engineering_artisan_hypothesis_2.py b/scripts/expertise/expertise_engineering_artisan_hypothesis_2.py
index 14e79abd..96592a1b 100644
--- a/scripts/expertise/expertise_engineering_artisan_hypothesis_2.py
+++ b/scripts/expertise/expertise_engineering_artisan_hypothesis_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_artisan_hypothesis_2')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_artisan_hypothesis_2')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_artisan_hypothesis_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_artisan_hypothesis_2")
return
diff --git a/scripts/expertise/expertise_engineering_artisan_hypothesis_3.py b/scripts/expertise/expertise_engineering_artisan_hypothesis_3.py
index 29b90722..e4f6a8b1 100644
--- a/scripts/expertise/expertise_engineering_artisan_hypothesis_3.py
+++ b/scripts/expertise/expertise_engineering_artisan_hypothesis_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_artisan_hypothesis_3')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_artisan_hypothesis_3')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_artisan_hypothesis_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_artisan_hypothesis_3")
return
diff --git a/scripts/expertise/expertise_engineering_artisan_hypothesis_4.py b/scripts/expertise/expertise_engineering_artisan_hypothesis_4.py
index 1ffb1f9a..95f93fbd 100644
--- a/scripts/expertise/expertise_engineering_artisan_hypothesis_4.py
+++ b/scripts/expertise/expertise_engineering_artisan_hypothesis_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_artisan_hypothesis_4')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_artisan_hypothesis_4')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_artisan_hypothesis_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_artisan_hypothesis_4")
return
diff --git a/scripts/expertise/expertise_engineering_cybernetic_advanced_theory_1.py b/scripts/expertise/expertise_engineering_cybernetic_advanced_theory_1.py
index 2a99c79f..e7cf240d 100644
--- a/scripts/expertise/expertise_engineering_cybernetic_advanced_theory_1.py
+++ b/scripts/expertise/expertise_engineering_cybernetic_advanced_theory_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_cybernetic_advanced_theory_1')
-
- actor.addSkillMod('cybernetic_experimentation', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_cybernetic_advanced_theory_1')
-
- actor.removeSkillMod('cybernetic_experimentation', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_cybernetic_advanced_theory_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_cybernetic_advanced_theory_1")
return
diff --git a/scripts/expertise/expertise_engineering_cybernetic_hypothesis_1.py b/scripts/expertise/expertise_engineering_cybernetic_hypothesis_1.py
index a23e203d..bbf9682e 100644
--- a/scripts/expertise/expertise_engineering_cybernetic_hypothesis_1.py
+++ b/scripts/expertise/expertise_engineering_cybernetic_hypothesis_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_cybernetic_hypothesis_1')
-
- actor.addSkillMod('expertise_experimentation_increase_cybernetic', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_cybernetic_hypothesis_1')
-
- actor.removeSkillMod('expertise_experimentation_increase_cybernetic', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_cybernetic_hypothesis_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_cybernetic_hypothesis_1")
return
diff --git a/scripts/expertise/expertise_engineering_cybernetic_hypothesis_2.py b/scripts/expertise/expertise_engineering_cybernetic_hypothesis_2.py
index 017890cd..6c7d6b20 100644
--- a/scripts/expertise/expertise_engineering_cybernetic_hypothesis_2.py
+++ b/scripts/expertise/expertise_engineering_cybernetic_hypothesis_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_cybernetic_hypothesis_2')
-
- actor.addSkillMod('expertise_experimentation_increase_cybernetic', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_cybernetic_hypothesis_2')
-
- actor.removeSkillMod('expertise_experimentation_increase_cybernetic', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_cybernetic_hypothesis_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_cybernetic_hypothesis_2")
return
diff --git a/scripts/expertise/expertise_engineering_cybernetic_hypothesis_3.py b/scripts/expertise/expertise_engineering_cybernetic_hypothesis_3.py
index adef4cc9..fc963038 100644
--- a/scripts/expertise/expertise_engineering_cybernetic_hypothesis_3.py
+++ b/scripts/expertise/expertise_engineering_cybernetic_hypothesis_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_cybernetic_hypothesis_3')
-
- actor.addSkillMod('expertise_experimentation_increase_cybernetic', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_cybernetic_hypothesis_3')
-
- actor.removeSkillMod('expertise_experimentation_increase_cybernetic', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_cybernetic_hypothesis_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_cybernetic_hypothesis_3")
return
diff --git a/scripts/expertise/expertise_engineering_cybernetic_hypothesis_4.py b/scripts/expertise/expertise_engineering_cybernetic_hypothesis_4.py
index 85aab1da..4f15a6d8 100644
--- a/scripts/expertise/expertise_engineering_cybernetic_hypothesis_4.py
+++ b/scripts/expertise/expertise_engineering_cybernetic_hypothesis_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_cybernetic_hypothesis_4')
-
- actor.addSkillMod('expertise_experimentation_increase_cybernetic', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_cybernetic_hypothesis_4')
-
- actor.removeSkillMod('expertise_experimentation_increase_cybernetic', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_cybernetic_hypothesis_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_cybernetic_hypothesis_4")
return
diff --git a/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_1.py b/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_1.py
index 1a6c2b4e..658dd7df 100644
--- a/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_1.py
+++ b/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_cybernetic_negative_effects_reduction_1')
-
- actor.addSkillMod('expertise_cybernetic_negative_effects_reduction', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_cybernetic_negative_effects_reduction_1')
-
- actor.removeSkillMod('expertise_cybernetic_negative_effects_reduction', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_cybernetic_negative_effects_reduction_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_cybernetic_negative_effects_reduction_1")
return
diff --git a/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_2.py b/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_2.py
index 52dfd22b..d04160b0 100644
--- a/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_2.py
+++ b/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_cybernetic_negative_effects_reduction_2')
-
- actor.addSkillMod('expertise_cybernetic_negative_effects_reduction', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_cybernetic_negative_effects_reduction_2')
-
- actor.removeSkillMod('expertise_cybernetic_negative_effects_reduction', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_cybernetic_negative_effects_reduction_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_cybernetic_negative_effects_reduction_2")
return
diff --git a/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_3.py b/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_3.py
index eb2c7532..9c98e65b 100644
--- a/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_3.py
+++ b/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_cybernetic_negative_effects_reduction_3')
-
- actor.addSkillMod('expertise_cybernetic_negative_effects_reduction', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_cybernetic_negative_effects_reduction_3')
-
- actor.removeSkillMod('expertise_cybernetic_negative_effects_reduction', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_cybernetic_negative_effects_reduction_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_cybernetic_negative_effects_reduction_3")
return
diff --git a/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_4.py b/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_4.py
index da6d8d56..93bd0c81 100644
--- a/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_4.py
+++ b/scripts/expertise/expertise_engineering_cybernetic_negative_effects_reduction_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_cybernetic_negative_effects_reduction_4')
-
- actor.addSkillMod('expertise_cybernetic_negative_effects_reduction', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_cybernetic_negative_effects_reduction_4')
-
- actor.removeSkillMod('expertise_cybernetic_negative_effects_reduction', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_cybernetic_negative_effects_reduction_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_cybernetic_negative_effects_reduction_4")
return
diff --git a/scripts/expertise/expertise_engineering_cybernetic_s03_schematics_1.py b/scripts/expertise/expertise_engineering_cybernetic_s03_schematics_1.py
index f20459ec..59dacda7 100644
--- a/scripts/expertise/expertise_engineering_cybernetic_s03_schematics_1.py
+++ b/scripts/expertise/expertise_engineering_cybernetic_s03_schematics_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_cybernetic_s03_schematics_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_cybernetic_s03_schematics_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_cybernetic_s03_schematics_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_cybernetic_s03_schematics_1")
return
diff --git a/scripts/expertise/expertise_engineering_droid_advanced_theory_1.py b/scripts/expertise/expertise_engineering_droid_advanced_theory_1.py
index 36c97c2d..8435fcae 100644
--- a/scripts/expertise/expertise_engineering_droid_advanced_theory_1.py
+++ b/scripts/expertise/expertise_engineering_droid_advanced_theory_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_droid_advanced_theory_1')
-
- actor.addSkillMod('droid_experimentation', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_droid_advanced_theory_1')
-
- actor.removeSkillMod('droid_experimentation', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_droid_advanced_theory_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_droid_advanced_theory_1")
return
diff --git a/scripts/expertise/expertise_engineering_droid_dexterity_1.py b/scripts/expertise/expertise_engineering_droid_dexterity_1.py
index 4195d6b0..58da3ce9 100644
--- a/scripts/expertise/expertise_engineering_droid_dexterity_1.py
+++ b/scripts/expertise/expertise_engineering_droid_dexterity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_droid_dexterity_1')
-
- actor.addSkillMod('droid_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_droid_dexterity_1')
-
- actor.removeSkillMod('droid_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_droid_dexterity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_droid_dexterity_1")
return
diff --git a/scripts/expertise/expertise_engineering_droid_dexterity_2.py b/scripts/expertise/expertise_engineering_droid_dexterity_2.py
index 53052f6a..5608862f 100644
--- a/scripts/expertise/expertise_engineering_droid_dexterity_2.py
+++ b/scripts/expertise/expertise_engineering_droid_dexterity_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_droid_dexterity_2')
-
- actor.addSkillMod('droid_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_droid_dexterity_2')
-
- actor.removeSkillMod('droid_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_droid_dexterity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_droid_dexterity_2")
return
diff --git a/scripts/expertise/expertise_engineering_droid_dexterity_3.py b/scripts/expertise/expertise_engineering_droid_dexterity_3.py
index 438fbf7c..a5f8e6df 100644
--- a/scripts/expertise/expertise_engineering_droid_dexterity_3.py
+++ b/scripts/expertise/expertise_engineering_droid_dexterity_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_droid_dexterity_3')
-
- actor.addSkillMod('droid_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_droid_dexterity_3')
-
- actor.removeSkillMod('droid_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_droid_dexterity_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_droid_dexterity_3")
return
diff --git a/scripts/expertise/expertise_engineering_droid_dexterity_4.py b/scripts/expertise/expertise_engineering_droid_dexterity_4.py
index 6547a684..ce65339b 100644
--- a/scripts/expertise/expertise_engineering_droid_dexterity_4.py
+++ b/scripts/expertise/expertise_engineering_droid_dexterity_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_droid_dexterity_4')
-
- actor.addSkillMod('droid_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_droid_dexterity_4')
-
- actor.removeSkillMod('droid_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_droid_dexterity_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_droid_dexterity_4")
return
diff --git a/scripts/expertise/expertise_engineering_droid_hypothesis_1.py b/scripts/expertise/expertise_engineering_droid_hypothesis_1.py
index a57e47ed..71ad763c 100644
--- a/scripts/expertise/expertise_engineering_droid_hypothesis_1.py
+++ b/scripts/expertise/expertise_engineering_droid_hypothesis_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_droid_hypothesis_1')
-
- actor.addSkillMod('expertise_experimentation_increase_droid', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_droid_hypothesis_1')
-
- actor.removeSkillMod('expertise_experimentation_increase_droid', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_droid_hypothesis_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_droid_hypothesis_1")
return
diff --git a/scripts/expertise/expertise_engineering_droid_hypothesis_2.py b/scripts/expertise/expertise_engineering_droid_hypothesis_2.py
index 4658c156..56645f9b 100644
--- a/scripts/expertise/expertise_engineering_droid_hypothesis_2.py
+++ b/scripts/expertise/expertise_engineering_droid_hypothesis_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_droid_hypothesis_2')
-
- actor.addSkillMod('expertise_experimentation_increase_droid', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_droid_hypothesis_2')
-
- actor.removeSkillMod('expertise_experimentation_increase_droid', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_droid_hypothesis_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_droid_hypothesis_2")
return
diff --git a/scripts/expertise/expertise_engineering_droid_hypothesis_3.py b/scripts/expertise/expertise_engineering_droid_hypothesis_3.py
index 3f8a59a1..dc413239 100644
--- a/scripts/expertise/expertise_engineering_droid_hypothesis_3.py
+++ b/scripts/expertise/expertise_engineering_droid_hypothesis_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_droid_hypothesis_3')
-
- actor.addSkillMod('expertise_experimentation_increase_droid', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_droid_hypothesis_3')
-
- actor.removeSkillMod('expertise_experimentation_increase_droid', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_droid_hypothesis_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_droid_hypothesis_3")
return
diff --git a/scripts/expertise/expertise_engineering_droid_hypothesis_4.py b/scripts/expertise/expertise_engineering_droid_hypothesis_4.py
index fc794c58..7b5af620 100644
--- a/scripts/expertise/expertise_engineering_droid_hypothesis_4.py
+++ b/scripts/expertise/expertise_engineering_droid_hypothesis_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_droid_hypothesis_4')
-
- actor.addSkillMod('expertise_experimentation_increase_droid', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_droid_hypothesis_4')
-
- actor.removeSkillMod('expertise_experimentation_increase_droid', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_droid_hypothesis_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_droid_hypothesis_4")
return
diff --git a/scripts/expertise/expertise_engineering_droid_insight_1.py b/scripts/expertise/expertise_engineering_droid_insight_1.py
index afb13261..6209cf4e 100644
--- a/scripts/expertise/expertise_engineering_droid_insight_1.py
+++ b/scripts/expertise/expertise_engineering_droid_insight_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_droid_insight_1')
-
- actor.addSkillMod('expertise_complexity_decrease_droid', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_droid_insight_1')
-
- actor.removeSkillMod('expertise_complexity_decrease_droid', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_droid_insight_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_droid_insight_1")
return
diff --git a/scripts/expertise/expertise_engineering_droid_insight_2.py b/scripts/expertise/expertise_engineering_droid_insight_2.py
index 9a3ccca5..cfd7d326 100644
--- a/scripts/expertise/expertise_engineering_droid_insight_2.py
+++ b/scripts/expertise/expertise_engineering_droid_insight_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_droid_insight_2')
-
- actor.addSkillMod('expertise_complexity_decrease_droid', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_droid_insight_2')
-
- actor.removeSkillMod('expertise_complexity_decrease_droid', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_droid_insight_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_droid_insight_2")
return
diff --git a/scripts/expertise/expertise_engineering_droid_keen_understanding_1.py b/scripts/expertise/expertise_engineering_droid_keen_understanding_1.py
index e47da182..471b9cf0 100644
--- a/scripts/expertise/expertise_engineering_droid_keen_understanding_1.py
+++ b/scripts/expertise/expertise_engineering_droid_keen_understanding_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_droid_keen_understanding_1')
-
- actor.addSkillMod('expertise_complexity_decrease_droid', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_droid_keen_understanding_1')
-
- actor.removeSkillMod('expertise_complexity_decrease_droid', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_droid_keen_understanding_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_droid_keen_understanding_1")
return
diff --git a/scripts/expertise/expertise_engineering_droid_keen_understanding_2.py b/scripts/expertise/expertise_engineering_droid_keen_understanding_2.py
index 5cd3dd65..c7bd1ede 100644
--- a/scripts/expertise/expertise_engineering_droid_keen_understanding_2.py
+++ b/scripts/expertise/expertise_engineering_droid_keen_understanding_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_droid_keen_understanding_2')
-
- actor.addSkillMod('expertise_complexity_decrease_droid', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_droid_keen_understanding_2')
-
- actor.removeSkillMod('expertise_complexity_decrease_droid', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_droid_keen_understanding_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_droid_keen_understanding_2")
return
diff --git a/scripts/expertise/expertise_engineering_droid_schematic_1_1.py b/scripts/expertise/expertise_engineering_droid_schematic_1_1.py
index 6340cdd7..c9a0234c 100644
--- a/scripts/expertise/expertise_engineering_droid_schematic_1_1.py
+++ b/scripts/expertise/expertise_engineering_droid_schematic_1_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_droid_schematic_1_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_droid_schematic_1_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_droid_schematic_1_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_droid_schematic_1_1")
return
diff --git a/scripts/expertise/expertise_engineering_droid_schematic_2_1.py b/scripts/expertise/expertise_engineering_droid_schematic_2_1.py
index 9ade7f61..c7e1a68f 100644
--- a/scripts/expertise/expertise_engineering_droid_schematic_2_1.py
+++ b/scripts/expertise/expertise_engineering_droid_schematic_2_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_droid_schematic_2_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_droid_schematic_2_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_droid_schematic_2_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_droid_schematic_2_1")
return
diff --git a/scripts/expertise/expertise_engineering_resource_processing_1.py b/scripts/expertise/expertise_engineering_resource_processing_1.py
index 6c8953a7..38aa0595 100644
--- a/scripts/expertise/expertise_engineering_resource_processing_1.py
+++ b/scripts/expertise/expertise_engineering_resource_processing_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_resource_processing_1')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_resource_processing_1')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_resource_processing_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_resource_processing_1")
return
diff --git a/scripts/expertise/expertise_engineering_resource_processing_2.py b/scripts/expertise/expertise_engineering_resource_processing_2.py
index e0d9b8cf..0e561add 100644
--- a/scripts/expertise/expertise_engineering_resource_processing_2.py
+++ b/scripts/expertise/expertise_engineering_resource_processing_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_resource_processing_2')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_resource_processing_2')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_resource_processing_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_resource_processing_2")
return
diff --git a/scripts/expertise/expertise_engineering_resource_refinement_1.py b/scripts/expertise/expertise_engineering_resource_refinement_1.py
index 635c1e44..476a968e 100644
--- a/scripts/expertise/expertise_engineering_resource_refinement_1.py
+++ b/scripts/expertise/expertise_engineering_resource_refinement_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_resource_refinement_1')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_resource_refinement_1')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_resource_refinement_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_resource_refinement_1")
return
diff --git a/scripts/expertise/expertise_engineering_resource_refinement_2.py b/scripts/expertise/expertise_engineering_resource_refinement_2.py
index 0246b71c..80b22ec3 100644
--- a/scripts/expertise/expertise_engineering_resource_refinement_2.py
+++ b/scripts/expertise/expertise_engineering_resource_refinement_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_resource_refinement_2')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_resource_refinement_2')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_resource_refinement_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_resource_refinement_2")
return
diff --git a/scripts/expertise/expertise_engineering_weaponsmith_attachment_upgrade_1.py b/scripts/expertise/expertise_engineering_weaponsmith_attachment_upgrade_1.py
index 8f59c85c..8045a598 100644
--- a/scripts/expertise/expertise_engineering_weaponsmith_attachment_upgrade_1.py
+++ b/scripts/expertise/expertise_engineering_weaponsmith_attachment_upgrade_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_weaponsmith_attachment_upgrade_1')
-
- actor.addSkillMod('expertise_attachment_upgrade', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_weaponsmith_attachment_upgrade_1')
-
- actor.removeSkillMod('expertise_attachment_upgrade', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_weaponsmith_attachment_upgrade_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_weaponsmith_attachment_upgrade_1")
return
diff --git a/scripts/expertise/expertise_engineering_weaponsmith_socket_bonus_1.py b/scripts/expertise/expertise_engineering_weaponsmith_socket_bonus_1.py
index ea4bbe96..7fbbb3d1 100644
--- a/scripts/expertise/expertise_engineering_weaponsmith_socket_bonus_1.py
+++ b/scripts/expertise/expertise_engineering_weaponsmith_socket_bonus_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.addSkill('expertise_engineering_weaponsmith_socket_bonus_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_eng_1a':
- return
-
- actor.removeSkill('expertise_engineering_weaponsmith_socket_bonus_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_engineering_weaponsmith_socket_bonus_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_engineering_weaponsmith_socket_bonus_1")
return
diff --git a/scripts/expertise/expertise_fs_general_alacrity_1.py b/scripts/expertise/expertise_fs_general_alacrity_1.py
index b9f17633..b69a7bc6 100644
--- a/scripts/expertise/expertise_fs_general_alacrity_1.py
+++ b/scripts/expertise/expertise_fs_general_alacrity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_alacrity_1')
-
- core.skillModService.addSkillMod(actor, 'expertise_glancing_blow_all', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_alacrity_1')
-
- core.skillModService.deductSkillMod(actor, 'expertise_glancing_blow_all', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_alacrity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_alacrity_1")
return
diff --git a/scripts/expertise/expertise_fs_general_alacrity_2.py b/scripts/expertise/expertise_fs_general_alacrity_2.py
index c1a3f4b0..3c5d3f66 100644
--- a/scripts/expertise/expertise_fs_general_alacrity_2.py
+++ b/scripts/expertise/expertise_fs_general_alacrity_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_alacrity_2')
-
- core.skillModService.addSkillMod(actor, 'expertise_glancing_blow_all', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_alacrity_2')
-
- core.skillModService.deductSkillMod(actor, 'expertise_glancing_blow_all', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_alacrity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_alacrity_2")
return
diff --git a/scripts/expertise/expertise_fs_general_alacrity_3.py b/scripts/expertise/expertise_fs_general_alacrity_3.py
index bf182038..58282db9 100644
--- a/scripts/expertise/expertise_fs_general_alacrity_3.py
+++ b/scripts/expertise/expertise_fs_general_alacrity_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_alacrity_3')
-
- core.skillModService.addSkillMod(actor, 'expertise_glancing_blow_all', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_alacrity_3')
-
- core.skillModService.deductSkillMod(actor, 'expertise_glancing_blow_all', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_alacrity_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_alacrity_3")
return
diff --git a/scripts/expertise/expertise_fs_general_alacrity_4.py b/scripts/expertise/expertise_fs_general_alacrity_4.py
index 1c89b7dc..641990c1 100644
--- a/scripts/expertise/expertise_fs_general_alacrity_4.py
+++ b/scripts/expertise/expertise_fs_general_alacrity_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_alacrity_4')
-
- core.skillModService.addSkillMod(actor, 'expertise_glancing_blow_all', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_alacrity_4')
-
- core.skillModService.deductSkillMod(actor, 'expertise_glancing_blow_all', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_alacrity_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_alacrity_4")
return
diff --git a/scripts/expertise/expertise_fs_general_enhanced_agility_1.py b/scripts/expertise/expertise_fs_general_enhanced_agility_1.py
index 1ed244d3..b4133b1b 100644
--- a/scripts/expertise/expertise_fs_general_enhanced_agility_1.py
+++ b/scripts/expertise/expertise_fs_general_enhanced_agility_1.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_enhanced_agility_1')
-
- core.skillModService.addSkillMod(actor, 'agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_enhanced_agility_1')
-
- core.skillModService.deductSkillMod(actor, 'agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_fs_general_enhanced_agility_1")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_fs_general_enhanced_agility_1")
return
-
diff --git a/scripts/expertise/expertise_fs_general_enhanced_agility_2.py b/scripts/expertise/expertise_fs_general_enhanced_agility_2.py
index e9e90307..48301d52 100644
--- a/scripts/expertise/expertise_fs_general_enhanced_agility_2.py
+++ b/scripts/expertise/expertise_fs_general_enhanced_agility_2.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_enhanced_agility_2')
-
- core.skillModService.addSkillMod(actor, 'agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_enhanced_agility_2')
-
- core.skillModService.deductSkillMod(actor, 'agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_fs_general_enhanced_agility_2")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_fs_general_enhanced_agility_2")
return
-
diff --git a/scripts/expertise/expertise_fs_general_enhanced_constitution_1.py b/scripts/expertise/expertise_fs_general_enhanced_constitution_1.py
index 9db9e638..5521929c 100644
--- a/scripts/expertise/expertise_fs_general_enhanced_constitution_1.py
+++ b/scripts/expertise/expertise_fs_general_enhanced_constitution_1.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_enhanced_constitution_1')
-
- core.skillModService.addSkillMod(actor, 'constitution_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_enhanced_constitution_1')
-
- core.skillModService.deductSkillMod(actor, 'constitution_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_fs_general_enhanced_constitution_1")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_fs_general_enhanced_constitution_1")
return
-
diff --git a/scripts/expertise/expertise_fs_general_enhanced_constitution_2.py b/scripts/expertise/expertise_fs_general_enhanced_constitution_2.py
index 7dad3160..f800a526 100644
--- a/scripts/expertise/expertise_fs_general_enhanced_constitution_2.py
+++ b/scripts/expertise/expertise_fs_general_enhanced_constitution_2.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_enhanced_constitution_2')
-
- core.skillModService.addSkillMod(actor, 'constitution_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_enhanced_constitution_2')
-
- core.skillModService.addSkillMod(actor, 'constitution_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_fs_general_enhanced_constitution_2")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_fs_general_enhanced_constitution_2")
return
-
diff --git a/scripts/expertise/expertise_fs_general_enhanced_stamina_1.py b/scripts/expertise/expertise_fs_general_enhanced_stamina_1.py
index 7c760888..28be7fc3 100644
--- a/scripts/expertise/expertise_fs_general_enhanced_stamina_1.py
+++ b/scripts/expertise/expertise_fs_general_enhanced_stamina_1.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_enhanced_stamina_1')
-
- core.skillModService.addSkillMod(actor, 'stamina_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_enhanced_stamina_1')
-
- core.skillModService.deductSkillMod(actor, 'stamina_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_fs_general_enhanced_stamina_1")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_fs_general_enhanced_stamina_1")
return
-
diff --git a/scripts/expertise/expertise_fs_general_enhanced_stamina_2.py b/scripts/expertise/expertise_fs_general_enhanced_stamina_2.py
index 1dc31c3d..57ad1cd6 100644
--- a/scripts/expertise/expertise_fs_general_enhanced_stamina_2.py
+++ b/scripts/expertise/expertise_fs_general_enhanced_stamina_2.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_enhanced_stamina_2')
-
- core.skillModService.addSkillMod(actor, 'stamina_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_enhanced_stamina_2')
-
- core.skillModService.deductSkillMod(actor, 'stamina_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_fs_general_enhanced_stamina_2")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_fs_general_enhanced_stamina_2")
return
-
diff --git a/scripts/expertise/expertise_fs_general_enhanced_strength_1.py b/scripts/expertise/expertise_fs_general_enhanced_strength_1.py
index e4419423..881f9819 100644
--- a/scripts/expertise/expertise_fs_general_enhanced_strength_1.py
+++ b/scripts/expertise/expertise_fs_general_enhanced_strength_1.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_enhanced_strength_1')
-
- core.skillModService.addSkillMod(actor, 'strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_enhanced_strength_1')
-
- core.skillModService.deductSkillMod(actor, 'strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_fs_general_enhanced_strength_1")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_fs_general_enhanced_strength_1")
return
-
diff --git a/scripts/expertise/expertise_fs_general_enhanced_strength_2.py b/scripts/expertise/expertise_fs_general_enhanced_strength_2.py
index b5193a5f..fed1b59a 100644
--- a/scripts/expertise/expertise_fs_general_enhanced_strength_2.py
+++ b/scripts/expertise/expertise_fs_general_enhanced_strength_2.py
@@ -1,47 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_enhanced_strength_2')
-
- core.skillModService.addSkillMod(actor, 'strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_enhanced_strength_2')
-
- core.skillModService.deductSkillMod(actor, 'strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("expertise_fs_general_enhanced_strength_2")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("expertise_fs_general_enhanced_strength_2")
return
-
diff --git a/scripts/expertise/expertise_fs_general_exacting_strikes_1.py b/scripts/expertise/expertise_fs_general_exacting_strikes_1.py
index 2236311e..91ea8275 100644
--- a/scripts/expertise/expertise_fs_general_exacting_strikes_1.py
+++ b/scripts/expertise/expertise_fs_general_exacting_strikes_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_exacting_strikes_1')
-
- actor.addSkillMod('expertise_damage_line_fs_sweep', 2)
- actor.addSkillMod('expertise_damage_line_fs_dm', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_exacting_strikes_1')
-
- actor.removeSkillMod('expertise_damage_line_fs_sweep', 2)
- actor.removeSkillMod('expertise_damage_line_fs_dm', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_exacting_strike_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_exacting_strike_1")
return
diff --git a/scripts/expertise/expertise_fs_general_exacting_strikes_2.py b/scripts/expertise/expertise_fs_general_exacting_strikes_2.py
index 2b4161b2..c28e666c 100644
--- a/scripts/expertise/expertise_fs_general_exacting_strikes_2.py
+++ b/scripts/expertise/expertise_fs_general_exacting_strikes_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_exacting_strikes_2')
-
- actor.addSkillMod('expertise_damage_line_fs_sweep', 2)
- actor.addSkillMod('expertise_damage_line_fs_dm', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_exacting_strikes_2')
-
- actor.removeSkillMod('expertise_damage_line_fs_sweep', 2)
- actor.removeSkillMod('expertise_damage_line_fs_dm', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_exacting_strike_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_exacting_strike_2")
return
diff --git a/scripts/expertise/expertise_fs_general_exacting_strikes_3.py b/scripts/expertise/expertise_fs_general_exacting_strikes_3.py
index cc542875..5e711192 100644
--- a/scripts/expertise/expertise_fs_general_exacting_strikes_3.py
+++ b/scripts/expertise/expertise_fs_general_exacting_strikes_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_exacting_strikes_3')
-
- actor.addSkillMod('expertise_damage_line_fs_sweep', 2)
- actor.addSkillMod('expertise_damage_line_fs_dm', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_exacting_strikes_3')
-
- actor.removeSkillMod('expertise_damage_line_fs_sweep', 2)
- actor.removeSkillMod('expertise_damage_line_fs_dm', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_exacting_strike_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_exacting_strike_3")
return
diff --git a/scripts/expertise/expertise_fs_general_exacting_strikes_4.py b/scripts/expertise/expertise_fs_general_exacting_strikes_4.py
index 448389c0..86f573c0 100644
--- a/scripts/expertise/expertise_fs_general_exacting_strikes_4.py
+++ b/scripts/expertise/expertise_fs_general_exacting_strikes_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_exacting_strikes_4')
-
- actor.addSkillMod('expertise_damage_line_fs_sweep', 2)
- actor.addSkillMod('expertise_damage_line_fs_dm', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_exacting_strikes_4')
-
- actor.removeSkillMod('expertise_damage_line_fs_sweep', 2)
- actor.removeSkillMod('expertise_damage_line_fs_dm', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_exacting_strike_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_exacting_strike_4")
return
diff --git a/scripts/expertise/expertise_fs_general_fidelity_1.py b/scripts/expertise/expertise_fs_general_fidelity_1.py
index 7e78aef6..9817071f 100644
--- a/scripts/expertise/expertise_fs_general_fidelity_1.py
+++ b/scripts/expertise/expertise_fs_general_fidelity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_fidelity_1')
-
- core.skillModService.addSkillMod(actor, 'expertise_damage_melee', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_fidelity_1')
-
- core.skillModService.deductSkillMod(actor, 'expertise_damage_melee', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_fidelity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_fidelity_1")
return
diff --git a/scripts/expertise/expertise_fs_general_fidelity_2.py b/scripts/expertise/expertise_fs_general_fidelity_2.py
index db68b4f5..19abb94c 100644
--- a/scripts/expertise/expertise_fs_general_fidelity_2.py
+++ b/scripts/expertise/expertise_fs_general_fidelity_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_fidelity_2')
-
- core.skillModService.addSkillMod(actor, 'expertise_damage_melee', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_fidelity_2')
-
- core.skillModService.deductSkillMod(actor, 'expertise_damage_melee', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_fidelity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_fidelity_2")
return
diff --git a/scripts/expertise/expertise_fs_general_force_cloak_1.py b/scripts/expertise/expertise_fs_general_force_cloak_1.py
index fd748f6d..5f9fc9d4 100644
--- a/scripts/expertise/expertise_fs_general_force_cloak_1.py
+++ b/scripts/expertise/expertise_fs_general_force_cloak_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_force_cloak_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_force_cloak_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('fs_buff_invis_1')
-
+ actor.addAbility("fs_buff_invis_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('fs_buff_invis_1')
-
+ actor.removeAbility("fs_buff_invis_1")
return
diff --git a/scripts/expertise/expertise_fs_general_force_shockwave_1.py b/scripts/expertise/expertise_fs_general_force_shockwave_1.py
index 05f5873a..a17dbe47 100644
--- a/scripts/expertise/expertise_fs_general_force_shockwave_1.py
+++ b/scripts/expertise/expertise_fs_general_force_shockwave_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_force_shockwave_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_force_shockwave_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('fs_dm_cc_crit_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("fs_dm_cc_crit_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("fs_dm_cc_crit_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("fs_dm_cc_crit_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("fs_dm_cc_crit_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("fs_dm_cc_crit_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('fs_dm_cc_crit_1')
-
+ actor.removeAbility("fs_dm_cc_crit_1")
+ actor.removeAbility("fs_dm_cc_crit_2")
+ actor.removeAbility("fs_dm_cc_crit_3")
+ actor.removeAbility("fs_dm_cc_crit_4")
+ actor.removeAbility("fs_dm_cc_crit_5")
return
diff --git a/scripts/expertise/expertise_fs_general_grace_in_motion_1.py b/scripts/expertise/expertise_fs_general_grace_in_motion_1.py
index e2207030..1bc3e355 100644
--- a/scripts/expertise/expertise_fs_general_grace_in_motion_1.py
+++ b/scripts/expertise/expertise_fs_general_grace_in_motion_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_grace_in_motion_1')
-
- actor.addSkillMod('expertise_action_lightsaber', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_grace_in_motion_1')
-
- actor.removeSkillMod('expertise_action_lightsaber', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_grace_in_motion_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_grace_in_motion_1")
return
diff --git a/scripts/expertise/expertise_fs_general_grace_in_motion_2.py b/scripts/expertise/expertise_fs_general_grace_in_motion_2.py
index 9b520c39..fa2a708a 100644
--- a/scripts/expertise/expertise_fs_general_grace_in_motion_2.py
+++ b/scripts/expertise/expertise_fs_general_grace_in_motion_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_grace_in_motion_2')
-
- actor.addSkillMod('expertise_action_lightsaber', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_grace_in_motion_2')
-
- actor.removeSkillMod('expertise_action_lightsaber', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_grace_in_motion_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_grace_in_motion_2")
return
diff --git a/scripts/expertise/expertise_fs_general_grace_in_motion_3.py b/scripts/expertise/expertise_fs_general_grace_in_motion_3.py
index acedaa7a..ea60fbe1 100644
--- a/scripts/expertise/expertise_fs_general_grace_in_motion_3.py
+++ b/scripts/expertise/expertise_fs_general_grace_in_motion_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_grace_in_motion_3')
-
- actor.addSkillMod('expertise_action_lightsaber', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_grace_in_motion_3')
-
- actor.removeSkillMod('expertise_action_lightsaber', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_grace_in_motion_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_grace_in_motion_3")
return
diff --git a/scripts/expertise/expertise_fs_general_heightened_speed_1.py b/scripts/expertise/expertise_fs_general_heightened_speed_1.py
index 1f410c98..aa3be1b3 100644
--- a/scripts/expertise/expertise_fs_general_heightened_speed_1.py
+++ b/scripts/expertise/expertise_fs_general_heightened_speed_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_heightened_speed_1')
-
- actor.addSkillMod('expertise_movement_buff_fs_force_run', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_heightened_speed_1')
-
- actor.removeSkillMod('expertise_movement_buff_fs_force_run', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_heightened_speed_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_heightened_speed_1")
return
diff --git a/scripts/expertise/expertise_fs_general_heightened_speed_2.py b/scripts/expertise/expertise_fs_general_heightened_speed_2.py
index 7aed8948..245c3478 100644
--- a/scripts/expertise/expertise_fs_general_heightened_speed_2.py
+++ b/scripts/expertise/expertise_fs_general_heightened_speed_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_heightened_speed_2')
-
- actor.addSkillMod('expertise_movement_buff_fs_force_run', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_heightened_speed_2')
-
- actor.removeSkillMod('expertise_movement_buff_fs_force_run', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_heightened_speed_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_heightened_speed_2")
return
diff --git a/scripts/expertise/expertise_fs_general_heightened_speed_3.py b/scripts/expertise/expertise_fs_general_heightened_speed_3.py
index 847e3c06..e5517964 100644
--- a/scripts/expertise/expertise_fs_general_heightened_speed_3.py
+++ b/scripts/expertise/expertise_fs_general_heightened_speed_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_heightened_speed_3')
-
- actor.addSkillMod('expertise_movement_buff_fs_force_run', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_heightened_speed_3')
-
- actor.removeSkillMod('expertise_movement_buff_fs_force_run', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_heightened_speed_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_heightened_speed_3")
return
diff --git a/scripts/expertise/expertise_fs_general_heightened_speed_4.py b/scripts/expertise/expertise_fs_general_heightened_speed_4.py
index 878c1750..e49ae9b4 100644
--- a/scripts/expertise/expertise_fs_general_heightened_speed_4.py
+++ b/scripts/expertise/expertise_fs_general_heightened_speed_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_heightened_speed_4')
-
- actor.addSkillMod('expertise_movement_buff_fs_force_run', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_heightened_speed_4')
-
- actor.removeSkillMod('expertise_movement_buff_fs_force_run', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_heightened_speed_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_heightened_speed_4")
return
diff --git a/scripts/expertise/expertise_fs_general_improved_crippling_accuracy_1.py b/scripts/expertise/expertise_fs_general_improved_crippling_accuracy_1.py
index 7339e6cf..16c4a122 100644
--- a/scripts/expertise/expertise_fs_general_improved_crippling_accuracy_1.py
+++ b/scripts/expertise/expertise_fs_general_improved_crippling_accuracy_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_improved_crippling_accuracy_1')
-
- actor.addSkillMod('expertise_buff_duration_line_fs_force_throw', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_improved_crippling_accuracy_1')
-
- actor.removeSkillMod('expertise_buff_duration_line_fs_force_throw', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_improved_crippling_accuracy_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_improved_crippling_accuracy_1")
return
diff --git a/scripts/expertise/expertise_fs_general_improved_crippling_accuracy_2.py b/scripts/expertise/expertise_fs_general_improved_crippling_accuracy_2.py
index 1535e2c6..1ca0b65b 100644
--- a/scripts/expertise/expertise_fs_general_improved_crippling_accuracy_2.py
+++ b/scripts/expertise/expertise_fs_general_improved_crippling_accuracy_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_improved_crippling_accuracy_2')
-
- actor.addSkillMod('expertise_buff_duration_line_fs_force_throw', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_improved_crippling_accuracy_2')
-
- actor.removeSkillMod('expertise_buff_duration_line_fs_force_throw', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_improved_crippling_accuracy_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_improved_crippling_accuracy_2")
return
diff --git a/scripts/expertise/expertise_fs_general_improved_crippling_accuracy_3.py b/scripts/expertise/expertise_fs_general_improved_crippling_accuracy_3.py
index fb5ffa62..51018497 100644
--- a/scripts/expertise/expertise_fs_general_improved_crippling_accuracy_3.py
+++ b/scripts/expertise/expertise_fs_general_improved_crippling_accuracy_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_improved_crippling_accuracy_3')
-
- actor.addSkillMod('expertise_buff_duration_line_fs_force_throw', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_improved_crippling_accuracy_3')
-
- actor.removeSkillMod('expertise_buff_duration_line_fs_force_throw', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_improved_crippling_accuracy_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_improved_crippling_accuracy_3")
return
diff --git a/scripts/expertise/expertise_fs_general_improved_force_cloak_1.py b/scripts/expertise/expertise_fs_general_improved_force_cloak_1.py
index 29eb5f11..bd140591 100644
--- a/scripts/expertise/expertise_fs_general_improved_force_cloak_1.py
+++ b/scripts/expertise/expertise_fs_general_improved_force_cloak_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_improved_force_cloak_1')
-
- actor.addSkillMod('expertise_force_cloak_combat_escape', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_improved_force_cloak_1')
-
- actor.removeSkillMod('expertise_force_cloak_combat_escape', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_improved_force_cloak_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_improved_force_cloak_1")
return
diff --git a/scripts/expertise/expertise_fs_general_improved_force_shockwave_1.py b/scripts/expertise/expertise_fs_general_improved_force_shockwave_1.py
index 9eab98c3..0c675358 100644
--- a/scripts/expertise/expertise_fs_general_improved_force_shockwave_1.py
+++ b/scripts/expertise/expertise_fs_general_improved_force_shockwave_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_improved_force_shockwave_1')
-
- actor.addSkillMod('expertise_damage_line_fs_cc_crit', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_improved_force_shockwave_1')
-
- actor.removeSkillMod('expertise_damage_line_fs_cc_crit', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_improved_force_shockwave_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_improved_force_shockwave_1")
return
diff --git a/scripts/expertise/expertise_fs_general_improved_force_shockwave_2.py b/scripts/expertise/expertise_fs_general_improved_force_shockwave_2.py
index f51b5f9e..e47b87b3 100644
--- a/scripts/expertise/expertise_fs_general_improved_force_shockwave_2.py
+++ b/scripts/expertise/expertise_fs_general_improved_force_shockwave_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_improved_force_shockwave_2')
-
- actor.addSkillMod('expertise_damage_line_fs_cc_crit', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_improved_force_shockwave_2')
-
- actor.removeSkillMod('expertise_damage_line_fs_cc_crit', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_improved_force_shockwave_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_improved_force_shockwave_2")
return
diff --git a/scripts/expertise/expertise_fs_general_improved_force_shockwave_3.py b/scripts/expertise/expertise_fs_general_improved_force_shockwave_3.py
index 85d26f98..c7293502 100644
--- a/scripts/expertise/expertise_fs_general_improved_force_shockwave_3.py
+++ b/scripts/expertise/expertise_fs_general_improved_force_shockwave_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_improved_force_shockwave_3')
-
- actor.addSkillMod('expertise_damage_line_fs_cc_crit', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_improved_force_shockwave_3')
-
- actor.removeSkillMod('expertise_damage_line_fs_cc_crit', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_improved_force_shockwave_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_improved_force_shockwave_3")
return
diff --git a/scripts/expertise/expertise_fs_general_improved_force_throw_1.py b/scripts/expertise/expertise_fs_general_improved_force_throw_1.py
index 982a4921..07264c82 100644
--- a/scripts/expertise/expertise_fs_general_improved_force_throw_1.py
+++ b/scripts/expertise/expertise_fs_general_improved_force_throw_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_improved_force_throw_1')
-
- actor.addSkillMod('expertise_damage_line_fs_force_throw', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_improved_force_throw_1')
-
- actor.removeSkillMod('expertise_damage_line_fs_force_throw', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_improved_force_throw_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_improved_force_throw_1")
return
diff --git a/scripts/expertise/expertise_fs_general_improved_force_throw_2.py b/scripts/expertise/expertise_fs_general_improved_force_throw_2.py
index 303292ef..1d5d428b 100644
--- a/scripts/expertise/expertise_fs_general_improved_force_throw_2.py
+++ b/scripts/expertise/expertise_fs_general_improved_force_throw_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_improved_force_throw_2')
-
- actor.addSkillMod('expertise_damage_line_fs_force_throw', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_improved_force_throw_2')
-
- actor.removeSkillMod('expertise_damage_line_fs_force_throw', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_improved_force_throw_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_improved_force_throw_2")
return
diff --git a/scripts/expertise/expertise_fs_general_improved_saber_block_1.py b/scripts/expertise/expertise_fs_general_improved_saber_block_1.py
index 25d545c9..41596ad9 100644
--- a/scripts/expertise/expertise_fs_general_improved_saber_block_1.py
+++ b/scripts/expertise/expertise_fs_general_improved_saber_block_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_improved_saber_block_1')
-
- actor.addSkillMod('expertise_saber_block', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_improved_saber_block_1')
-
- actor.removeSkillMod('expertise_saber_block', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_improved_saber_block_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_improved_saber_block_1")
return
diff --git a/scripts/expertise/expertise_fs_general_improved_saber_block_2.py b/scripts/expertise/expertise_fs_general_improved_saber_block_2.py
index 066a2128..abc2f012 100644
--- a/scripts/expertise/expertise_fs_general_improved_saber_block_2.py
+++ b/scripts/expertise/expertise_fs_general_improved_saber_block_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_improved_saber_block_2')
-
- actor.addSkillMod('expertise_saber_block', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_improved_saber_block_2')
-
- actor.removeSkillMod('expertise_saber_block', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_improved_saber_block_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_improved_saber_block_2")
return
diff --git a/scripts/expertise/expertise_fs_general_improved_saber_block_3.py b/scripts/expertise/expertise_fs_general_improved_saber_block_3.py
index 75e6e32b..37892890 100644
--- a/scripts/expertise/expertise_fs_general_improved_saber_block_3.py
+++ b/scripts/expertise/expertise_fs_general_improved_saber_block_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_improved_saber_block_3')
-
- actor.addSkillMod('expertise_saber_block', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_improved_saber_block_3')
-
- actor.removeSkillMod('expertise_saber_block', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_improved_saber_block_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_improved_saber_block_3")
return
diff --git a/scripts/expertise/expertise_fs_general_incisiveness_1.py b/scripts/expertise/expertise_fs_general_incisiveness_1.py
index 9e171eca..b872f06e 100644
--- a/scripts/expertise/expertise_fs_general_incisiveness_1.py
+++ b/scripts/expertise/expertise_fs_general_incisiveness_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_incisiveness_1')
-
- core.skillModService.addSkillMod(actor, 'expertise_critical_niche_all', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_incisiveness_1')
-
- core.skillModService.deductSkillMod(actor, 'expertise_critical_niche_all', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_incisiveness_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_incisiveness_1")
return
diff --git a/scripts/expertise/expertise_fs_general_incisiveness_2.py b/scripts/expertise/expertise_fs_general_incisiveness_2.py
index 97a54475..7d397ae3 100644
--- a/scripts/expertise/expertise_fs_general_incisiveness_2.py
+++ b/scripts/expertise/expertise_fs_general_incisiveness_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_incisiveness_2')
-
- core.skillModService.addSkillMod(actor, 'expertise_critical_niche_all', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_incisiveness_2')
-
- core.skillModService.deductSkillMod(actor, 'expertise_critical_niche_all', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_incisiveness_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_incisiveness_2")
return
diff --git a/scripts/expertise/expertise_fs_general_incisiveness_3.py b/scripts/expertise/expertise_fs_general_incisiveness_3.py
index 773b7bee..58ea449d 100644
--- a/scripts/expertise/expertise_fs_general_incisiveness_3.py
+++ b/scripts/expertise/expertise_fs_general_incisiveness_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_incisiveness_3')
-
- core.skillModService.addSkillMod(actor, 'expertise_critical_niche_all', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_incisiveness_3')
-
- core.skillModService.deductSkillMod(actor, 'expertise_critical_niche_all', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_incisiveness_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_incisiveness_3")
return
diff --git a/scripts/expertise/expertise_fs_general_premonition_1.py b/scripts/expertise/expertise_fs_general_premonition_1.py
index 95553815..c5510629 100644
--- a/scripts/expertise/expertise_fs_general_premonition_1.py
+++ b/scripts/expertise/expertise_fs_general_premonition_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_premonition_1')
-
- core.skillModService.addSkillMod(actor, 'expertise_evasion_chance', 2)
- core.skillModService.addSkillMod(actor, 'expertise_evasion_value', 8)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_premonition_1')
-
- core.skillModService.deductSkillMod(actor, 'expertise_evasion_chance', 2)
- core.skillModService.deductSkillMod(actor, 'expertise_evasion_value', 8)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_premonition_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_premonition_1")
return
diff --git a/scripts/expertise/expertise_fs_general_premonition_2.py b/scripts/expertise/expertise_fs_general_premonition_2.py
index 329f1496..ac6cbe24 100644
--- a/scripts/expertise/expertise_fs_general_premonition_2.py
+++ b/scripts/expertise/expertise_fs_general_premonition_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_premonition_2')
-
- core.skillModService.addSkillMod(actor, 'expertise_evasion_chance', 2)
- core.skillModService.addSkillMod(actor, 'expertise_evasion_value', 8)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_premonition_2')
-
- core.skillModService.deductSkillMod(actor, 'expertise_evasion_chance', 2)
- core.skillModService.deductSkillMod(actor, 'expertise_evasion_value', 8)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_premonition_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_premonition_2")
return
diff --git a/scripts/expertise/expertise_fs_general_premonition_3.py b/scripts/expertise/expertise_fs_general_premonition_3.py
index 7c1ae35e..4bfaf6eb 100644
--- a/scripts/expertise/expertise_fs_general_premonition_3.py
+++ b/scripts/expertise/expertise_fs_general_premonition_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_premonition_3')
-
- core.skillModService.addSkillMod(actor, 'expertise_evasion_chance', 2)
- core.skillModService.addSkillMod(actor, 'expertise_evasion_value', 8)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_premonition_3')
-
- core.skillModService.deductSkillMod(actor, 'expertise_evasion_chance', 2)
- core.skillModService.deductSkillMod(actor, 'expertise_evasion_value', 8)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_premonition_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_premonition_3")
return
diff --git a/scripts/expertise/expertise_fs_general_premonition_4.py b/scripts/expertise/expertise_fs_general_premonition_4.py
index ffc6fe53..751255e1 100644
--- a/scripts/expertise/expertise_fs_general_premonition_4.py
+++ b/scripts/expertise/expertise_fs_general_premonition_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_premonition_4')
-
- core.skillModService.addSkillMod(actor, 'expertise_evasion_chance', 2)
- core.skillModService.addSkillMod(actor, 'expertise_evasion_value', 8)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_premonition_4')
-
- core.skillModService.deductSkillMod(actor, 'expertise_evasion_chance', 2)
- core.skillModService.deductSkillMod(actor, 'expertise_evasion_value', 8)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_premonition_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_premonition_4")
return
diff --git a/scripts/expertise/expertise_fs_general_second_wind_1.py b/scripts/expertise/expertise_fs_general_second_wind_1.py
index e2bf66c3..90120855 100644
--- a/scripts/expertise/expertise_fs_general_second_wind_1.py
+++ b/scripts/expertise/expertise_fs_general_second_wind_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_second_wind_1')
-
- actor.addSkillMod('expertise_buff_duration_line_fs_force_run', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_second_wind_1')
-
- actor.removeSkillMod('expertise_buff_duration_line_fs_force_run', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_second_wind_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_second_wind_1")
return
diff --git a/scripts/expertise/expertise_fs_general_second_wind_2.py b/scripts/expertise/expertise_fs_general_second_wind_2.py
index ed634e1a..5dc1cf7a 100644
--- a/scripts/expertise/expertise_fs_general_second_wind_2.py
+++ b/scripts/expertise/expertise_fs_general_second_wind_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_second_wind_2')
-
- actor.addSkillMod('expertise_buff_duration_line_fs_force_run', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_second_wind_2')
-
- actor.removeSkillMod('expertise_buff_duration_line_fs_force_run', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_general_second_wind_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_general_second_wind_2")
return
diff --git a/scripts/expertise/expertise_fs_general_stance_saber_block_1.py b/scripts/expertise/expertise_fs_general_stance_saber_block_1.py
index 15799877..01313e59 100644
--- a/scripts/expertise/expertise_fs_general_stance_saber_block_1.py
+++ b/scripts/expertise/expertise_fs_general_stance_saber_block_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_general_stance_saber_block_1')
-
- actor.addSkillMod('display_only_parry', 1000)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_general_stance_saber_block_1')
-
- actor.removeSkillMod('display_only_parry', 1000)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
+ actor.addAbility("saberBlock")
return
def removeAbilities(core, actor, player):
-
+ actor.removeAbility("saberBlock")
return
diff --git a/scripts/expertise/expertise_fs_path_anticipate_aggression_1.py b/scripts/expertise/expertise_fs_path_anticipate_aggression_1.py
index ab29d84c..ac447738 100644
--- a/scripts/expertise/expertise_fs_path_anticipate_aggression_1.py
+++ b/scripts/expertise/expertise_fs_path_anticipate_aggression_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_anticipate_aggression_1')
-
- actor.addSkillMod('expertise_stance_anticipate_aggression', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_anticipate_aggression_1')
-
- actor.removeSkillMod('expertise_stance_anticipate_aggression', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_anticipate_aggression_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_anticipate_aggression_1")
return
diff --git a/scripts/expertise/expertise_fs_path_anticipate_aggression_2.py b/scripts/expertise/expertise_fs_path_anticipate_aggression_2.py
index 89805eca..da421e8b 100644
--- a/scripts/expertise/expertise_fs_path_anticipate_aggression_2.py
+++ b/scripts/expertise/expertise_fs_path_anticipate_aggression_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_anticipate_aggression_2')
-
- actor.addSkillMod('expertise_stance_anticipate_aggression', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_anticipate_aggression_2')
-
- actor.removeSkillMod('expertise_stance_anticipate_aggression', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_anticipate_aggression_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_anticipate_aggression_2")
return
diff --git a/scripts/expertise/expertise_fs_path_brutality_1.py b/scripts/expertise/expertise_fs_path_brutality_1.py
index 2bddedf4..b583d402 100644
--- a/scripts/expertise/expertise_fs_path_brutality_1.py
+++ b/scripts/expertise/expertise_fs_path_brutality_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_brutality_1')
-
- core.skillModService.addSkillMod(actor, 'expertise_focus_critical_buff_line', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_brutality_1')
-
- core.skillModService.deductSkillMod(actor, 'expertise_focus_critical_buff_line', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_brutality_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_brutality_1")
return
diff --git a/scripts/expertise/expertise_fs_path_brutality_2.py b/scripts/expertise/expertise_fs_path_brutality_2.py
index 56aa4679..06c05ccd 100644
--- a/scripts/expertise/expertise_fs_path_brutality_2.py
+++ b/scripts/expertise/expertise_fs_path_brutality_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_brutality_2')
-
- core.skillModService.addSkillMod(actor, 'expertise_focus_critical_buff_line', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_brutality_2')
-
- core.skillModService.deductSkillMod(actor, 'expertise_focus_critical_buff_line', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_brutality_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_brutality_2")
return
diff --git a/scripts/expertise/expertise_fs_path_brutality_3.py b/scripts/expertise/expertise_fs_path_brutality_3.py
index ae385f2c..63954836 100644
--- a/scripts/expertise/expertise_fs_path_brutality_3.py
+++ b/scripts/expertise/expertise_fs_path_brutality_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_brutality_3')
-
- core.skillModService.addSkillMod(actor, 'expertise_focus_critical_buff_line', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_brutality_3')
-
- core.skillModService.deductSkillMod(actor, 'expertise_focus_critical_buff_line', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_brutality_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_brutality_3")
return
diff --git a/scripts/expertise/expertise_fs_path_brutality_4.py b/scripts/expertise/expertise_fs_path_brutality_4.py
index 7170710f..c922074e 100644
--- a/scripts/expertise/expertise_fs_path_brutality_4.py
+++ b/scripts/expertise/expertise_fs_path_brutality_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_brutality_4')
-
- core.skillModService.addSkillMod(actor, 'expertise_focus_critical_buff_line', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_brutality_4')
-
- core.skillModService.deductSkillMod(actor, 'expertise_focus_critical_buff_line', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_brutality_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_brutality_4")
return
diff --git a/scripts/expertise/expertise_fs_path_cautious_nature_1.py b/scripts/expertise/expertise_fs_path_cautious_nature_1.py
index 84c462c0..d4d90133 100644
--- a/scripts/expertise/expertise_fs_path_cautious_nature_1.py
+++ b/scripts/expertise/expertise_fs_path_cautious_nature_1.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_cautious_nature_1')
-
- core.skillModService.addSkillMod(actor, 'expertise_stance_constitution', 10)
- core.skillModService.addSkillMod(actor, 'expertise_stance_parry', 1)
- core.skillModService.addSkillMod(actor, 'expertise_stance_evasion', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_cautious_nature_1')
-
- core.skillModService.deductSkillMod(actor, 'expertise_stance_constitution', 10)
- core.skillModService.deductSkillMod(actor, 'expertise_stance_parry', 1)
- core.skillModService.deductSkillMod(actor, 'expertise_stance_evasion', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_cautious_nature_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_cautious_nature_1")
return
diff --git a/scripts/expertise/expertise_fs_path_cautious_nature_2.py b/scripts/expertise/expertise_fs_path_cautious_nature_2.py
index 42d67d98..112514fd 100644
--- a/scripts/expertise/expertise_fs_path_cautious_nature_2.py
+++ b/scripts/expertise/expertise_fs_path_cautious_nature_2.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_cautious_nature_2')
-
- core.skillModService.addSkillMod(actor, 'expertise_stance_constitution', 10)
- core.skillModService.addSkillMod(actor, 'expertise_stance_parry', 1)
- core.skillModService.addSkillMod(actor, 'expertise_stance_evasion', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_cautious_nature_2')
-
- core.skillModService.deductSkillMod(actor, 'expertise_stance_constitution', 10)
- core.skillModService.deductSkillMod(actor, 'expertise_stance_parry', 1)
- core.skillModService.deductSkillMod(actor, 'expertise_stance_evasion', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_cautious_nature_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_cautious_nature_2")
return
diff --git a/scripts/expertise/expertise_fs_path_cautious_nature_3.py b/scripts/expertise/expertise_fs_path_cautious_nature_3.py
index dfcc3c24..05183a16 100644
--- a/scripts/expertise/expertise_fs_path_cautious_nature_3.py
+++ b/scripts/expertise/expertise_fs_path_cautious_nature_3.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_cautious_nature_3')
-
- core.skillModService.addSkillMod(actor, 'expertise_stance_constitution', 10)
- core.skillModService.addSkillMod(actor, 'expertise_stance_parry', 1)
- core.skillModService.addSkillMod(actor, 'expertise_stance_evasion', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_cautious_nature_3')
-
- core.skillModService.deductSkillMod(actor, 'expertise_stance_constitution', 10)
- core.skillModService.deductSkillMod(actor, 'expertise_stance_parry', 1)
- core.skillModService.deductSkillMod(actor, 'expertise_stance_evasion', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_cautious_nature_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_cautious_nature_3")
return
diff --git a/scripts/expertise/expertise_fs_path_cautious_nature_4.py b/scripts/expertise/expertise_fs_path_cautious_nature_4.py
index fa3a2980..d5f122dd 100644
--- a/scripts/expertise/expertise_fs_path_cautious_nature_4.py
+++ b/scripts/expertise/expertise_fs_path_cautious_nature_4.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_cautious_nature_4')
-
- core.skillModService.addSkillMod(actor, 'expertise_stance_constitution', 10)
- core.skillModService.addSkillMod(actor, 'expertise_stance_parry', 1)
- core.skillModService.addSkillMod(actor, 'expertise_stance_evasion', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_cautious_nature_4')
-
- core.skillModService.deductSkillMod(actor, 'expertise_stance_constitution', 10)
- core.skillModService.deductSkillMod(actor, 'expertise_stance_parry', 1)
- core.skillModService.deductSkillMod(actor, 'expertise_stance_evasion', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_cautious_nature_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_cautious_nature_4")
return
diff --git a/scripts/expertise/expertise_fs_path_cloud_minds_1.py b/scripts/expertise/expertise_fs_path_cloud_minds_1.py
index 6fa583aa..7b839729 100644
--- a/scripts/expertise/expertise_fs_path_cloud_minds_1.py
+++ b/scripts/expertise/expertise_fs_path_cloud_minds_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_cloud_minds_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_cloud_minds_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('fs_mind_trick_2')
-
+ actor.addAbility("fs_mind_trick_2")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('fs_mind_trick_2')
-
+ actor.removeAbility("fs_mind_trick_2")
return
diff --git a/scripts/expertise/expertise_fs_path_dark_lightning_1.py b/scripts/expertise/expertise_fs_path_dark_lightning_1.py
index 6bea7d3e..bd222493 100644
--- a/scripts/expertise/expertise_fs_path_dark_lightning_1.py
+++ b/scripts/expertise/expertise_fs_path_dark_lightning_1.py
@@ -1,48 +1,25 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_dark_lightning_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_dark_lightning_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('fs_ae_dm_cc_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("fs_ae_dm_cc_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("fs_ae_dm_cc_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("fs_ae_dm_cc_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("fs_ae_dm_cc_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("fs_ae_dm_cc_5")
+ if actor.getLevel() >= 90:
+ actor.addAbility("fs_ae_dm_cc_6")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('fs_ae_dm_cc_1')
-
+ actor.removeAbility("fs_ae_dm_cc_1")
+ actor.removeAbility("fs_ae_dm_cc_2")
+ actor.removeAbility("fs_ae_dm_cc_3")
+ actor.removeAbility("fs_ae_dm_cc_4")
+ actor.removeAbility("fs_ae_dm_cc_5")
+ actor.removeAbility("fs_ae_dm_cc_6")
return
diff --git a/scripts/expertise/expertise_fs_path_expansive_trickery_1.py b/scripts/expertise/expertise_fs_path_expansive_trickery_1.py
index 4e48ff9c..f58232ed 100644
--- a/scripts/expertise/expertise_fs_path_expansive_trickery_1.py
+++ b/scripts/expertise/expertise_fs_path_expansive_trickery_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_expansive_trickery_1')
-
- actor.addSkillMod('expertise_area_size_single_fs_mind_trick_2', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_expansive_trickery_1')
-
- actor.removeSkillMod('expertise_area_size_single_fs_mind_trick_2', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_expensive_trickery_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_expensive_trickery_2")
return
diff --git a/scripts/expertise/expertise_fs_path_flurry.py b/scripts/expertise/expertise_fs_path_flurry.py
index 0c9dbb88..1fc0486f 100644
--- a/scripts/expertise/expertise_fs_path_flurry.py
+++ b/scripts/expertise/expertise_fs_path_flurry.py
@@ -1,48 +1,29 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_flurry')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_flurry')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('fs_flurry_1')
-
+ if actor.getLevel() >= 4:
+ actor.addAbility("fs_flurry_1")
+ if actor.getLevel() >= 12:
+ actor.addAbility("fs_flurry_2")
+ if actor.getLevel() >= 20:
+ actor.addAbility("fs_flurry_3")
+ if actor.getLevel() >= 30:
+ actor.addAbility("fs_flurry_4")
+ if actor.getLevel() >= 38:
+ actor.addAbility("fs_flurry_5")
+ if actor.getLevel() >= 52:
+ actor.addAbility("fs_flurry_6")
+ if actor.getLevel() >= 62:
+ actor.addAbility("fs_flurry_7")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('fs_flurry_1')
+ actor.removeAbility("fs_flurry_1")
+ actor.removeAbility("fs_flurry_2")
+ actor.removeAbility("fs_flurry_3")
+ actor.removeAbility("fs_flurry_4")
+ actor.removeAbility("fs_flurry_5")
+ actor.removeAbility("fs_flurry_6")
+ actor.removeAbility("fs_flurry_7")
return
diff --git a/scripts/expertise/expertise_fs_path_force_choke_1.py b/scripts/expertise/expertise_fs_path_force_choke_1.py
index b38da3a8..ad9a5d82 100644
--- a/scripts/expertise/expertise_fs_path_force_choke_1.py
+++ b/scripts/expertise/expertise_fs_path_force_choke_1.py
@@ -1,48 +1,25 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_force_choke_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_force_choke_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('fs_dm_cc_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("fs_dm_cc_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("fs_dm_cc_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("fs_dm_cc_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("fs_dm_cc_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("fs_dm_cc_5")
+ if actor.getLevel() >= 90:
+ actor.addAbility("fs_dm_cc_6")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('fs_dm_cc_1')
-
+ actor.removeAbility("fs_dm_cc_1")
+ actor.removeAbility("fs_dm_cc_2")
+ actor.removeAbility("fs_dm_cc_3")
+ actor.removeAbility("fs_dm_cc_4")
+ actor.removeAbility("fs_dm_cc_5")
+ actor.removeAbility("fs_dm_cc_6")
return
diff --git a/scripts/expertise/expertise_fs_path_force_clarity_1.py b/scripts/expertise/expertise_fs_path_force_clarity_1.py
index 651153f9..f511c020 100644
--- a/scripts/expertise/expertise_fs_path_force_clarity_1.py
+++ b/scripts/expertise/expertise_fs_path_force_clarity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_force_clarity_1')
-
- actor.addSkillMod('expertise_stance_fs_force_clarity', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_force_clarity_1')
-
- actor.removeSkillMod('expertise_stance_fs_force_clarity', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_force_clarity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_force_clarity_1")
return
diff --git a/scripts/expertise/expertise_fs_path_force_drain_1.py b/scripts/expertise/expertise_fs_path_force_drain_1.py
index e8c5fee3..6d310e3a 100644
--- a/scripts/expertise/expertise_fs_path_force_drain_1.py
+++ b/scripts/expertise/expertise_fs_path_force_drain_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_force_drain_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_force_drain_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('fs_drain_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("fs_drain_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("fs_drain_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("fs_drain_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("fs_drain_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("fs_drain_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('fs_drain_1')
-
+ actor.removeAbility("fs_drain_1")
+ actor.removeAbility("fs_drain_2")
+ actor.removeAbility("fs_drain_3")
+ actor.removeAbility("fs_drain_4")
+ actor.removeAbility("fs_drain_5")
return
diff --git a/scripts/expertise/expertise_fs_path_forsake_fear_1.py b/scripts/expertise/expertise_fs_path_forsake_fear_1.py
index 6ef13e11..8ef08232 100644
--- a/scripts/expertise/expertise_fs_path_forsake_fear_1.py
+++ b/scripts/expertise/expertise_fs_path_forsake_fear_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_forsake_fear_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_forsake_fear_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('fs_forsake_fear')
-
+ actor.addAbility("fs_forsake_fear")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('fs_forsake_fear')
-
+ actor.removeAbility("fs_forsake_fear")
return
diff --git a/scripts/expertise/expertise_fs_path_hermetic_touch_1.py b/scripts/expertise/expertise_fs_path_hermetic_touch_1.py
index 8361fe7d..4e681b4e 100644
--- a/scripts/expertise/expertise_fs_path_hermetic_touch_1.py
+++ b/scripts/expertise/expertise_fs_path_hermetic_touch_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_hermetic_touch_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_hermetic_touch_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('fs_hermetic_touch')
-
+ actor.addAbility("fs_hermetic_touch")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('fs_hermetic_touch')
-
+ actor.removeAbility("fs_hermetic_touch")
return
diff --git a/scripts/expertise/expertise_fs_path_improved_force_choke_1.py b/scripts/expertise/expertise_fs_path_improved_force_choke_1.py
index e01d7586..6aef5ed0 100644
--- a/scripts/expertise/expertise_fs_path_improved_force_choke_1.py
+++ b/scripts/expertise/expertise_fs_path_improved_force_choke_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_improved_force_choke_1')
-
- actor.addSkillMod('expertise_damage_line_fs_dm_cc', 10)
- actor.addSkillMod('expertise_dot_damage_line_fs_dm_cc', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_improved_force_choke_1')
-
- actor.removeSkillMod('expertise_damage_line_fs_dm_cc', 10)
- actor.removeSkillMod('expertise_dot_damage_line_fs_dm_cc', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_improved_force_choke_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_improved_force_choke_1")
return
diff --git a/scripts/expertise/expertise_fs_path_improved_force_choke_2.py b/scripts/expertise/expertise_fs_path_improved_force_choke_2.py
index 53971b85..dc0cb249 100644
--- a/scripts/expertise/expertise_fs_path_improved_force_choke_2.py
+++ b/scripts/expertise/expertise_fs_path_improved_force_choke_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_improved_force_choke_2')
-
- actor.addSkillMod('expertise_damage_line_fs_dm_cc', 10)
- actor.addSkillMod('expertise_dot_damage_line_fs_dm_cc', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_improved_force_choke_2')
-
- actor.removeSkillMod('expertise_damage_line_fs_dm_cc', 10)
- actor.removeSkillMod('expertise_dot_damage_line_fs_dm_cc', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_improved_force_choke_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_improved_force_choke_2")
return
diff --git a/scripts/expertise/expertise_fs_path_improved_force_drain_1.py b/scripts/expertise/expertise_fs_path_improved_force_drain_1.py
index 2665853a..425f98c3 100644
--- a/scripts/expertise/expertise_fs_path_improved_force_drain_1.py
+++ b/scripts/expertise/expertise_fs_path_improved_force_drain_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_improved_force_drain_1')
-
- actor.addSkillMod('expertise_fs_imp_drain', 33)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_improved_force_drain_1')
-
- actor.removeSkillMod('expertise_fs_imp_drain', 33)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_improved_force_drain_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_improved_force_drain_1")
return
diff --git a/scripts/expertise/expertise_fs_path_improved_force_drain_2.py b/scripts/expertise/expertise_fs_path_improved_force_drain_2.py
index 61d92bb5..a155578f 100644
--- a/scripts/expertise/expertise_fs_path_improved_force_drain_2.py
+++ b/scripts/expertise/expertise_fs_path_improved_force_drain_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_improved_force_drain_2')
-
- actor.addSkillMod('expertise_fs_imp_drain', 33)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_improved_force_drain_2')
-
- actor.removeSkillMod('expertise_fs_imp_drain', 33)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_improved_force_drain_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_improved_force_drain_2")
return
diff --git a/scripts/expertise/expertise_fs_path_improved_force_drain_3.py b/scripts/expertise/expertise_fs_path_improved_force_drain_3.py
index 4ecb65bf..9fc7a049 100644
--- a/scripts/expertise/expertise_fs_path_improved_force_drain_3.py
+++ b/scripts/expertise/expertise_fs_path_improved_force_drain_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_improved_force_drain_3')
-
- actor.addSkillMod('expertise_fs_imp_drain', 34)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_improved_force_drain_3')
-
- actor.removeSkillMod('expertise_fs_imp_drain', 34)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_improved_force_drain_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_improved_force_drain_3")
return
diff --git a/scripts/expertise/expertise_fs_path_improved_saber_reflect_1.py b/scripts/expertise/expertise_fs_path_improved_saber_reflect_1.py
index f68eb3ae..fcd8dab3 100644
--- a/scripts/expertise/expertise_fs_path_improved_saber_reflect_1.py
+++ b/scripts/expertise/expertise_fs_path_improved_saber_reflect_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_improved_saber_reflect_1')
-
- actor.addSkillMod('expertise_damage_line_fs_saber_reflect', 50)
- actor.addSkillMod('expertise_force_alacrity', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_improved_saber_reflect_1')
-
- actor.removeSkillMod('expertise_damage_line_fs_saber_reflect', 50)
- actor.removeSkillMod('expertise_force_alacrity', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_improved_saber_reflect_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_improved_saber_reflect_1")
return
diff --git a/scripts/expertise/expertise_fs_path_improved_saber_reflect_2.py b/scripts/expertise/expertise_fs_path_improved_saber_reflect_2.py
index 6d95b6e7..dc7a3f46 100644
--- a/scripts/expertise/expertise_fs_path_improved_saber_reflect_2.py
+++ b/scripts/expertise/expertise_fs_path_improved_saber_reflect_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_improved_saber_reflect_2')
-
- actor.addSkillMod('expertise_damage_line_fs_saber_reflect', 50)
- actor.addSkillMod('expertise_force_alacrity', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_improved_saber_reflect_2')
-
- actor.removeSkillMod('expertise_damage_line_fs_saber_reflect', 50)
- actor.removeSkillMod('expertise_force_alacrity', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_improved_saber_reflect_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_improved_saber_reflect_2")
return
diff --git a/scripts/expertise/expertise_fs_path_lethargy_1.py b/scripts/expertise/expertise_fs_path_lethargy_1.py
index 7039b6d8..a214883f 100644
--- a/scripts/expertise/expertise_fs_path_lethargy_1.py
+++ b/scripts/expertise/expertise_fs_path_lethargy_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_lethargy_1')
-
- actor.addSkillMod('expertise_buff_duration_line_fs_mind_trick', 2)
- actor.addSkillMod('expertise_action_damage_line_fs_mind_trick', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_lethargy_1')
-
- actor.removeSkillMod('expertise_buff_duration_line_fs_mind_trick', 2)
- actor.removeSkillMod('expertise_action_damage_line_fs_mind_trick', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_lethargy_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_lethargy_1")
return
diff --git a/scripts/expertise/expertise_fs_path_lethargy_2.py b/scripts/expertise/expertise_fs_path_lethargy_2.py
index 6b294600..b3191ac1 100644
--- a/scripts/expertise/expertise_fs_path_lethargy_2.py
+++ b/scripts/expertise/expertise_fs_path_lethargy_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_lethargy_2')
-
- actor.addSkillMod('expertise_buff_duration_line_fs_mind_trick', 2)
- actor.addSkillMod('expertise_action_damage_line_fs_mind_trick', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_lethargy_2')
-
- actor.removeSkillMod('expertise_buff_duration_line_fs_mind_trick', 2)
- actor.removeSkillMod('expertise_action_damage_line_fs_mind_trick', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_lethargy_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_lethargy_2")
return
diff --git a/scripts/expertise/expertise_fs_path_lethargy_3.py b/scripts/expertise/expertise_fs_path_lethargy_3.py
index 9966bbad..833037e2 100644
--- a/scripts/expertise/expertise_fs_path_lethargy_3.py
+++ b/scripts/expertise/expertise_fs_path_lethargy_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_lethargy_3')
-
- actor.addSkillMod('expertise_buff_duration_line_fs_mind_trick', 2)
- actor.addSkillMod('expertise_action_damage_line_fs_mind_trick', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_lethargy_3')
-
- actor.removeSkillMod('expertise_buff_duration_line_fs_mind_trick', 2)
- actor.removeSkillMod('expertise_action_damage_line_fs_mind_trick', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_lethargy_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_lethargy_3")
return
diff --git a/scripts/expertise/expertise_fs_path_lethargy_4.py b/scripts/expertise/expertise_fs_path_lethargy_4.py
index ca3b2e10..6fb09b25 100644
--- a/scripts/expertise/expertise_fs_path_lethargy_4.py
+++ b/scripts/expertise/expertise_fs_path_lethargy_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_lethargy_4')
-
- actor.addSkillMod('expertise_buff_duration_line_fs_mind_trick', 2)
- actor.addSkillMod('expertise_action_damage_line_fs_mind_trick', 250)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_lethargy_4')
-
- actor.removeSkillMod('expertise_buff_duration_line_fs_mind_trick', 2)
- actor.removeSkillMod('expertise_action_damage_line_fs_mind_trick', 250)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_lethargy_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_lethargy_4")
return
diff --git a/scripts/expertise/expertise_fs_path_maelstrom_1.py b/scripts/expertise/expertise_fs_path_maelstrom_1.py
index 39b07550..84a05ef5 100644
--- a/scripts/expertise/expertise_fs_path_maelstrom_1.py
+++ b/scripts/expertise/expertise_fs_path_maelstrom_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_maelstrom_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_maelstrom_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('fs_maelstrom_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("fs_maelstrom_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("fs_maelstrom_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("fs_maelstrom_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("fs_maelstrom_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("fs_maelstrom_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('fs_maelstrom_1')
-
+ actor.removeAbility("fs_maelstrom_1")
+ actor.removeAbility("fs_maelstrom_2")
+ actor.removeAbility("fs_maelstrom_3")
+ actor.removeAbility("fs_maelstrom_4")
+ actor.removeAbility("fs_maelstrom_5")
return
diff --git a/scripts/expertise/expertise_fs_path_perceptive_sentinel_1.py b/scripts/expertise/expertise_fs_path_perceptive_sentinel_1.py
index 3803bf98..c2bb199d 100644
--- a/scripts/expertise/expertise_fs_path_perceptive_sentinel_1.py
+++ b/scripts/expertise/expertise_fs_path_perceptive_sentinel_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_perceptive_sentinel_1')
-
- actor.addSkillMod('expertise_stance_perceptive_sentinel', 1)
- actor.addSkillMod('expertise_stance_perceptive_sentinel_pvp', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_perceptive_sentinel_1')
-
- actor.removeSkillMod('expertise_stance_perceptive_sentinel', 1)
- actor.removeSkillMod('expertise_stance_perceptive_sentinel_pvp', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_perceptive_sentinel_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_perceptive_sentinel_1")
return
diff --git a/scripts/expertise/expertise_fs_path_perceptive_sentinel_2.py b/scripts/expertise/expertise_fs_path_perceptive_sentinel_2.py
index e8944848..04c69b17 100644
--- a/scripts/expertise/expertise_fs_path_perceptive_sentinel_2.py
+++ b/scripts/expertise/expertise_fs_path_perceptive_sentinel_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_perceptive_sentinel_2')
-
- actor.addSkillMod('expertise_stance_perceptive_sentinel', 1)
- actor.addSkillMod('expertise_stance_perceptive_sentinel_pvp', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_perceptive_sentinel_2')
-
- actor.removeSkillMod('expertise_stance_perceptive_sentinel', 1)
- actor.removeSkillMod('expertise_stance_perceptive_sentinel_pvp', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_perceptive_sentinel_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_perceptive_sentinel_2")
return
diff --git a/scripts/expertise/expertise_fs_path_perceptive_sentinel_3.py b/scripts/expertise/expertise_fs_path_perceptive_sentinel_3.py
index a4bd42b0..83c4131f 100644
--- a/scripts/expertise/expertise_fs_path_perceptive_sentinel_3.py
+++ b/scripts/expertise/expertise_fs_path_perceptive_sentinel_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_perceptive_sentinel_3')
-
- actor.addSkillMod('expertise_stance_perceptive_sentinel', 1)
- actor.addSkillMod('expertise_stance_perceptive_sentinel_pvp', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_perceptive_sentinel_3')
-
- actor.removeSkillMod('expertise_stance_perceptive_sentinel', 1)
- actor.removeSkillMod('expertise_stance_perceptive_sentinel_pvp', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_perceptive_sentinel_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_perceptive_sentinel_3")
return
diff --git a/scripts/expertise/expertise_fs_path_perceptive_sentinel_4.py b/scripts/expertise/expertise_fs_path_perceptive_sentinel_4.py
index f3a94bb6..0f6276dc 100644
--- a/scripts/expertise/expertise_fs_path_perceptive_sentinel_4.py
+++ b/scripts/expertise/expertise_fs_path_perceptive_sentinel_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_perceptive_sentinel_4')
-
- actor.addSkillMod('expertise_stance_perceptive_sentinel', 1)
- actor.addSkillMod('expertise_stance_perceptive_sentinel_pvp', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_perceptive_sentinel_4')
-
- actor.removeSkillMod('expertise_stance_perceptive_sentinel', 1)
- actor.removeSkillMod('expertise_stance_perceptive_sentinel_pvp', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_perceptive_sentinel_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_perceptive_sentinel_4")
return
diff --git a/scripts/expertise/expertise_fs_path_reactive_response_1.py b/scripts/expertise/expertise_fs_path_reactive_response_1.py
index 7742793f..816c657d 100644
--- a/scripts/expertise/expertise_fs_path_reactive_response_1.py
+++ b/scripts/expertise/expertise_fs_path_reactive_response_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_reactive_response_1')
-
- actor.addSkillMod('expertise_stance_damage_add_to_action', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_reactive_response_1')
-
- actor.removeSkillMod('expertise_stance_damage_add_to_action', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_reactive_response_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_reactive_response_1")
return
diff --git a/scripts/expertise/expertise_fs_path_reactive_response_2.py b/scripts/expertise/expertise_fs_path_reactive_response_2.py
index a46db04e..3a79b265 100644
--- a/scripts/expertise/expertise_fs_path_reactive_response_2.py
+++ b/scripts/expertise/expertise_fs_path_reactive_response_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_reactive_response_2')
-
- actor.addSkillMod('expertise_stance_damage_add_to_action', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_reactive_response_2')
-
- actor.removeSkillMod('expertise_stance_damage_add_to_action', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_reactive_response_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_reactive_response_2")
return
diff --git a/scripts/expertise/expertise_fs_path_remorseless_nature_1.py b/scripts/expertise/expertise_fs_path_remorseless_nature_1.py
index a155f97c..1c4bee8a 100644
--- a/scripts/expertise/expertise_fs_path_remorseless_nature_1.py
+++ b/scripts/expertise/expertise_fs_path_remorseless_nature_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_remorseless_nature_1')
-
- actor.addSkillMod('expertise_focus_stamina', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_remorseless_nature_1')
-
- actor.removeSkillMod('expertise_focus_stamina', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_remorseless_nature_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_remorseless_nature_1")
return
diff --git a/scripts/expertise/expertise_fs_path_remorseless_nature_2.py b/scripts/expertise/expertise_fs_path_remorseless_nature_2.py
index 28db8826..85d986d8 100644
--- a/scripts/expertise/expertise_fs_path_remorseless_nature_2.py
+++ b/scripts/expertise/expertise_fs_path_remorseless_nature_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_remorseless_nature_2')
-
- actor.addSkillMod('expertise_focus_stamina', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_remorseless_nature_2')
-
- actor.removeSkillMod('expertise_focus_stamina', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_remorseless_nature_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_remorseless_nature_2")
return
diff --git a/scripts/expertise/expertise_fs_path_remorseless_nature_3.py b/scripts/expertise/expertise_fs_path_remorseless_nature_3.py
index 7089a65c..19dfa6fd 100644
--- a/scripts/expertise/expertise_fs_path_remorseless_nature_3.py
+++ b/scripts/expertise/expertise_fs_path_remorseless_nature_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_remorseless_nature_3')
-
- actor.addSkillMod('expertise_focus_stamina', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_remorseless_nature_3')
-
- actor.removeSkillMod('expertise_focus_stamina', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_remorseless_nature_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_remorseless_nature_3")
return
diff --git a/scripts/expertise/expertise_fs_path_remorseless_nature_4.py b/scripts/expertise/expertise_fs_path_remorseless_nature_4.py
index 49440a2d..8d505b2f 100644
--- a/scripts/expertise/expertise_fs_path_remorseless_nature_4.py
+++ b/scripts/expertise/expertise_fs_path_remorseless_nature_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_remorseless_nature_4')
-
- actor.addSkillMod('expertise_focus_stamina', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_remorseless_nature_4')
-
- actor.removeSkillMod('expertise_focus_stamina', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_remorseless_nature_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_remorseless_nature_4")
return
diff --git a/scripts/expertise/expertise_fs_path_riposte_1.py b/scripts/expertise/expertise_fs_path_riposte_1.py
index b7470a65..5ffa3594 100644
--- a/scripts/expertise/expertise_fs_path_riposte_1.py
+++ b/scripts/expertise/expertise_fs_path_riposte_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_riposte_1')
-
- actor.addSkillMod('expertise_stance_riposte', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_riposte_1')
-
- actor.removeSkillMod('expertise_stance_riposte', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_riposte_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_riposte_1")
return
diff --git a/scripts/expertise/expertise_fs_path_riposte_2.py b/scripts/expertise/expertise_fs_path_riposte_2.py
index de7b4623..7704424c 100644
--- a/scripts/expertise/expertise_fs_path_riposte_2.py
+++ b/scripts/expertise/expertise_fs_path_riposte_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_riposte_2')
-
- actor.addSkillMod('expertise_stance_riposte', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_riposte_2')
-
- actor.removeSkillMod('expertise_stance_riposte', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_riposte_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_riposte_2")
return
diff --git a/scripts/expertise/expertise_fs_path_ruthless_precision_1.py b/scripts/expertise/expertise_fs_path_ruthless_precision_1.py
index c90c209a..ad47cf20 100644
--- a/scripts/expertise/expertise_fs_path_ruthless_precision_1.py
+++ b/scripts/expertise/expertise_fs_path_ruthless_precision_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_ruthless_precision_1')
-
- core.skillModService.addSkillMod(actor, 'expertise_focus_damage_increase', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_ruthless_precision_1')
-
- core.skillModService.deductSkillMod(actor, 'expertise_focus_damage_increase', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_ruthless_precision_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_ruthless_precision_1")
return
diff --git a/scripts/expertise/expertise_fs_path_ruthless_precision_2.py b/scripts/expertise/expertise_fs_path_ruthless_precision_2.py
index 87ad2d2d..c4ccc5ae 100644
--- a/scripts/expertise/expertise_fs_path_ruthless_precision_2.py
+++ b/scripts/expertise/expertise_fs_path_ruthless_precision_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_ruthless_precision_2')
-
- core.skillModService.addSkillMod(actor, 'expertise_focus_damage_increase', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_ruthless_precision_2')
-
- core.skillModService.deductSkillMod(actor, 'expertise_focus_damage_increase', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_ruthless_precision_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_ruthless_precision_2")
return
diff --git a/scripts/expertise/expertise_fs_path_ruthless_precision_3.py b/scripts/expertise/expertise_fs_path_ruthless_precision_3.py
index b802e602..01546884 100644
--- a/scripts/expertise/expertise_fs_path_ruthless_precision_3.py
+++ b/scripts/expertise/expertise_fs_path_ruthless_precision_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_ruthless_precision_3')
-
- core.skillModService.addSkillMod(actor, 'expertise_focus_damage_increase', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_ruthless_precision_3')
-
- core.skillModService.deductSkillMod(actor, 'expertise_focus_damage_increase', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_ruthless_precision_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_ruthless_precision_3")
return
diff --git a/scripts/expertise/expertise_fs_path_ruthless_precision_4.py b/scripts/expertise/expertise_fs_path_ruthless_precision_4.py
index f0f94fe5..6292bfe5 100644
--- a/scripts/expertise/expertise_fs_path_ruthless_precision_4.py
+++ b/scripts/expertise/expertise_fs_path_ruthless_precision_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_ruthless_precision_4')
-
- core.skillModService.addSkillMod(actor, 'expertise_focus_damage_increase', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_ruthless_precision_4')
-
- core.skillModService.deductSkillMod(actor, 'expertise_focus_damage_increase', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_ruthless_precision_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_ruthless_precision_4")
return
diff --git a/scripts/expertise/expertise_fs_path_saber_reflect_1.py b/scripts/expertise/expertise_fs_path_saber_reflect_1.py
index 2895ccac..ff019b2d 100644
--- a/scripts/expertise/expertise_fs_path_saber_reflect_1.py
+++ b/scripts/expertise/expertise_fs_path_saber_reflect_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_saber_reflect_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_saber_reflect_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('fs_saber_reflect_buff')
-
+ actor.addAbility("fs_saber_reflect_buff")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('fs_saber_reflect_buff')
-
+ actor.removeAbility("fs_saber_reflect_buff")
return
diff --git a/scripts/expertise/expertise_fs_path_saber_shackle_1.py b/scripts/expertise/expertise_fs_path_saber_shackle_1.py
index 9f2fe63f..e7115fa0 100644
--- a/scripts/expertise/expertise_fs_path_saber_shackle_1.py
+++ b/scripts/expertise/expertise_fs_path_saber_shackle_1.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_saber_shackle_1')
-
- actor.addSkillMod('expertise_stance_saber_throw_snare_chance', 25)
- actor.addSkillMod('expertise_stance_saber_throw_root_chance', 2)
- actor.addSkillMod('expertise_damage_line_fs_dm', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_saber_shackle_1')
-
- actor.removeSkillMod('expertise_stance_saber_throw_snare_chance', 25)
- actor.removeSkillMod('expertise_stance_saber_throw_root_chance', 2)
- actor.removeSkillMod('expertise_damage_line_fs_dm', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_saber_shackle_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_saber_shackle_1")
return
diff --git a/scripts/expertise/expertise_fs_path_saber_shackle_2.py b/scripts/expertise/expertise_fs_path_saber_shackle_2.py
index 76d3d5fa..cc2cdab9 100644
--- a/scripts/expertise/expertise_fs_path_saber_shackle_2.py
+++ b/scripts/expertise/expertise_fs_path_saber_shackle_2.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_saber_shackle_2')
-
- actor.addSkillMod('expertise_stance_saber_throw_snare_chance', 25)
- actor.addSkillMod('expertise_stance_saber_throw_root_chance', 2)
- actor.addSkillMod('expertise_damage_line_fs_dm', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_saber_shackle_2')
-
- actor.removeSkillMod('expertise_stance_saber_throw_snare_chance', 25)
- actor.removeSkillMod('expertise_stance_saber_throw_root_chance', 2)
- actor.removeSkillMod('expertise_damage_line_fs_dm', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_saber_shackle_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_saber_shackle_2")
return
diff --git a/scripts/expertise/expertise_fs_path_saber_shackle_3.py b/scripts/expertise/expertise_fs_path_saber_shackle_3.py
index 7c4b0c3e..426199d1 100644
--- a/scripts/expertise/expertise_fs_path_saber_shackle_3.py
+++ b/scripts/expertise/expertise_fs_path_saber_shackle_3.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_saber_shackle_3')
-
- actor.addSkillMod('expertise_stance_saber_throw_snare_chance', 25)
- actor.addSkillMod('expertise_stance_saber_throw_root_chance', 2)
- actor.addSkillMod('expertise_damage_line_fs_dm', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_saber_shackle_3')
-
- actor.removeSkillMod('expertise_stance_saber_throw_snare_chance', 25)
- actor.removeSkillMod('expertise_stance_saber_throw_root_chance', 2)
- actor.removeSkillMod('expertise_damage_line_fs_dm', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_saber_shackle_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_saber_shackle_3")
return
diff --git a/scripts/expertise/expertise_fs_path_saber_shackle_4.py b/scripts/expertise/expertise_fs_path_saber_shackle_4.py
index 889e106d..a20668d8 100644
--- a/scripts/expertise/expertise_fs_path_saber_shackle_4.py
+++ b/scripts/expertise/expertise_fs_path_saber_shackle_4.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_saber_shackle_4')
-
- actor.addSkillMod('expertise_stance_saber_throw_snare_chance', 25)
- actor.addSkillMod('expertise_stance_saber_throw_root_chance', 2)
- actor.addSkillMod('expertise_damage_line_fs_dm', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_saber_shackle_4')
-
- actor.removeSkillMod('expertise_stance_saber_throw_snare_chance', 25)
- actor.removeSkillMod('expertise_stance_saber_throw_root_chance', 2)
- actor.removeSkillMod('expertise_damage_line_fs_dm', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_saber_shackle_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_saber_shackle_4")
return
diff --git a/scripts/expertise/expertise_fs_path_soothing_aura_1.py b/scripts/expertise/expertise_fs_path_soothing_aura_1.py
index d2ce8171..ab8c5c6b 100644
--- a/scripts/expertise/expertise_fs_path_soothing_aura_1.py
+++ b/scripts/expertise/expertise_fs_path_soothing_aura_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_soothing_aura_1')
-
- actor.addSkillMod('expertise_stance_healing_line_fs_heal', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_soothing_aura_1')
-
- actor.removeSkillMod('expertise_stance_healing_line_fs_heal', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_soothing_aura_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_soothing_aura_1")
return
diff --git a/scripts/expertise/expertise_fs_path_soothing_aura_2.py b/scripts/expertise/expertise_fs_path_soothing_aura_2.py
index eb134506..e04ed993 100644
--- a/scripts/expertise/expertise_fs_path_soothing_aura_2.py
+++ b/scripts/expertise/expertise_fs_path_soothing_aura_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_soothing_aura_2')
-
- actor.addSkillMod('expertise_stance_healing_line_fs_heal', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_soothing_aura_2')
-
- actor.removeSkillMod('expertise_stance_healing_line_fs_heal', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_soothing_aura_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_soothing_aura_2")
return
diff --git a/scripts/expertise/expertise_fs_path_soothing_aura_3.py b/scripts/expertise/expertise_fs_path_soothing_aura_3.py
index ea794b23..c7ec3e0b 100644
--- a/scripts/expertise/expertise_fs_path_soothing_aura_3.py
+++ b/scripts/expertise/expertise_fs_path_soothing_aura_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_soothing_aura_3')
-
- actor.addSkillMod('expertise_stance_healing_line_fs_heal', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_soothing_aura_3')
-
- actor.removeSkillMod('expertise_stance_healing_line_fs_heal', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_soothing_aura_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_soothing_aura_3")
return
diff --git a/scripts/expertise/expertise_fs_path_soothing_aura_4.py b/scripts/expertise/expertise_fs_path_soothing_aura_4.py
index b209ea53..0e3bc9a1 100644
--- a/scripts/expertise/expertise_fs_path_soothing_aura_4.py
+++ b/scripts/expertise/expertise_fs_path_soothing_aura_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_soothing_aura_4')
-
- actor.addSkillMod('expertise_stance_healing_line_fs_heal', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_soothing_aura_4')
-
- actor.removeSkillMod('expertise_stance_healing_line_fs_heal', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_soothing_aura_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_soothing_aura_4")
return
diff --git a/scripts/expertise/expertise_fs_path_strangulation_1.py b/scripts/expertise/expertise_fs_path_strangulation_1.py
index 7e57f9af..b1db621b 100644
--- a/scripts/expertise/expertise_fs_path_strangulation_1.py
+++ b/scripts/expertise/expertise_fs_path_strangulation_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_strangulation_1')
-
- actor.addSkillMod('expertise_fs_imp_choke', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_strangulation_1')
-
- actor.removeSkillMod('expertise_fs_imp_choke', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_strangulation_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_strangulation_1")
return
diff --git a/scripts/expertise/expertise_fs_path_strangulation_2.py b/scripts/expertise/expertise_fs_path_strangulation_2.py
index 40534bff..43c05ab8 100644
--- a/scripts/expertise/expertise_fs_path_strangulation_2.py
+++ b/scripts/expertise/expertise_fs_path_strangulation_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_strangulation_2')
-
- actor.addSkillMod('expertise_fs_imp_choke', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_strangulation_2')
-
- actor.removeSkillMod('expertise_fs_imp_choke', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_strangulation_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_strangulation_2")
return
diff --git a/scripts/expertise/expertise_fs_path_tempt_hatred_1.py b/scripts/expertise/expertise_fs_path_tempt_hatred_1.py
index 7bf99377..c8260021 100644
--- a/scripts/expertise/expertise_fs_path_tempt_hatred_1.py
+++ b/scripts/expertise/expertise_fs_path_tempt_hatred_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_tempt_hatred_1')
-
- actor.addSkillMod('expertise_focus_damage_add_to_action', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_tempt_hatred_1')
-
- actor.removeSkillMod('expertise_focus_damage_add_to_action', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_tempt_hatred_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_tempt_hatred_1")
return
diff --git a/scripts/expertise/expertise_fs_path_tempt_hatred_2.py b/scripts/expertise/expertise_fs_path_tempt_hatred_2.py
index 9abf4c24..cced0afd 100644
--- a/scripts/expertise/expertise_fs_path_tempt_hatred_2.py
+++ b/scripts/expertise/expertise_fs_path_tempt_hatred_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_tempt_hatred_2')
-
- actor.addSkillMod('expertise_focus_damage_add_to_action', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_tempt_hatred_2')
-
- actor.removeSkillMod('expertise_focus_damage_add_to_action', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_tempt_hatred_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_tempt_hatred_2")
return
diff --git a/scripts/expertise/expertise_fs_path_wracking_energy_1.py b/scripts/expertise/expertise_fs_path_wracking_energy_1.py
index 425b7931..25e70e11 100644
--- a/scripts/expertise/expertise_fs_path_wracking_energy_1.py
+++ b/scripts/expertise/expertise_fs_path_wracking_energy_1.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_wracking_energy_1')
-
- actor.addSkillMod('expertise_fs_dm_armor_bypass', 25)
- actor.addSkillMod('expertise_buff_duration_line_fs_ae_dm_cc', 2)
- actor.addSkillMod('expertise_buff_chance_line_fs_ae_dm_cc', 100)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_wracking_energy_1')
-
- actor.removeSkillMod('expertise_fs_dm_armor_bypass', 25)
- actor.removeSkillMod('expertise_buff_duration_line_fs_ae_dm_cc', 2)
- actor.removeSkillMod('expertise_buff_chance_line_fs_ae_dm_cc', 100)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_wracking_energy_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_wracking_energy_1")
return
diff --git a/scripts/expertise/expertise_fs_path_wracking_energy_2.py b/scripts/expertise/expertise_fs_path_wracking_energy_2.py
index 298130bc..cd1ed137 100644
--- a/scripts/expertise/expertise_fs_path_wracking_energy_2.py
+++ b/scripts/expertise/expertise_fs_path_wracking_energy_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_wracking_energy_2')
-
- actor.addSkillMod('expertise_fs_dm_armor_bypass', 25)
- actor.addSkillMod('expertise_buff_duration_line_fs_ae_dm_cc', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_wracking_energy_2')
-
- actor.removeSkillMod('expertise_fs_dm_armor_bypass', 25)
- actor.removeSkillMod('expertise_buff_duration_line_fs_ae_dm_cc', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_wracking_energy_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_wracking_energy_2")
return
diff --git a/scripts/expertise/expertise_fs_path_wracking_energy_3.py b/scripts/expertise/expertise_fs_path_wracking_energy_3.py
index 7ebb9e6a..00b73ffc 100644
--- a/scripts/expertise/expertise_fs_path_wracking_energy_3.py
+++ b/scripts/expertise/expertise_fs_path_wracking_energy_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_wracking_energy_3')
-
- actor.addSkillMod('expertise_fs_dm_armor_bypass', 25)
- actor.addSkillMod('expertise_buff_duration_line_fs_ae_dm_cc', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_wracking_energy_3')
-
- actor.removeSkillMod('expertise_fs_dm_armor_bypass', 25)
- actor.removeSkillMod('expertise_buff_duration_line_fs_ae_dm_cc', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_wracking_energy_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_wracking_energy_3")
return
diff --git a/scripts/expertise/expertise_fs_path_wracking_energy_4.py b/scripts/expertise/expertise_fs_path_wracking_energy_4.py
index 6818335f..86641a26 100644
--- a/scripts/expertise/expertise_fs_path_wracking_energy_4.py
+++ b/scripts/expertise/expertise_fs_path_wracking_energy_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.addSkill('expertise_fs_path_wracking_energy_4')
-
- actor.addSkillMod('expertise_fs_dm_armor_bypass', 25)
- actor.addSkillMod('expertise_buff_duration_line_fs_ae_dm_cc', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'force_sensitive_1a':
- return
-
- actor.removeSkill('expertise_fs_path_wracking_energy_4')
-
- actor.removeSkillMod('expertise_fs_dm_armor_bypass', 25)
- actor.removeSkillMod('expertise_buff_duration_line_fs_ae_dm_cc', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_fs_path_wracking_energy_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_fs_path_wracking_energy_4")
return
diff --git a/scripts/expertise/expertise_me_agility_1.py b/scripts/expertise/expertise_me_agility_1.py
index 29ea50ff..62abf270 100644
--- a/scripts/expertise/expertise_me_agility_1.py
+++ b/scripts/expertise/expertise_me_agility_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_agility_1')
-
- actor.addSkillMod('agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_agility_1')
-
- actor.removeSkillMod('agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_agility_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_agility_1")
return
diff --git a/scripts/expertise/expertise_me_agility_2.py b/scripts/expertise/expertise_me_agility_2.py
index f92f5a4b..d9f1bc7b 100644
--- a/scripts/expertise/expertise_me_agility_2.py
+++ b/scripts/expertise/expertise_me_agility_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_agility_2')
-
- actor.addSkillMod('agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_agility_2')
-
- actor.removeSkillMod('agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_agility_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_agility_2")
return
diff --git a/scripts/expertise/expertise_me_agility_3.py b/scripts/expertise/expertise_me_agility_3.py
index 7441af33..1d58506f 100644
--- a/scripts/expertise/expertise_me_agility_3.py
+++ b/scripts/expertise/expertise_me_agility_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_agility_3')
-
- actor.addSkillMod('agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_agility_3')
-
- actor.removeSkillMod('agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_agility_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_agility_3")
return
diff --git a/scripts/expertise/expertise_me_agility_4.py b/scripts/expertise/expertise_me_agility_4.py
index 89603b75..ab6d2201 100644
--- a/scripts/expertise/expertise_me_agility_4.py
+++ b/scripts/expertise/expertise_me_agility_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_agility_4')
-
- actor.addSkillMod('agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_agility_4')
-
- actor.removeSkillMod('agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_agility_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_agility_4")
return
diff --git a/scripts/expertise/expertise_me_agro_healing_1.py b/scripts/expertise/expertise_me_agro_healing_1.py
index 5e44ee56..35bcdccc 100644
--- a/scripts/expertise/expertise_me_agro_healing_1.py
+++ b/scripts/expertise/expertise_me_agro_healing_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_agro_healing_1')
-
- actor.addSkillMod('expertise_agro_healing', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_agro_healing_1')
-
- actor.removeSkillMod('expertise_agro_healing', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_agro_healing_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_agro_healing_1")
return
diff --git a/scripts/expertise/expertise_me_agro_healing_2.py b/scripts/expertise/expertise_me_agro_healing_2.py
index 454ce643..40fbc169 100644
--- a/scripts/expertise/expertise_me_agro_healing_2.py
+++ b/scripts/expertise/expertise_me_agro_healing_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_agro_healing_2')
-
- actor.addSkillMod('expertise_agro_healing', 20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_agro_healing_2')
-
- actor.removeSkillMod('expertise_agro_healing', 20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_agro_healing_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_agro_healing_2")
return
diff --git a/scripts/expertise/expertise_me_agro_healing_3.py b/scripts/expertise/expertise_me_agro_healing_3.py
index b795406e..4deaea9a 100644
--- a/scripts/expertise/expertise_me_agro_healing_3.py
+++ b/scripts/expertise/expertise_me_agro_healing_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_agro_healing_3')
-
- actor.addSkillMod('expertise_agro_healing', 20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_agro_healing_3')
-
- actor.removeSkillMod('expertise_agro_healing', 20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_agro_healing_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_agro_healing_3")
return
diff --git a/scripts/expertise/expertise_me_bacta_bomb_1.py b/scripts/expertise/expertise_me_bacta_bomb_1.py
index 64d190c5..40336997 100644
--- a/scripts/expertise/expertise_me_bacta_bomb_1.py
+++ b/scripts/expertise/expertise_me_bacta_bomb_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_bacta_bomb_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_bacta_bomb_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_bacta_bomb_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("me_bacta_bomb_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("me_bacta_bomb_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("me_bacta_bomb_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("me_bacta_bomb_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("me_bacta_bomb_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_bacta_bomb_1')
-
+ actor.removeAbility("me_bacta_bomb_1")
+ actor.removeAbility("me_bacta_bomb_2")
+ actor.removeAbility("me_bacta_bomb_3")
+ actor.removeAbility("me_bacta_bomb_4")
+ actor.removeAbility("me_bacta_bomb_5")
return
diff --git a/scripts/expertise/expertise_me_bacta_grenade_1.py b/scripts/expertise/expertise_me_bacta_grenade_1.py
index 2f16ef84..762bbabc 100644
--- a/scripts/expertise/expertise_me_bacta_grenade_1.py
+++ b/scripts/expertise/expertise_me_bacta_grenade_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_bacta_grenade_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_bacta_grenade_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_bacta_grenade_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("me_bacta_grenade_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("me_bacta_grenade_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("me_bacta_grenade_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("me_bacta_grenade_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("me_bacta_grenade_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_bacta_grenade_1')
-
+ actor.removeAbility("me_bacta_grenade_1")
+ actor.removeAbility("me_bacta_grenade_2")
+ actor.removeAbility("me_bacta_grenade_3")
+ actor.removeAbility("me_bacta_grenade_4")
+ actor.removeAbility("me_bacta_grenade_5")
return
diff --git a/scripts/expertise/expertise_me_bacta_resistance_1.py b/scripts/expertise/expertise_me_bacta_resistance_1.py
index 1c26ade5..f35efe8f 100644
--- a/scripts/expertise/expertise_me_bacta_resistance_1.py
+++ b/scripts/expertise/expertise_me_bacta_resistance_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_bacta_resistance_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_bacta_resistance_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_bacta_resistance_1')
-
+ actor.addAbility("me_bacta_resistance_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_bacta_resistance_1')
-
+ actor.removeAbility("me_bacta_resistance_1")
return
diff --git a/scripts/expertise/expertise_me_blood_cleaners_1.py b/scripts/expertise/expertise_me_blood_cleaners_1.py
index b4de82c1..7405f78d 100644
--- a/scripts/expertise/expertise_me_blood_cleaners_1.py
+++ b/scripts/expertise/expertise_me_blood_cleaners_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_blood_cleaners_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_blood_cleaners_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_blood_cleaners_1')
-
+ actor.addAbility("me_blood_cleaners_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_blood_cleaners_1')
-
+ actor.removeAbility("me_blood_clearners_1")
return
diff --git a/scripts/expertise/expertise_me_burst_1.py b/scripts/expertise/expertise_me_burst_1.py
index f9b65f16..2fff6848 100644
--- a/scripts/expertise/expertise_me_burst_1.py
+++ b/scripts/expertise/expertise_me_burst_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_burst_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_burst_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_burst_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("me_burst_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("me_burst_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("me_burst_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("me_burst_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("me_burst_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_burst_1')
-
+ actor.removeAbility("me_burst_1")
+ actor.removeAbility("me_burst_2")
+ actor.removeAbility("me_burst_3")
+ actor.removeAbility("me_burst_4")
+ actor.removeAbility("me_burst_5")
return
diff --git a/scripts/expertise/expertise_me_carbine_damage_1.py b/scripts/expertise/expertise_me_carbine_damage_1.py
index ae18ecf9..4cdfd0d0 100644
--- a/scripts/expertise/expertise_me_carbine_damage_1.py
+++ b/scripts/expertise/expertise_me_carbine_damage_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_carbine_damage_1')
-
- actor.addSkillMod('expertise_damage_weapon_1', 2)
- actor.addSkillMod('expertise_damage_weapon_2', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_carbine_damage_1')
-
- actor.removeSkillMod('expertise_damage_weapon_1', 2)
- actor.removeSkillMod('expertise_damage_weapon_2', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_carbine_damage_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_carbine_damage_1")
return
diff --git a/scripts/expertise/expertise_me_carbine_damage_2.py b/scripts/expertise/expertise_me_carbine_damage_2.py
index 50bd5fa2..2ca975d7 100644
--- a/scripts/expertise/expertise_me_carbine_damage_2.py
+++ b/scripts/expertise/expertise_me_carbine_damage_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_carbine_damage_2')
-
- actor.addSkillMod('expertise_damage_weapon_1', 2)
- actor.addSkillMod('expertise_damage_weapon_2', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_carbine_damage_2')
-
- actor.removeSkillMod('expertise_damage_weapon_1', 2)
- actor.removeSkillMod('expertise_damage_weapon_2', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_carbine_damage_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_carbine_damage_2")
return
diff --git a/scripts/expertise/expertise_me_carbine_damage_3.py b/scripts/expertise/expertise_me_carbine_damage_3.py
index 8a65e510..0fec9aac 100644
--- a/scripts/expertise/expertise_me_carbine_damage_3.py
+++ b/scripts/expertise/expertise_me_carbine_damage_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_carbine_damage_3')
-
- actor.addSkillMod('expertise_damage_weapon_1', 3)
- actor.addSkillMod('expertise_damage_weapon_2', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_carbine_damage_3')
-
- actor.removeSkillMod('expertise_damage_weapon_1', 3)
- actor.removeSkillMod('expertise_damage_weapon_2', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_carbine_damage_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_carbine_damage_3")
return
diff --git a/scripts/expertise/expertise_me_carbine_damage_4.py b/scripts/expertise/expertise_me_carbine_damage_4.py
index ddd1ca17..23dd0479 100644
--- a/scripts/expertise/expertise_me_carbine_damage_4.py
+++ b/scripts/expertise/expertise_me_carbine_damage_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_carbine_damage_4')
-
- actor.addSkillMod('expertise_damage_weapon_1', 3)
- actor.addSkillMod('expertise_damage_weapon_2', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_carbine_damage_4')
-
- actor.removeSkillMod('expertise_damage_weapon_1', 3)
- actor.removeSkillMod('expertise_damage_weapon_2', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_carbine_damage_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_carbine_damage_4")
return
diff --git a/scripts/expertise/expertise_me_cranial_smash_1.py b/scripts/expertise/expertise_me_cranial_smash_1.py
index 98d77547..220198de 100644
--- a/scripts/expertise/expertise_me_cranial_smash_1.py
+++ b/scripts/expertise/expertise_me_cranial_smash_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_cranial_smash_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_cranial_smash_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_cranial_smash_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("me_cranial_smash_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("me_cranial_smash_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("me_cranial_smash_3)
+ if actor.getLevel() >= 62:
+ actor.addAbility("me_cranial_smash_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("me_cranial_smash_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_cranial_smash_1')
-
+ actor.removeAbility("me_cranial_smash_1")
+ actor.removeAbility("me_cranial_smash_2")
+ actor.removeAbility("me_cranial_smash_3")
+ actor.removeAbility("me_cranial_smash_4")
+ actor.removeAbility("me_cranial_smash_5")
return
diff --git a/scripts/expertise/expertise_me_cure_affliction_1.py b/scripts/expertise/expertise_me_cure_affliction_1.py
index 6a794b64..7a783eea 100644
--- a/scripts/expertise/expertise_me_cure_affliction_1.py
+++ b/scripts/expertise/expertise_me_cure_affliction_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_cure_affliction_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_cure_affliction_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_cure_affliction_1')
-
+ actor.addAbility("me_cure_affliction_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_cure_affliction_1')
-
+ actor.removeAbility("me_cure_affliction_1")
return
diff --git a/scripts/expertise/expertise_me_dot_damage_1.py b/scripts/expertise/expertise_me_dot_damage_1.py
index 3251e445..163a8d86 100644
--- a/scripts/expertise/expertise_me_dot_damage_1.py
+++ b/scripts/expertise/expertise_me_dot_damage_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_dot_damage_1')
-
- actor.addSkillMod('expertise_dot_increase', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_dot_damage_1')
-
- actor.removeSkillMod('expertise_dot_increase', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_dot_damage_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_dot_damage_1")
return
diff --git a/scripts/expertise/expertise_me_dot_damage_2.py b/scripts/expertise/expertise_me_dot_damage_2.py
index 4c361396..0deae54e 100644
--- a/scripts/expertise/expertise_me_dot_damage_2.py
+++ b/scripts/expertise/expertise_me_dot_damage_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_dot_damage_2')
-
- actor.addSkillMod('expertise_dot_increase', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_dot_damage_2')
-
- actor.removeSkillMod('expertise_dot_increase', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_dot_damage_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_dot_damage_2")
return
diff --git a/scripts/expertise/expertise_me_dot_damage_3.py b/scripts/expertise/expertise_me_dot_damage_3.py
index 84865714..11ff1f05 100644
--- a/scripts/expertise/expertise_me_dot_damage_3.py
+++ b/scripts/expertise/expertise_me_dot_damage_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_dot_damage_3')
-
- actor.addSkillMod('expertise_dot_increase', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_dot_damage_3')
-
- actor.removeSkillMod('expertise_dot_increase', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_dot_damage_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_dot_damage_3")
return
diff --git a/scripts/expertise/expertise_me_dot_duration_1.py b/scripts/expertise/expertise_me_dot_duration_1.py
index b7962f70..c3a9b6a5 100644
--- a/scripts/expertise/expertise_me_dot_duration_1.py
+++ b/scripts/expertise/expertise_me_dot_duration_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_dot_duration_1')
-
- actor.addSkillMod('expertise_dot_duration_line_me_dot', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_dot_duration_1')
-
- actor.removeSkillMod('expertise_dot_duration_line_me_dot', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_dot_duration_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_dot_duration_1")
return
diff --git a/scripts/expertise/expertise_me_dot_duration_2.py b/scripts/expertise/expertise_me_dot_duration_2.py
index 7a514071..61309ba1 100644
--- a/scripts/expertise/expertise_me_dot_duration_2.py
+++ b/scripts/expertise/expertise_me_dot_duration_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_dot_duration_2')
-
- actor.addSkillMod('expertise_dot_duration_line_me_dot', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_dot_duration_2')
-
- actor.removeSkillMod('expertise_dot_duration_line_me_dot', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_dot_duration_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_dot_duration_2")
return
diff --git a/scripts/expertise/expertise_me_dot_duration_3.py b/scripts/expertise/expertise_me_dot_duration_3.py
index 8b2bb169..6f7b45eb 100644
--- a/scripts/expertise/expertise_me_dot_duration_3.py
+++ b/scripts/expertise/expertise_me_dot_duration_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_dot_duration_3')
-
- actor.addSkillMod('expertise_dot_duration_line_me_dot', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_dot_duration_3')
-
- actor.removeSkillMod('expertise_dot_duration_line_me_dot', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_dot_duration_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_dot_duration_3")
return
diff --git a/scripts/expertise/expertise_me_dueterium_rounds_1.py b/scripts/expertise/expertise_me_dueterium_rounds_1.py
index b7d57e44..ed57795c 100644
--- a/scripts/expertise/expertise_me_dueterium_rounds_1.py
+++ b/scripts/expertise/expertise_me_dueterium_rounds_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_dueterium_rounds_1')
-
- actor.addSkillMod('expertise_dueterium_rounds_proc', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_dueterium_rounds_1')
-
- actor.removeSkillMod('expertise_dueterium_rounds_proc', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_dueterium_rounds_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_dueterium_rounds_1")
return
diff --git a/scripts/expertise/expertise_me_electrolyte_drain_1.py b/scripts/expertise/expertise_me_electrolyte_drain_1.py
index d7eb33ac..1daa98a3 100644
--- a/scripts/expertise/expertise_me_electrolyte_drain_1.py
+++ b/scripts/expertise/expertise_me_electrolyte_drain_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_electrolyte_drain_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_electrolyte_drain_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_electrolyte_drain_1')
-
+ actor.addAbility("me_electrolyte_drain_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_electrolyte_drain_1')
-
+ actor.removeAbility("me_electrolyte_drain_1")
return
diff --git a/scripts/expertise/expertise_me_energy_armor_1.py b/scripts/expertise/expertise_me_energy_armor_1.py
index 2fc984be..fd7c40f9 100644
--- a/scripts/expertise/expertise_me_energy_armor_1.py
+++ b/scripts/expertise/expertise_me_energy_armor_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_energy_armor_1')
-
- actor.addSkillMod('expertise_innate_protection_all', 225)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_energy_armor_1')
-
- actor.removeSkillMod('expertise_innate_protection_all', 225)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_energy_armor_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_energy_armor_1")
return
diff --git a/scripts/expertise/expertise_me_energy_armor_2.py b/scripts/expertise/expertise_me_energy_armor_2.py
index 0d02a8a1..ace09ed5 100644
--- a/scripts/expertise/expertise_me_energy_armor_2.py
+++ b/scripts/expertise/expertise_me_energy_armor_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_energy_armor_2')
-
- actor.addSkillMod('expertise_innate_protection_all', 225)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_energy_armor_2')
-
- actor.removeSkillMod('expertise_innate_protection_all', 225)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_energy_armor_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_energy_armor_2")
return
diff --git a/scripts/expertise/expertise_me_energy_armor_3.py b/scripts/expertise/expertise_me_energy_armor_3.py
index cfc6f250..1d161f38 100644
--- a/scripts/expertise/expertise_me_energy_armor_3.py
+++ b/scripts/expertise/expertise_me_energy_armor_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_energy_armor_3')
-
- actor.addSkillMod('expertise_innate_protection_all', 225)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_energy_armor_3')
-
- actor.removeSkillMod('expertise_innate_protection_all', 225)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_energy_armor_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_energy_armor_3")
return
diff --git a/scripts/expertise/expertise_me_energy_armor_4.py b/scripts/expertise/expertise_me_energy_armor_4.py
index 76181747..84fad199 100644
--- a/scripts/expertise/expertise_me_energy_armor_4.py
+++ b/scripts/expertise/expertise_me_energy_armor_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_energy_armor_4')
-
- actor.addSkillMod('expertise_innate_protection_all', 225)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_energy_armor_4')
-
- actor.removeSkillMod('expertise_innate_protection_all', 225)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_energy_armor_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_energy_armor_4")
return
diff --git a/scripts/expertise/expertise_me_enhance_agility_1.py b/scripts/expertise/expertise_me_enhance_agility_1.py
index fd112eb9..4b49ecc9 100644
--- a/scripts/expertise/expertise_me_enhance_agility_1.py
+++ b/scripts/expertise/expertise_me_enhance_agility_1.py
@@ -1,48 +1,16 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_enhance_agility_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_enhance_agility_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_enhance_agility_1')
-
+ if actor.getLevel() >= 10:
+ actor.addAbility("me_enhance_agility_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("me_enhance_agility_2")
+ if actor.getLevel() >= 62:
+ actor.addAbility("me_enhance_agility_3")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_enhance_agility_1')
-
+ actor.removeAbility("me_enhance_agility_1")
+ actor.removeAbility("me_enhance_agility_2")
+ actor.removeAbility("me_enhance_agility_3")
return
diff --git a/scripts/expertise/expertise_me_enhance_block_1.py b/scripts/expertise/expertise_me_enhance_block_1.py
index 962c59d5..e6d4a3c6 100644
--- a/scripts/expertise/expertise_me_enhance_block_1.py
+++ b/scripts/expertise/expertise_me_enhance_block_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_enhance_block_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_enhance_block_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_enhance_block_1')
-
+ actor.addAbility("me_enhance_block_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_enhance_block_1')
-
+ actor.removeAbility("me_enhance_block_1")
return
diff --git a/scripts/expertise/expertise_me_enhance_dodge_1.py b/scripts/expertise/expertise_me_enhance_dodge_1.py
index 60af46b2..60b97cd6 100644
--- a/scripts/expertise/expertise_me_enhance_dodge_1.py
+++ b/scripts/expertise/expertise_me_enhance_dodge_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_enhance_dodge_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_enhance_dodge_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_enhance_dodge_1')
-
+ actor.addAbility("me_enhance_dodge_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_enhance_dodge_1')
-
+ actor.removeAbility("me_enhance_dodge_1")
return
diff --git a/scripts/expertise/expertise_me_enhance_duration_1.py b/scripts/expertise/expertise_me_enhance_duration_1.py
index 9b54c0a7..85c5c455 100644
--- a/scripts/expertise/expertise_me_enhance_duration_1.py
+++ b/scripts/expertise/expertise_me_enhance_duration_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_enhance_duration_1')
-
- actor.addSkillMod('expertise_buff_duration_line_me_enhance', 300)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_enhance_duration_1')
-
- actor.removeSkillMod('expertise_buff_duration_line_me_enhance', 300)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_enhance_duration_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_enhance_duration_1")
return
diff --git a/scripts/expertise/expertise_me_enhance_duration_2.py b/scripts/expertise/expertise_me_enhance_duration_2.py
index 4b66e476..ffb8e438 100644
--- a/scripts/expertise/expertise_me_enhance_duration_2.py
+++ b/scripts/expertise/expertise_me_enhance_duration_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_enhance_duration_2')
-
- actor.addSkillMod('expertise_buff_duration_line_me_enhance', 300)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_enhance_duration_2')
-
- actor.removeSkillMod('expertise_buff_duration_line_me_enhance', 300)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_enhance_duration_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_enhance_duration_2")
return
diff --git a/scripts/expertise/expertise_me_enhance_duration_3.py b/scripts/expertise/expertise_me_enhance_duration_3.py
index 336b9d27..53442947 100644
--- a/scripts/expertise/expertise_me_enhance_duration_3.py
+++ b/scripts/expertise/expertise_me_enhance_duration_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_enhance_duration_3')
-
- actor.addSkillMod('expertise_buff_duration_line_me_enhance', 600)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_enhance_duration_3')
-
- actor.removeSkillMod('expertise_buff_duration_line_me_enhance', 600)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_enhance_duration_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_enhance_duration_3")
return
diff --git a/scripts/expertise/expertise_me_enhance_precision_1.py b/scripts/expertise/expertise_me_enhance_precision_1.py
index f12da671..c099937d 100644
--- a/scripts/expertise/expertise_me_enhance_precision_1.py
+++ b/scripts/expertise/expertise_me_enhance_precision_1.py
@@ -1,48 +1,16 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_enhance_precision_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_enhance_precision_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_enhance_precision_1')
-
+ if actor.getLevel() >= 10:
+ actor.addAbility("me_enhance_precision_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("me_enhance_precision_2")
+ if actor.getLevel() >= 62:
+ actor.addAbility("me_enhance_precision_3")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_enhance_precision_1')
-
+ actor.removeAbility("me_enhance_precision_1")
+ actor.removeAbility("me_enhance_precision_2")
+ actor.removeAbility("me_enhance_precision_3")
return
diff --git a/scripts/expertise/expertise_me_enhance_strength_1.py b/scripts/expertise/expertise_me_enhance_strength_1.py
index 29bab818..693b0121 100644
--- a/scripts/expertise/expertise_me_enhance_strength_1.py
+++ b/scripts/expertise/expertise_me_enhance_strength_1.py
@@ -1,48 +1,16 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_enhance_strength_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_enhance_strength_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_enhance_strength_1')
-
+ if actor.getLevel() >= 10:
+ actor.addAbility("me_enhance_strength_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("me_enhance_strength_2")
+ if actor.getLevel() >= 62:
+ actor.addAbility("me_enhance_strength_3")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_enhance_strength_1')
-
+ actor.removeAbility("me_enhance_strength_1")
+ actor.removeAbility("me_enhance_strength_2")
+ actor.removeAbility("me_enhance_strength_3")
return
diff --git a/scripts/expertise/expertise_me_enhancement_specialist_1.py b/scripts/expertise/expertise_me_enhancement_specialist_1.py
index 145b50e9..ebf28d79 100644
--- a/scripts/expertise/expertise_me_enhancement_specialist_1.py
+++ b/scripts/expertise/expertise_me_enhancement_specialist_1.py
@@ -1,48 +1,24 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_enhancement_specialist_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_enhancement_specialist_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_enhance_action_1')
-
+ if actor.getLevel() >= 10:
+ actor.addAbility("me_enhance_action_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("me_enhance_action_2")
+ if actor.getLevel() >= 62:
+ actor.addAbility("me_enhance_action_3")
+
+ if actor.getLevel() >= 48:
+ actor.addAbility("me_buff_health_2")
+ if actor.getLevel() >= 76:
+ actor.addAbility("me_buff_health_3")
return
def removeAbilities(core, actor, player):
+ actor.removeAbility("me_enhance_action_1")
+ actor.removeAbility("me_enhance_action_2")
+ actor.removeAbility("me_enhance_action_3")
- actor.removeAbility('me_enhance_action_1')
-
+ actor.removeAbility("me_buff_health_2")
+ actor.removeAbility("me_buff_health_3")
return
diff --git a/scripts/expertise/expertise_me_evasion_1.py b/scripts/expertise/expertise_me_evasion_1.py
index 7e62f496..2bbcfee2 100644
--- a/scripts/expertise/expertise_me_evasion_1.py
+++ b/scripts/expertise/expertise_me_evasion_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_evasion_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_evasion_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_evasion_1')
-
+ actor.addAbility("me_evasion_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_evasion_1')
-
+ actor.removeAbility("me_evasion_1")
return
diff --git a/scripts/expertise/expertise_me_heal_action_1.py b/scripts/expertise/expertise_me_heal_action_1.py
index 984b1b6e..33f3254f 100644
--- a/scripts/expertise/expertise_me_heal_action_1.py
+++ b/scripts/expertise/expertise_me_heal_action_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_heal_action_1')
-
- actor.addSkillMod('expertise_action_line_me_heal', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_heal_action_1')
-
- actor.removeSkillMod('expertise_action_line_me_heal', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_heal_action_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_heal_action_1")
return
diff --git a/scripts/expertise/expertise_me_heal_action_2.py b/scripts/expertise/expertise_me_heal_action_2.py
index e650d1e5..b10d3548 100644
--- a/scripts/expertise/expertise_me_heal_action_2.py
+++ b/scripts/expertise/expertise_me_heal_action_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_heal_action_2')
-
- actor.addSkillMod('expertise_action_line_me_heal', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_heal_action_2')
-
- actor.removeSkillMod('expertise_action_line_me_heal', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_heal_action_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_heal_action_2")
return
diff --git a/scripts/expertise/expertise_me_heal_action_3.py b/scripts/expertise/expertise_me_heal_action_3.py
index a5457655..c009d1ae 100644
--- a/scripts/expertise/expertise_me_heal_action_3.py
+++ b/scripts/expertise/expertise_me_heal_action_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_heal_action_3')
-
- actor.addSkillMod('expertise_action_line_me_heal', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_heal_action_3')
-
- actor.removeSkillMod('expertise_action_line_me_heal', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_heal_action_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_heal_action_3")
return
diff --git a/scripts/expertise/expertise_me_heal_damage_1.py b/scripts/expertise/expertise_me_heal_damage_1.py
index 59b07cdf..ba2a72a5 100644
--- a/scripts/expertise/expertise_me_heal_damage_1.py
+++ b/scripts/expertise/expertise_me_heal_damage_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_heal_damage_1')
-
- actor.addSkillMod('expertise_healing_line_me_heal', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_heal_damage_1')
-
- actor.removeSkillMod('expertise_healing_line_me_heal', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_heal_damage_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_heal_damage_1")
return
diff --git a/scripts/expertise/expertise_me_heal_damage_2.py b/scripts/expertise/expertise_me_heal_damage_2.py
index c059fc9b..050ba76f 100644
--- a/scripts/expertise/expertise_me_heal_damage_2.py
+++ b/scripts/expertise/expertise_me_heal_damage_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_heal_damage_2')
-
- actor.addSkillMod('expertise_healing_line_me_heal', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_heal_damage_2')
-
- actor.removeSkillMod('expertise_healing_line_me_heal', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_heal_damage_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_heal_damage_2")
return
diff --git a/scripts/expertise/expertise_me_heal_damage_3.py b/scripts/expertise/expertise_me_heal_damage_3.py
index 94eb5732..3b85bde4 100644
--- a/scripts/expertise/expertise_me_heal_damage_3.py
+++ b/scripts/expertise/expertise_me_heal_damage_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_heal_damage_3')
-
- actor.addSkillMod('expertise_healing_line_me_heal', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_heal_damage_3')
-
- actor.removeSkillMod('expertise_healing_line_me_heal', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_heal_damage_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_heal_damage_3")
return
diff --git a/scripts/expertise/expertise_me_heal_damage_4.py b/scripts/expertise/expertise_me_heal_damage_4.py
index 85a946e6..e58ddb1a 100644
--- a/scripts/expertise/expertise_me_heal_damage_4.py
+++ b/scripts/expertise/expertise_me_heal_damage_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_heal_damage_4')
-
- actor.addSkillMod('expertise_healing_line_me_heal', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_heal_damage_4')
-
- actor.removeSkillMod('expertise_healing_line_me_heal', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_heal_damage_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_heal_damage_4")
return
diff --git a/scripts/expertise/expertise_me_hot_duration_1.py b/scripts/expertise/expertise_me_hot_duration_1.py
index dcdd6ac2..c18a4e36 100644
--- a/scripts/expertise/expertise_me_hot_duration_1.py
+++ b/scripts/expertise/expertise_me_hot_duration_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_hot_duration_1')
-
- actor.addSkillMod('expertise_healing_line_me_hot', 10)
- actor.addSkillMod('expertise_healing_line_me_hot_ae', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_hot_duration_1')
-
- actor.removeSkillMod('expertise_healing_line_me_hot', 10)
- actor.removeSkillMod('expertise_healing_line_me_hot_ae', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_hot_duration_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_hot_duration_1")
return
diff --git a/scripts/expertise/expertise_me_hot_duration_2.py b/scripts/expertise/expertise_me_hot_duration_2.py
index dccbe005..e89e515c 100644
--- a/scripts/expertise/expertise_me_hot_duration_2.py
+++ b/scripts/expertise/expertise_me_hot_duration_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_hot_duration_2')
-
- actor.addSkillMod('expertise_healing_line_me_hot', 10)
- actor.addSkillMod('expertise_healing_line_me_hot_ae', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_hot_duration_2')
-
- actor.removeSkillMod('expertise_healing_line_me_hot', 10)
- actor.removeSkillMod('expertise_healing_line_me_hot_ae', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_hot_duration_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_hot_duration_2")
return
diff --git a/scripts/expertise/expertise_me_hot_duration_3.py b/scripts/expertise/expertise_me_hot_duration_3.py
index 558430c1..ef238d8d 100644
--- a/scripts/expertise/expertise_me_hot_duration_3.py
+++ b/scripts/expertise/expertise_me_hot_duration_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_hot_duration_3')
-
- actor.addSkillMod('expertise_healing_line_me_hot', 15)
- actor.addSkillMod('expertise_healing_line_me_hot_ae', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_hot_duration_3')
-
- actor.removeSkillMod('expertise_healing_line_me_hot', 15)
- actor.removeSkillMod('expertise_healing_line_me_hot_ae', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_hot_duration_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_hot_duration_3")
return
diff --git a/scripts/expertise/expertise_me_hot_duration_4.py b/scripts/expertise/expertise_me_hot_duration_4.py
index 9783531f..16368742 100644
--- a/scripts/expertise/expertise_me_hot_duration_4.py
+++ b/scripts/expertise/expertise_me_hot_duration_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_hot_duration_4')
-
- actor.addSkillMod('expertise_healing_line_me_hot', 15)
- actor.addSkillMod('expertise_healing_line_me_hot_ae', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_hot_duration_4')
-
- actor.removeSkillMod('expertise_healing_line_me_hot', 15)
- actor.removeSkillMod('expertise_healing_line_me_hot_ae', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_hot_duration_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_hot_duration_4")
return
diff --git a/scripts/expertise/expertise_me_humanoid_crits_1.py b/scripts/expertise/expertise_me_humanoid_crits_1.py
index 4176b559..482342f3 100644
--- a/scripts/expertise/expertise_me_humanoid_crits_1.py
+++ b/scripts/expertise/expertise_me_humanoid_crits_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_humanoid_crits_1')
-
- actor.addSkillMod('expertise_critical_niche_pvp', 1)
- actor.addSkillMod('expertise_critical_niche_npc', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_humanoid_crits_1')
-
- actor.removeSkillMod('expertise_critical_niche_pvp', 1)
- actor.removeSkillMod('expertise_critical_niche_npc', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_humanoid_crits_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_humanoid_crits_1")
return
diff --git a/scripts/expertise/expertise_me_humanoid_crits_2.py b/scripts/expertise/expertise_me_humanoid_crits_2.py
index dd7995cb..085396cc 100644
--- a/scripts/expertise/expertise_me_humanoid_crits_2.py
+++ b/scripts/expertise/expertise_me_humanoid_crits_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_humanoid_crits_2')
-
- actor.addSkillMod('expertise_critical_niche_pvp', 2)
- actor.addSkillMod('expertise_critical_niche_npc', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_humanoid_crits_2')
-
- actor.removeSkillMod('expertise_critical_niche_pvp', 2)
- actor.removeSkillMod('expertise_critical_niche_npc', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_humanoid_crits_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_humanoid_crits_2")
return
diff --git a/scripts/expertise/expertise_me_humanoid_crits_3.py b/scripts/expertise/expertise_me_humanoid_crits_3.py
index 2351be93..7392d917 100644
--- a/scripts/expertise/expertise_me_humanoid_crits_3.py
+++ b/scripts/expertise/expertise_me_humanoid_crits_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_humanoid_crits_3')
-
- actor.addSkillMod('expertise_critical_niche_pvp', 2)
- actor.addSkillMod('expertise_critical_niche_npc', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_humanoid_crits_3')
-
- actor.removeSkillMod('expertise_critical_niche_pvp', 2)
- actor.removeSkillMod('expertise_critical_niche_npc', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_humanoid_crits_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_humanoid_crits_3")
return
diff --git a/scripts/expertise/expertise_me_induce_insanity_1.py b/scripts/expertise/expertise_me_induce_insanity_1.py
index 10f45c55..2817bc0a 100644
--- a/scripts/expertise/expertise_me_induce_insanity_1.py
+++ b/scripts/expertise/expertise_me_induce_insanity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_induce_insanity_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_induce_insanity_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_induce_insanity_1')
-
+ actor.addAbility("me_induce_insanity_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_induce_insanity_1')
-
+ actor.removeAbility("me_induce_insanity_1")
return
diff --git a/scripts/expertise/expertise_me_kinetic_armor_1.py b/scripts/expertise/expertise_me_kinetic_armor_1.py
index 26b5dea7..8d78e253 100644
--- a/scripts/expertise/expertise_me_kinetic_armor_1.py
+++ b/scripts/expertise/expertise_me_kinetic_armor_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_kinetic_armor_1')
-
- actor.addSkillMod('expertise_innate_protection_all', 225)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_kinetic_armor_1')
-
- actor.removeSkillMod('expertise_innate_protection_all', 225)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_kinetic_armor_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_kinetic_armor_1")
return
diff --git a/scripts/expertise/expertise_me_kinetic_armor_2.py b/scripts/expertise/expertise_me_kinetic_armor_2.py
index 72f3ba66..ab5c5e71 100644
--- a/scripts/expertise/expertise_me_kinetic_armor_2.py
+++ b/scripts/expertise/expertise_me_kinetic_armor_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_kinetic_armor_2')
-
- actor.addSkillMod('expertise_innate_protection_all', 225)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_kinetic_armor_2')
-
- actor.removeSkillMod('expertise_innate_protection_all', 225)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_kinetic_armor_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_kinetic_armor_2")
return
diff --git a/scripts/expertise/expertise_me_kinetic_armor_3.py b/scripts/expertise/expertise_me_kinetic_armor_3.py
index 794c9185..dcdb9751 100644
--- a/scripts/expertise/expertise_me_kinetic_armor_3.py
+++ b/scripts/expertise/expertise_me_kinetic_armor_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_kinetic_armor_3')
-
- actor.addSkillMod('expertise_innate_protection_all', 225)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_kinetic_armor_3')
-
- actor.removeSkillMod('expertise_innate_protection_all', 225)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_kinetic_armor_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_kinetic_armor_3")
return
diff --git a/scripts/expertise/expertise_me_kinetic_armor_4.py b/scripts/expertise/expertise_me_kinetic_armor_4.py
index 722e4b58..1982a785 100644
--- a/scripts/expertise/expertise_me_kinetic_armor_4.py
+++ b/scripts/expertise/expertise_me_kinetic_armor_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_kinetic_armor_4')
-
- actor.addSkillMod('expertise_innate_protection_all', 225)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_kinetic_armor_4')
-
- actor.removeSkillMod('expertise_innate_protection_all', 225)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_kinetic_armor_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_kinetic_armor_4")
return
diff --git a/scripts/expertise/expertise_me_poison_knuckle_1.py b/scripts/expertise/expertise_me_poison_knuckle_1.py
index 2b6b617e..7b436d7b 100644
--- a/scripts/expertise/expertise_me_poison_knuckle_1.py
+++ b/scripts/expertise/expertise_me_poison_knuckle_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_poison_knuckle_1')
-
- actor.addSkillMod('expertise_poison_knuckle_proc', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_poison_knuckle_1')
-
- actor.removeSkillMod('expertise_poison_knuckle_proc', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_poison_knuckle_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_poison_knuckle_1")
return
diff --git a/scripts/expertise/expertise_me_precision_1.py b/scripts/expertise/expertise_me_precision_1.py
index 8c6f96ed..0d344061 100644
--- a/scripts/expertise/expertise_me_precision_1.py
+++ b/scripts/expertise/expertise_me_precision_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_precision_1')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_precision_1')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_precision_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_precision_1")
return
diff --git a/scripts/expertise/expertise_me_precision_2.py b/scripts/expertise/expertise_me_precision_2.py
index 2873f46c..6857d3a2 100644
--- a/scripts/expertise/expertise_me_precision_2.py
+++ b/scripts/expertise/expertise_me_precision_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_precision_2')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_precision_2')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_precision_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_precision_2")
return
diff --git a/scripts/expertise/expertise_me_precision_3.py b/scripts/expertise/expertise_me_precision_3.py
index d8996229..bb36eea4 100644
--- a/scripts/expertise/expertise_me_precision_3.py
+++ b/scripts/expertise/expertise_me_precision_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_precision_3')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_precision_3')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_precision_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_precision_3")
return
diff --git a/scripts/expertise/expertise_me_precision_4.py b/scripts/expertise/expertise_me_precision_4.py
index 2a2643bb..c32b63ff 100644
--- a/scripts/expertise/expertise_me_precision_4.py
+++ b/scripts/expertise/expertise_me_precision_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_precision_4')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_precision_4')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_precision_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_precision_4")
return
diff --git a/scripts/expertise/expertise_me_reckless_stimulation_1.py b/scripts/expertise/expertise_me_reckless_stimulation_1.py
index d8085f3b..0be74ed4 100644
--- a/scripts/expertise/expertise_me_reckless_stimulation_1.py
+++ b/scripts/expertise/expertise_me_reckless_stimulation_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_reckless_stimulation_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_reckless_stimulation_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_reckless_stimulation_1')
-
+ actor.addAbility("me_reckless_stimulation_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_reckless_stimulation_1')
-
+ actor.removeAbility("me_reckless_stimulation_1")
return
diff --git a/scripts/expertise/expertise_me_revive_duration_1.py b/scripts/expertise/expertise_me_revive_duration_1.py
index 17a19551..d2bcc4ba 100644
--- a/scripts/expertise/expertise_me_revive_duration_1.py
+++ b/scripts/expertise/expertise_me_revive_duration_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_revive_duration_1')
-
- actor.addSkillMod('expertise_cooldown_line_me_revive', 5)
- actor.addSkillMod('expertise_cooldown_line_me_aoe_revive', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_revive_duration_1')
-
- actor.removeSkillMod('expertise_cooldown_line_me_revive', 5)
- actor.removeSkillMod('expertise_cooldown_line_me_aoe_revive', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_revive_duration_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_revive_duration_1")
return
diff --git a/scripts/expertise/expertise_me_revive_duration_2.py b/scripts/expertise/expertise_me_revive_duration_2.py
index ffe5144d..5c8a9035 100644
--- a/scripts/expertise/expertise_me_revive_duration_2.py
+++ b/scripts/expertise/expertise_me_revive_duration_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_revive_duration_2')
-
- actor.addSkillMod('expertise_cooldown_line_me_revive', 5)
- actor.addSkillMod('expertise_cooldown_line_me_aoe_revive', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_revive_duration_2')
-
- actor.removeSkillMod('expertise_cooldown_line_me_revive', 5)
- actor.removeSkillMod('expertise_cooldown_line_me_aoe_revive', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_revive_duration_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_revive_duration_2")
return
diff --git a/scripts/expertise/expertise_me_revive_duration_3.py b/scripts/expertise/expertise_me_revive_duration_3.py
index 4d89125e..0ed33a9b 100644
--- a/scripts/expertise/expertise_me_revive_duration_3.py
+++ b/scripts/expertise/expertise_me_revive_duration_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_revive_duration_3')
-
- actor.addSkillMod('expertise_cooldown_line_me_revive', 5)
- actor.addSkillMod('expertise_cooldown_line_me_aoe_revive', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_revive_duration_3')
-
- actor.removeSkillMod('expertise_cooldown_line_me_revive', 5)
- actor.removeSkillMod('expertise_cooldown_line_me_aoe_revive', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_revive_duration_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_revive_duration_3")
return
diff --git a/scripts/expertise/expertise_me_serotonin_boost_1.py b/scripts/expertise/expertise_me_serotonin_boost_1.py
index be920b81..13420734 100644
--- a/scripts/expertise/expertise_me_serotonin_boost_1.py
+++ b/scripts/expertise/expertise_me_serotonin_boost_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_serotonin_boost_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_serotonin_boost_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_serotonin_boost_1')
-
+ actor.addAbility("me_serotonin_boost_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_serotonin_boost_1')
-
+ actor.removeAbility("me_serotonin_boost_1")
return
diff --git a/scripts/expertise/expertise_me_serotonin_purge_1.py b/scripts/expertise/expertise_me_serotonin_purge_1.py
index 34a60137..54972a5b 100644
--- a/scripts/expertise/expertise_me_serotonin_purge_1.py
+++ b/scripts/expertise/expertise_me_serotonin_purge_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_serotonin_purge_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_serotonin_purge_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_serotonin_purge_1')
-
+ actor.addAbility("me_serotonin_purge_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_serotonin_purge_1')
-
+ actor.removeAbility("me_serotonin_purge_1")
return
diff --git a/scripts/expertise/expertise_me_stasis_1.py b/scripts/expertise/expertise_me_stasis_1.py
index f174c539..746687ba 100644
--- a/scripts/expertise/expertise_me_stasis_1.py
+++ b/scripts/expertise/expertise_me_stasis_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_stasis_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_stasis_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_stasis_1')
-
+ actor.addAbility("me_stasis_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_stasis_1')
-
+ actor.removeAbility("me_stasis_1")
return
diff --git a/scripts/expertise/expertise_me_strength_1.py b/scripts/expertise/expertise_me_strength_1.py
index b266ed84..9c3faac3 100644
--- a/scripts/expertise/expertise_me_strength_1.py
+++ b/scripts/expertise/expertise_me_strength_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_strength_1')
-
- actor.addSkillMod('strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_strength_1')
-
- actor.removeSkillMod('strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_strength_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_strength_1")
return
diff --git a/scripts/expertise/expertise_me_strength_2.py b/scripts/expertise/expertise_me_strength_2.py
index 99f72bb5..fa2bc7b7 100644
--- a/scripts/expertise/expertise_me_strength_2.py
+++ b/scripts/expertise/expertise_me_strength_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_strength_2')
-
- actor.addSkillMod('strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_strength_2')
-
- actor.removeSkillMod('strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_strength_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_strength_2")
return
diff --git a/scripts/expertise/expertise_me_strength_3.py b/scripts/expertise/expertise_me_strength_3.py
index f677cd7e..89f7a7a1 100644
--- a/scripts/expertise/expertise_me_strength_3.py
+++ b/scripts/expertise/expertise_me_strength_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_strength_3')
-
- actor.addSkillMod('strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_strength_3')
-
- actor.removeSkillMod('strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_strength_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_strength_3")
return
diff --git a/scripts/expertise/expertise_me_strength_4.py b/scripts/expertise/expertise_me_strength_4.py
index 6da9d910..d3e48b21 100644
--- a/scripts/expertise/expertise_me_strength_4.py
+++ b/scripts/expertise/expertise_me_strength_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_strength_4')
-
- actor.addSkillMod('strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_strength_4')
-
- actor.removeSkillMod('strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_strength_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_strength_4")
return
diff --git a/scripts/expertise/expertise_me_thyroid_rupture_1.py b/scripts/expertise/expertise_me_thyroid_rupture_1.py
index 229a2796..895d8882 100644
--- a/scripts/expertise/expertise_me_thyroid_rupture_1.py
+++ b/scripts/expertise/expertise_me_thyroid_rupture_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_thyroid_rupture_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_thyroid_rupture_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_thyroid_rupture_1')
-
+ actor.addAbility("me_thyroid_rupture_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_thyroid_rupture_1')
-
+ actor.removeAbility("me_thyroid_rupture_1")
return
diff --git a/scripts/expertise/expertise_me_traumatize_1.py b/scripts/expertise/expertise_me_traumatize_1.py
index 69856b36..4269ec8e 100644
--- a/scripts/expertise/expertise_me_traumatize_1.py
+++ b/scripts/expertise/expertise_me_traumatize_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_traumatize_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_traumatize_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('me_traumatize_1')
-
+ actor.addAbility("me_traumatize_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('me_traumatize_1')
-
+ actor.removeAbility("me_traumatize_1")
return
diff --git a/scripts/expertise/expertise_me_unarmed_crit_1.py b/scripts/expertise/expertise_me_unarmed_crit_1.py
index 77d9b653..529ff739 100644
--- a/scripts/expertise/expertise_me_unarmed_crit_1.py
+++ b/scripts/expertise/expertise_me_unarmed_crit_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_unarmed_crit_1')
-
- actor.addSkillMod('expertise_undiminished_critical_melee', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_unarmed_crit_1')
-
- actor.removeSkillMod('expertise_undiminished_critical_melee', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_unarmed_crit_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_unarmed_crit_1")
return
diff --git a/scripts/expertise/expertise_me_unarmed_crit_2.py b/scripts/expertise/expertise_me_unarmed_crit_2.py
index 5a6bb469..4b18402e 100644
--- a/scripts/expertise/expertise_me_unarmed_crit_2.py
+++ b/scripts/expertise/expertise_me_unarmed_crit_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_unarmed_crit_2')
-
- actor.addSkillMod('expertise_undiminished_critical_melee', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_unarmed_crit_2')
-
- actor.removeSkillMod('expertise_undiminished_critical_melee', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_unarmed_crit_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_unarmed_crit_2")
return
diff --git a/scripts/expertise/expertise_me_unarmed_crit_3.py b/scripts/expertise/expertise_me_unarmed_crit_3.py
index f5c332ea..8ba3de99 100644
--- a/scripts/expertise/expertise_me_unarmed_crit_3.py
+++ b/scripts/expertise/expertise_me_unarmed_crit_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_unarmed_crit_3')
-
- actor.addSkillMod('expertise_undiminished_critical_melee', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_unarmed_crit_3')
-
- actor.removeSkillMod('expertise_undiminished_critical_melee', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_unarmed_crit_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_unarmed_crit_3")
return
diff --git a/scripts/expertise/expertise_me_unarmed_damage_1.py b/scripts/expertise/expertise_me_unarmed_damage_1.py
index aa61fb7e..6b81c0bb 100644
--- a/scripts/expertise/expertise_me_unarmed_damage_1.py
+++ b/scripts/expertise/expertise_me_unarmed_damage_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_unarmed_damage_1')
-
- actor.addSkillMod('expertise_damage_melee', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_unarmed_damage_1')
-
- actor.removeSkillMod('expertise_damage_melee', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_unarmed_damage_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_unarmed_damage_1")
return
diff --git a/scripts/expertise/expertise_me_unarmed_damage_2.py b/scripts/expertise/expertise_me_unarmed_damage_2.py
index 7a11aedc..9bb4a83d 100644
--- a/scripts/expertise/expertise_me_unarmed_damage_2.py
+++ b/scripts/expertise/expertise_me_unarmed_damage_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_unarmed_damage_2')
-
- actor.addSkillMod('expertise_damage_melee', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_unarmed_damage_2')
-
- actor.removeSkillMod('expertise_damage_melee', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_unarmed_damage_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_unarmed_damage_2")
return
diff --git a/scripts/expertise/expertise_me_unarmed_damage_3.py b/scripts/expertise/expertise_me_unarmed_damage_3.py
index 9ca773ae..cd4660fa 100644
--- a/scripts/expertise/expertise_me_unarmed_damage_3.py
+++ b/scripts/expertise/expertise_me_unarmed_damage_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_unarmed_damage_3')
-
- actor.addSkillMod('expertise_damage_melee', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_unarmed_damage_3')
-
- actor.removeSkillMod('expertise_damage_melee', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_unarmed_damage_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_unarmed_damage_3")
return
diff --git a/scripts/expertise/expertise_me_unarmed_damage_4.py b/scripts/expertise/expertise_me_unarmed_damage_4.py
index 8164d9c5..8df37d4d 100644
--- a/scripts/expertise/expertise_me_unarmed_damage_4.py
+++ b/scripts/expertise/expertise_me_unarmed_damage_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_unarmed_damage_4')
-
- actor.addSkillMod('expertise_damage_melee', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_unarmed_damage_4')
-
- actor.removeSkillMod('expertise_damage_melee', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_unarmed_damage_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_unarmed_damage_4")
return
diff --git a/scripts/expertise/expertise_me_vital_action_1.py b/scripts/expertise/expertise_me_vital_action_1.py
index ac935c5d..60a8e9e4 100644
--- a/scripts/expertise/expertise_me_vital_action_1.py
+++ b/scripts/expertise/expertise_me_vital_action_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_vital_action_1')
-
- actor.addSkillMod('expertise_action_line_me_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_vital_action_1')
-
- actor.removeSkillMod('expertise_action_line_me_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_vital_action_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_vital_action_1")
return
diff --git a/scripts/expertise/expertise_me_vital_action_2.py b/scripts/expertise/expertise_me_vital_action_2.py
index a3614ac8..a8d0ea03 100644
--- a/scripts/expertise/expertise_me_vital_action_2.py
+++ b/scripts/expertise/expertise_me_vital_action_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_vital_action_2')
-
- actor.addSkillMod('expertise_action_line_me_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_vital_action_2')
-
- actor.removeSkillMod('expertise_action_line_me_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_vital_action_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_vital_action_2")
return
diff --git a/scripts/expertise/expertise_me_vital_action_3.py b/scripts/expertise/expertise_me_vital_action_3.py
index cfdcac09..bd0965c7 100644
--- a/scripts/expertise/expertise_me_vital_action_3.py
+++ b/scripts/expertise/expertise_me_vital_action_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_vital_action_3')
-
- actor.addSkillMod('expertise_action_line_me_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_vital_action_3')
-
- actor.removeSkillMod('expertise_action_line_me_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_vital_action_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_vital_action_3")
return
diff --git a/scripts/expertise/expertise_me_vital_action_4.py b/scripts/expertise/expertise_me_vital_action_4.py
index df14ebf9..ffcab6ff 100644
--- a/scripts/expertise/expertise_me_vital_action_4.py
+++ b/scripts/expertise/expertise_me_vital_action_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_vital_action_4')
-
- actor.addSkillMod('expertise_action_line_me_dm', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_vital_action_4')
-
- actor.removeSkillMod('expertise_action_line_me_dm', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_vital_action_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_vital_action_4")
return
diff --git a/scripts/expertise/expertise_me_vital_damage_1.py b/scripts/expertise/expertise_me_vital_damage_1.py
index a3b86e64..8783041a 100644
--- a/scripts/expertise/expertise_me_vital_damage_1.py
+++ b/scripts/expertise/expertise_me_vital_damage_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_vital_damage_1')
-
- actor.addSkillMod('expertise_damage_line_me_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_vital_damage_1')
-
- actor.removeSkillMod('expertise_damage_line_me_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_vital_damage_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_vital_damage_1")
return
diff --git a/scripts/expertise/expertise_me_vital_damage_2.py b/scripts/expertise/expertise_me_vital_damage_2.py
index 425891d3..727ee2fd 100644
--- a/scripts/expertise/expertise_me_vital_damage_2.py
+++ b/scripts/expertise/expertise_me_vital_damage_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_vital_damage_2')
-
- actor.addSkillMod('expertise_damage_line_me_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_vital_damage_2')
-
- actor.removeSkillMod('expertise_damage_line_me_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_vital_damage_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_vital_damage_2")
return
diff --git a/scripts/expertise/expertise_me_vital_damage_3.py b/scripts/expertise/expertise_me_vital_damage_3.py
index d1c6b17d..0e35314c 100644
--- a/scripts/expertise/expertise_me_vital_damage_3.py
+++ b/scripts/expertise/expertise_me_vital_damage_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_vital_damage_3')
-
- actor.addSkillMod('expertise_damage_line_me_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_vital_damage_3')
-
- actor.removeSkillMod('expertise_damage_line_me_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_vital_damage_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_vital_damage_3")
return
diff --git a/scripts/expertise/expertise_me_vital_damage_4.py b/scripts/expertise/expertise_me_vital_damage_4.py
index fbeb571c..bb634713 100644
--- a/scripts/expertise/expertise_me_vital_damage_4.py
+++ b/scripts/expertise/expertise_me_vital_damage_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.addSkill('expertise_me_vital_damage_4')
-
- actor.addSkillMod('expertise_damage_line_me_dm', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'medic_1a':
- return
-
- actor.removeSkill('expertise_me_vital_damage_4')
-
- actor.removeSkillMod('expertise_damage_line_me_dm', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_me_vital_damage_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_me_vital_damage_4")
return
diff --git a/scripts/expertise/expertise_munition_armorsmith_advanced_theory_1.py b/scripts/expertise/expertise_munition_armorsmith_advanced_theory_1.py
index c7b03de3..dd347899 100644
--- a/scripts/expertise/expertise_munition_armorsmith_advanced_theory_1.py
+++ b/scripts/expertise/expertise_munition_armorsmith_advanced_theory_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_armorsmith_advanced_theory_1')
-
- actor.addSkillMod('armor_experimentation', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_armorsmith_advanced_theory_1')
-
- actor.removeSkillMod('armor_experimentation', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_armorsmith_advanced_theory_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_armorsmith_advanced_theory_1")
return
diff --git a/scripts/expertise/expertise_munition_armorsmith_attachment_upgrade_1.py b/scripts/expertise/expertise_munition_armorsmith_attachment_upgrade_1.py
index 00e4e545..4f4ae755 100644
--- a/scripts/expertise/expertise_munition_armorsmith_attachment_upgrade_1.py
+++ b/scripts/expertise/expertise_munition_armorsmith_attachment_upgrade_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_armorsmith_attachment_upgrade_1')
-
- actor.addSkillMod('expertise_attachment_upgrade', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_armorsmith_attachment_upgrade_1')
-
- actor.removeSkillMod('expertise_attachment_upgrade', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_armorsmith_attachment_upgrade_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_armorsmith_attachment_upgrade_1")
return
diff --git a/scripts/expertise/expertise_munition_armorsmith_dexterity_1.py b/scripts/expertise/expertise_munition_armorsmith_dexterity_1.py
index 81d08c77..60cea356 100644
--- a/scripts/expertise/expertise_munition_armorsmith_dexterity_1.py
+++ b/scripts/expertise/expertise_munition_armorsmith_dexterity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_armorsmith_dexterity_1')
-
- actor.addSkillMod('armor_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_armorsmith_dexterity_1')
-
- actor.removeSkillMod('armor_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_armorsmith_dexterity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_armorsmith_dexterity_1")
return
diff --git a/scripts/expertise/expertise_munition_armorsmith_dexterity_2.py b/scripts/expertise/expertise_munition_armorsmith_dexterity_2.py
index 9c217bba..1cfed98e 100644
--- a/scripts/expertise/expertise_munition_armorsmith_dexterity_2.py
+++ b/scripts/expertise/expertise_munition_armorsmith_dexterity_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_armorsmith_dexterity_2')
-
- actor.addSkillMod('armor_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_armorsmith_dexterity_2')
-
- actor.removeSkillMod('armor_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_armorsmith_dexterity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_armorsmith_dexterity_2")
return
diff --git a/scripts/expertise/expertise_munition_armorsmith_dexterity_3.py b/scripts/expertise/expertise_munition_armorsmith_dexterity_3.py
index e26013a5..550545ec 100644
--- a/scripts/expertise/expertise_munition_armorsmith_dexterity_3.py
+++ b/scripts/expertise/expertise_munition_armorsmith_dexterity_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_armorsmith_dexterity_3')
-
- actor.addSkillMod('armor_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_armorsmith_dexterity_3')
-
- actor.removeSkillMod('armor_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_armorsmith_dexterity_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_armorsmith_dexterity_3")
return
diff --git a/scripts/expertise/expertise_munition_armorsmith_dexterity_4.py b/scripts/expertise/expertise_munition_armorsmith_dexterity_4.py
index 96c50f98..0467db0c 100644
--- a/scripts/expertise/expertise_munition_armorsmith_dexterity_4.py
+++ b/scripts/expertise/expertise_munition_armorsmith_dexterity_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_armorsmith_dexterity_4')
-
- actor.addSkillMod('armor_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_armorsmith_dexterity_4')
-
- actor.removeSkillMod('armor_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_armorsmith_dexterity_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_armorsmith_dexterity_4")
return
diff --git a/scripts/expertise/expertise_munition_armorsmith_hypothesis_1.py b/scripts/expertise/expertise_munition_armorsmith_hypothesis_1.py
index df25bf70..a813988d 100644
--- a/scripts/expertise/expertise_munition_armorsmith_hypothesis_1.py
+++ b/scripts/expertise/expertise_munition_armorsmith_hypothesis_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_armorsmith_hypothesis_1')
-
- actor.addSkillMod('expertise_experimentation_increase_armorsmith', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_armorsmith_hypothesis_1')
-
- actor.removeSkillMod('expertise_experimentation_increase_armorsmith', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_armorsmith_hypothesis_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_armorsmith_hypothesis_1")
return
diff --git a/scripts/expertise/expertise_munition_armorsmith_hypothesis_2.py b/scripts/expertise/expertise_munition_armorsmith_hypothesis_2.py
index 03d1cd9e..3e1df126 100644
--- a/scripts/expertise/expertise_munition_armorsmith_hypothesis_2.py
+++ b/scripts/expertise/expertise_munition_armorsmith_hypothesis_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_armorsmith_hypothesis_2')
-
- actor.addSkillMod('expertise_experimentation_increase_armorsmith', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_armorsmith_hypothesis_2')
-
- actor.removeSkillMod('expertise_experimentation_increase_armorsmith', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_armorsmith_hypothesis_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_armorsmith_hypothesis_2")
return
diff --git a/scripts/expertise/expertise_munition_armorsmith_hypothesis_3.py b/scripts/expertise/expertise_munition_armorsmith_hypothesis_3.py
index 31e3d0a5..641c52c8 100644
--- a/scripts/expertise/expertise_munition_armorsmith_hypothesis_3.py
+++ b/scripts/expertise/expertise_munition_armorsmith_hypothesis_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_armorsmith_hypothesis_3')
-
- actor.addSkillMod('expertise_experimentation_increase_armorsmith', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_armorsmith_hypothesis_3')
-
- actor.removeSkillMod('expertise_experimentation_increase_armorsmith', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_armorsmith_hypothesis_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_armorsmith_hypothesis_3")
return
diff --git a/scripts/expertise/expertise_munition_armorsmith_hypothesis_4.py b/scripts/expertise/expertise_munition_armorsmith_hypothesis_4.py
index 3aaf3ca5..94bf9c1e 100644
--- a/scripts/expertise/expertise_munition_armorsmith_hypothesis_4.py
+++ b/scripts/expertise/expertise_munition_armorsmith_hypothesis_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_armorsmith_hypothesis_4')
-
- actor.addSkillMod('expertise_experimentation_increase_armorsmith', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_armorsmith_hypothesis_4')
-
- actor.removeSkillMod('expertise_experimentation_increase_armorsmith', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_armorsmith_hypothesis_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_armorsmith_hypothesis_4")
return
diff --git a/scripts/expertise/expertise_munition_armorsmith_insight_1.py b/scripts/expertise/expertise_munition_armorsmith_insight_1.py
index f4836dd3..682413ee 100644
--- a/scripts/expertise/expertise_munition_armorsmith_insight_1.py
+++ b/scripts/expertise/expertise_munition_armorsmith_insight_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_armorsmith_insight_1')
-
- actor.addSkillMod('expertise_complexity_decrease_armorsmith', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_armorsmith_insight_1')
-
- actor.removeSkillMod('expertise_complexity_decrease_armorsmith', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_armorsmith_insight_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_armorsmith_insight_1")
return
diff --git a/scripts/expertise/expertise_munition_armorsmith_insight_2.py b/scripts/expertise/expertise_munition_armorsmith_insight_2.py
index d0b5d3b0..a1ddebae 100644
--- a/scripts/expertise/expertise_munition_armorsmith_insight_2.py
+++ b/scripts/expertise/expertise_munition_armorsmith_insight_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_armorsmith_insight_2')
-
- actor.addSkillMod('expertise_complexity_decrease_armorsmith', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_armorsmith_insight_2')
-
- actor.removeSkillMod('expertise_complexity_decrease_armorsmith', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_armorsmith_insight_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_armorsmith_insight_2")
return
diff --git a/scripts/expertise/expertise_munition_armorsmith_keen_understanding_1.py b/scripts/expertise/expertise_munition_armorsmith_keen_understanding_1.py
index 9b7863bb..4b919776 100644
--- a/scripts/expertise/expertise_munition_armorsmith_keen_understanding_1.py
+++ b/scripts/expertise/expertise_munition_armorsmith_keen_understanding_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_armorsmith_keen_understanding_1')
-
- actor.addSkillMod('expertise_complexity_decrease_armorsmith', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_armorsmith_keen_understanding_1')
-
- actor.removeSkillMod('expertise_complexity_decrease_armorsmith', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_armorsmith_keen_understanding_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_armorsmith_keen_understanding_1")
return
diff --git a/scripts/expertise/expertise_munition_armorsmith_keen_understanding_2.py b/scripts/expertise/expertise_munition_armorsmith_keen_understanding_2.py
index 9671c726..68063fba 100644
--- a/scripts/expertise/expertise_munition_armorsmith_keen_understanding_2.py
+++ b/scripts/expertise/expertise_munition_armorsmith_keen_understanding_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_armorsmith_keen_understanding_2')
-
- actor.addSkillMod('expertise_complexity_decrease_armorsmith', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_armorsmith_keen_understanding_2')
-
- actor.removeSkillMod('expertise_complexity_decrease_armorsmith', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_armorsmith_keen_understand_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_armorsmith_keen_understand_2")
return
diff --git a/scripts/expertise/expertise_munition_armorsmith_socket_bonus_1.py b/scripts/expertise/expertise_munition_armorsmith_socket_bonus_1.py
index 31a4bf81..87f97e77 100644
--- a/scripts/expertise/expertise_munition_armorsmith_socket_bonus_1.py
+++ b/scripts/expertise/expertise_munition_armorsmith_socket_bonus_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_armorsmith_socket_bonus_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_armorsmith_socket_bonus_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_armorsmith_socket_bonus_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_armorsmith_socket_bonus_1")
return
diff --git a/scripts/expertise/expertise_munition_artisan_advanced_theory_1.py b/scripts/expertise/expertise_munition_artisan_advanced_theory_1.py
index 1e5fe723..52843271 100644
--- a/scripts/expertise/expertise_munition_artisan_advanced_theory_1.py
+++ b/scripts/expertise/expertise_munition_artisan_advanced_theory_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_artisan_advanced_theory_1')
-
- actor.addSkillMod('general_experimentation', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_artisan_advanced_theory_1')
-
- actor.removeSkillMod('general_experimentation', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_artisan_advanced_theory_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_artisan_advanced_theory_1")
return
diff --git a/scripts/expertise/expertise_munition_artisan_dexterity_1.py b/scripts/expertise/expertise_munition_artisan_dexterity_1.py
index 638088a7..3c7654c3 100644
--- a/scripts/expertise/expertise_munition_artisan_dexterity_1.py
+++ b/scripts/expertise/expertise_munition_artisan_dexterity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_artisan_dexterity_1')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_artisan_dexterity_1')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_artisan_dexterity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_artisan_dexterity_1")
return
diff --git a/scripts/expertise/expertise_munition_artisan_dexterity_2.py b/scripts/expertise/expertise_munition_artisan_dexterity_2.py
index 447143e8..100dd414 100644
--- a/scripts/expertise/expertise_munition_artisan_dexterity_2.py
+++ b/scripts/expertise/expertise_munition_artisan_dexterity_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_artisan_dexterity_2')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_artisan_dexterity_2')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_artisan_dexterity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_artisan_dexterity_2")
return
diff --git a/scripts/expertise/expertise_munition_artisan_dexterity_3.py b/scripts/expertise/expertise_munition_artisan_dexterity_3.py
index 2100f2c7..aa5cdd64 100644
--- a/scripts/expertise/expertise_munition_artisan_dexterity_3.py
+++ b/scripts/expertise/expertise_munition_artisan_dexterity_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_artisan_dexterity_3')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_artisan_dexterity_3')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_artisan_dexterity_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_artisan_dexterity_3")
return
diff --git a/scripts/expertise/expertise_munition_artisan_dexterity_4.py b/scripts/expertise/expertise_munition_artisan_dexterity_4.py
index 4442f4d5..4dd8ecbb 100644
--- a/scripts/expertise/expertise_munition_artisan_dexterity_4.py
+++ b/scripts/expertise/expertise_munition_artisan_dexterity_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_artisan_dexterity_4')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_artisan_dexterity_4')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_artisan_dexterity_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_artisan_dexterity_4")
return
diff --git a/scripts/expertise/expertise_munition_artisan_hypothesis_1.py b/scripts/expertise/expertise_munition_artisan_hypothesis_1.py
index 80d37471..24cb3aae 100644
--- a/scripts/expertise/expertise_munition_artisan_hypothesis_1.py
+++ b/scripts/expertise/expertise_munition_artisan_hypothesis_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_artisan_hypothesis_1')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_artisan_hypothesis_1')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_artisan_hypothesis_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_artisan_hypothesis_1")
return
diff --git a/scripts/expertise/expertise_munition_artisan_hypothesis_2.py b/scripts/expertise/expertise_munition_artisan_hypothesis_2.py
index d842f507..99447075 100644
--- a/scripts/expertise/expertise_munition_artisan_hypothesis_2.py
+++ b/scripts/expertise/expertise_munition_artisan_hypothesis_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_artisan_hypothesis_2')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_artisan_hypothesis_2')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_artisan_hypothesis_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_artisan_hypothesis_2")
return
diff --git a/scripts/expertise/expertise_munition_artisan_hypothesis_3.py b/scripts/expertise/expertise_munition_artisan_hypothesis_3.py
index c4498501..a18d8365 100644
--- a/scripts/expertise/expertise_munition_artisan_hypothesis_3.py
+++ b/scripts/expertise/expertise_munition_artisan_hypothesis_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_artisan_hypothesis_3')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_artisan_hypothesis_3')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_artisan_hypothesis_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_artisan_hypothesis_3")
return
diff --git a/scripts/expertise/expertise_munition_artisan_hypothesis_4.py b/scripts/expertise/expertise_munition_artisan_hypothesis_4.py
index 9e217fe9..35ee3e44 100644
--- a/scripts/expertise/expertise_munition_artisan_hypothesis_4.py
+++ b/scripts/expertise/expertise_munition_artisan_hypothesis_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_artisan_hypothesis_4')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_artisan_hypothesis_4')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_artisan_hypothesis_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_artisan_hypothesis_4")
return
diff --git a/scripts/expertise/expertise_munition_resource_processing_1.py b/scripts/expertise/expertise_munition_resource_processing_1.py
index cbbef8f6..46b265dc 100644
--- a/scripts/expertise/expertise_munition_resource_processing_1.py
+++ b/scripts/expertise/expertise_munition_resource_processing_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_resource_processing_1')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_resource_processing_1')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_resource_processing_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_resource_processing_1")
return
diff --git a/scripts/expertise/expertise_munition_resource_processing_2.py b/scripts/expertise/expertise_munition_resource_processing_2.py
index 02eed65b..f188f336 100644
--- a/scripts/expertise/expertise_munition_resource_processing_2.py
+++ b/scripts/expertise/expertise_munition_resource_processing_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_resource_processing_2')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_resource_processing_2')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_resource_processing_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_resource_processing_2")
return
diff --git a/scripts/expertise/expertise_munition_resource_refinement_1.py b/scripts/expertise/expertise_munition_resource_refinement_1.py
index 0d500f72..855d585b 100644
--- a/scripts/expertise/expertise_munition_resource_refinement_1.py
+++ b/scripts/expertise/expertise_munition_resource_refinement_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_resource_refinement_1')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_resource_refinement_1')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_resource_refinement_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_resource_refinement_1")
return
diff --git a/scripts/expertise/expertise_munition_resource_refinement_2.py b/scripts/expertise/expertise_munition_resource_refinement_2.py
index 5b794681..e4536a48 100644
--- a/scripts/expertise/expertise_munition_resource_refinement_2.py
+++ b/scripts/expertise/expertise_munition_resource_refinement_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_resource_refinement_2')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_resource_refinement_2')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_resource_refinement_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_resource_refinement_2")
return
diff --git a/scripts/expertise/expertise_munition_weaponsmith_advanced_theory_1.py b/scripts/expertise/expertise_munition_weaponsmith_advanced_theory_1.py
index bfd79df3..6b248343 100644
--- a/scripts/expertise/expertise_munition_weaponsmith_advanced_theory_1.py
+++ b/scripts/expertise/expertise_munition_weaponsmith_advanced_theory_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_weaponsmith_advanced_theory_1')
-
- actor.addSkillMod('weapon_experimentation', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_weaponsmith_advanced_theory_1')
-
- actor.removeSkillMod('weapon_experimentation', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_weaponsmith_advanced_theory_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_weaponsmith_advanced_theory_1")
return
diff --git a/scripts/expertise/expertise_munition_weaponsmith_dexterity_1.py b/scripts/expertise/expertise_munition_weaponsmith_dexterity_1.py
index fd035fd8..78a141b6 100644
--- a/scripts/expertise/expertise_munition_weaponsmith_dexterity_1.py
+++ b/scripts/expertise/expertise_munition_weaponsmith_dexterity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_weaponsmith_dexterity_1')
-
- actor.addSkillMod('weapon_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_weaponsmith_dexterity_1')
-
- actor.removeSkillMod('weapon_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_weaponsmith_dexterity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_weaponsmith_dexterity_1")
return
diff --git a/scripts/expertise/expertise_munition_weaponsmith_dexterity_2.py b/scripts/expertise/expertise_munition_weaponsmith_dexterity_2.py
index 6e0ace46..978ba95f 100644
--- a/scripts/expertise/expertise_munition_weaponsmith_dexterity_2.py
+++ b/scripts/expertise/expertise_munition_weaponsmith_dexterity_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_weaponsmith_dexterity_2')
-
- actor.addSkillMod('weapon_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_weaponsmith_dexterity_2')
-
- actor.removeSkillMod('weapon_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_weaponsmith_dexterity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_weaponsmith_dexterity_2")
return
diff --git a/scripts/expertise/expertise_munition_weaponsmith_dexterity_3.py b/scripts/expertise/expertise_munition_weaponsmith_dexterity_3.py
index 7ca11203..c386a1ac 100644
--- a/scripts/expertise/expertise_munition_weaponsmith_dexterity_3.py
+++ b/scripts/expertise/expertise_munition_weaponsmith_dexterity_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_weaponsmith_dexterity_3')
-
- actor.addSkillMod('weapon_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_weaponsmith_dexterity_3')
-
- actor.removeSkillMod('weapon_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_weaponsmith_dexterity_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_weaponsmith_dexterity_3")
return
diff --git a/scripts/expertise/expertise_munition_weaponsmith_dexterity_4.py b/scripts/expertise/expertise_munition_weaponsmith_dexterity_4.py
index 492a2b7f..22d08692 100644
--- a/scripts/expertise/expertise_munition_weaponsmith_dexterity_4.py
+++ b/scripts/expertise/expertise_munition_weaponsmith_dexterity_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_weaponsmith_dexterity_4')
-
- actor.addSkillMod('weapon_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_weaponsmith_dexterity_4')
-
- actor.removeSkillMod('weapon_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_weaponsmith_dexterity_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_weaponsmith_dexterity_4")
return
diff --git a/scripts/expertise/expertise_munition_weaponsmith_hypothesis_1.py b/scripts/expertise/expertise_munition_weaponsmith_hypothesis_1.py
index 01a84b79..33a64c97 100644
--- a/scripts/expertise/expertise_munition_weaponsmith_hypothesis_1.py
+++ b/scripts/expertise/expertise_munition_weaponsmith_hypothesis_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_weaponsmith_hypothesis_1')
-
- actor.addSkillMod('expertise_experimentation_increase_weaponsmith', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_weaponsmith_hypothesis_1')
-
- actor.removeSkillMod('expertise_experimentation_increase_weaponsmith', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_weaponsmith_hypothesis_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_weaponsmith_hypothesis_1")
return
diff --git a/scripts/expertise/expertise_munition_weaponsmith_hypothesis_2.py b/scripts/expertise/expertise_munition_weaponsmith_hypothesis_2.py
index c55b807d..a38da0d9 100644
--- a/scripts/expertise/expertise_munition_weaponsmith_hypothesis_2.py
+++ b/scripts/expertise/expertise_munition_weaponsmith_hypothesis_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_weaponsmith_hypothesis_2')
-
- actor.addSkillMod('expertise_experimentation_increase_weaponsmith', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_weaponsmith_hypothesis_2')
-
- actor.removeSkillMod('expertise_experimentation_increase_weaponsmith', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_weaponsmith_hypothesis_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_weaponsmith_hypothesis_2")
return
diff --git a/scripts/expertise/expertise_munition_weaponsmith_hypothesis_3.py b/scripts/expertise/expertise_munition_weaponsmith_hypothesis_3.py
index 1236e5a7..a6ecbf5a 100644
--- a/scripts/expertise/expertise_munition_weaponsmith_hypothesis_3.py
+++ b/scripts/expertise/expertise_munition_weaponsmith_hypothesis_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_weaponsmith_hypothesis_3')
-
- actor.addSkillMod('expertise_experimentation_increase_weaponsmith', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_weaponsmith_hypothesis_3')
-
- actor.removeSkillMod('expertise_experimentation_increase_weaponsmith', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_weaponsmith_hypothesis_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_weaponsmith_hypothesis_3")
return
diff --git a/scripts/expertise/expertise_munition_weaponsmith_hypothesis_4.py b/scripts/expertise/expertise_munition_weaponsmith_hypothesis_4.py
index 233610d9..08e1855e 100644
--- a/scripts/expertise/expertise_munition_weaponsmith_hypothesis_4.py
+++ b/scripts/expertise/expertise_munition_weaponsmith_hypothesis_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_weaponsmith_hypothesis_4')
-
- actor.addSkillMod('expertise_experimentation_increase_weaponsmith', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_weaponsmith_hypothesis_4')
-
- actor.removeSkillMod('expertise_experimentation_increase_weaponsmith', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_weaponsmith_hypothesis_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_weaponsmith_hypothesis_4")
return
diff --git a/scripts/expertise/expertise_munition_weaponsmith_insight_1.py b/scripts/expertise/expertise_munition_weaponsmith_insight_1.py
index f4775f7e..02ae306a 100644
--- a/scripts/expertise/expertise_munition_weaponsmith_insight_1.py
+++ b/scripts/expertise/expertise_munition_weaponsmith_insight_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_weaponsmith_insight_1')
-
- actor.addSkillMod('expertise_complexity_decrease_weaponsmith', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_weaponsmith_insight_1')
-
- actor.removeSkillMod('expertise_complexity_decrease_weaponsmith', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_weaponsmith_insight_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_weaponsmith_insight_1")
return
diff --git a/scripts/expertise/expertise_munition_weaponsmith_insight_2.py b/scripts/expertise/expertise_munition_weaponsmith_insight_2.py
index 0bd0d617..fd8846c4 100644
--- a/scripts/expertise/expertise_munition_weaponsmith_insight_2.py
+++ b/scripts/expertise/expertise_munition_weaponsmith_insight_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_weaponsmith_insight_2')
-
- actor.addSkillMod('expertise_complexity_decrease_weaponsmith', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_weaponsmith_insight_2')
-
- actor.removeSkillMod('expertise_complexity_decrease_weaponsmith', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_weaponsmith_insight_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_weaponsmith_insight_2")
return
diff --git a/scripts/expertise/expertise_munition_weaponsmith_keen_understanding_1.py b/scripts/expertise/expertise_munition_weaponsmith_keen_understanding_1.py
index bf78a146..3a4b9071 100644
--- a/scripts/expertise/expertise_munition_weaponsmith_keen_understanding_1.py
+++ b/scripts/expertise/expertise_munition_weaponsmith_keen_understanding_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_weaponsmith_keen_understanding_1')
-
- actor.addSkillMod('expertise_complexity_decrease_weaponsmith', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_weaponsmith_keen_understanding_1')
-
- actor.removeSkillMod('expertise_complexity_decrease_weaponsmith', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_weaponsmith_keen_understanding_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_weaponsmith_keen_understanding_1")
return
diff --git a/scripts/expertise/expertise_munition_weaponsmith_keen_understanding_2.py b/scripts/expertise/expertise_munition_weaponsmith_keen_understanding_2.py
index 7bf75f62..14a0134d 100644
--- a/scripts/expertise/expertise_munition_weaponsmith_keen_understanding_2.py
+++ b/scripts/expertise/expertise_munition_weaponsmith_keen_understanding_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.addSkill('expertise_munition_weaponsmith_keen_understanding_2')
-
- actor.addSkillMod('expertise_complexity_decrease_weaponsmith', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_mun_1a':
- return
-
- actor.removeSkill('expertise_munition_weaponsmith_keen_understanding_2')
-
- actor.removeSkillMod('expertise_complexity_decrease_weaponsmith', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_munition_weaponsmith_keen_understanding_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_munition_weaponsmith_keen_understanding_2")
return
diff --git a/scripts/expertise/expertise_of_1h_crit_1.py b/scripts/expertise/expertise_of_1h_crit_1.py
index 461ff94d..5b1de38a 100644
--- a/scripts/expertise/expertise_of_1h_crit_1.py
+++ b/scripts/expertise/expertise_of_1h_crit_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_1h_crit_1')
-
- actor.addSkillMod('expertise_undiminished_critical_melee', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_1h_crit_1')
-
- actor.removeSkillMod('expertise_undiminished_critical_melee', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_1h_crit_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_1h_crit_1")
return
diff --git a/scripts/expertise/expertise_of_1h_crit_2.py b/scripts/expertise/expertise_of_1h_crit_2.py
index 60a05278..6f5fa016 100644
--- a/scripts/expertise/expertise_of_1h_crit_2.py
+++ b/scripts/expertise/expertise_of_1h_crit_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_1h_crit_2')
-
- actor.addSkillMod('expertise_undiminished_critical_melee', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_1h_crit_2')
-
- actor.removeSkillMod('expertise_undiminished_critical_melee', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_1h_crit_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_1h_crit_2")
return
diff --git a/scripts/expertise/expertise_of_1h_dam_1.py b/scripts/expertise/expertise_of_1h_dam_1.py
index b8be4494..f143981d 100644
--- a/scripts/expertise/expertise_of_1h_dam_1.py
+++ b/scripts/expertise/expertise_of_1h_dam_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_1h_dam_1')
-
- actor.addSkillMod('expertise_damage_melee', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_1h_dam_1')
-
- actor.removeSkillMod('expertise_damage_melee', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_1h_dam_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_1h_dam_1")
return
diff --git a/scripts/expertise/expertise_of_1h_dam_2.py b/scripts/expertise/expertise_of_1h_dam_2.py
index e4edd536..65802383 100644
--- a/scripts/expertise/expertise_of_1h_dam_2.py
+++ b/scripts/expertise/expertise_of_1h_dam_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_1h_dam_2')
-
- actor.addSkillMod('expertise_damage_melee', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_1h_dam_2')
-
- actor.removeSkillMod('expertise_damage_melee', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_1h_dam_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_1h_dam_2")
return
diff --git a/scripts/expertise/expertise_of_1h_dam_3.py b/scripts/expertise/expertise_of_1h_dam_3.py
index aa845e86..e1a3c0ad 100644
--- a/scripts/expertise/expertise_of_1h_dam_3.py
+++ b/scripts/expertise/expertise_of_1h_dam_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_1h_dam_3')
-
- actor.addSkillMod('expertise_damage_melee', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_1h_dam_3')
-
- actor.removeSkillMod('expertise_damage_melee', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_1h_dam_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_1h_dam_3")
return
diff --git a/scripts/expertise/expertise_of_1h_dam_4.py b/scripts/expertise/expertise_of_1h_dam_4.py
index 8041c7e1..10539dc5 100644
--- a/scripts/expertise/expertise_of_1h_dam_4.py
+++ b/scripts/expertise/expertise_of_1h_dam_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_1h_dam_4')
-
- actor.addSkillMod('expertise_damage_melee', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_1h_dam_4')
-
- actor.removeSkillMod('expertise_damage_melee', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_1h_dam_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_1h_dam_4")
return
diff --git a/scripts/expertise/expertise_of_advanced_paint_1.py b/scripts/expertise/expertise_of_advanced_paint_1.py
index 3174e3a1..aab196f3 100644
--- a/scripts/expertise/expertise_of_advanced_paint_1.py
+++ b/scripts/expertise/expertise_of_advanced_paint_1.py
@@ -1,48 +1,31 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_advanced_paint_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_advanced_paint_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_deb_def_4')
-
+ if actor.getLevel() >= 4:
+ actor.addAbility("of_deb_def_1")
+ if actor.getLevel() >= 12:
+ actor.addAbility("of_deb_def_2")
+ if actor.getLevel() >= 20:
+ actor.addAbility("of_deb_def_3")
+ if actor.getLevel() >= 30:
+ actor.addAbility("of_deb_def_4")
+ if actor.getLevel() >= 38:
+ actor.addAbility("of_deb_def_5")
+ if actor.getLevel() >= 52:
+ actor.addAbility("of_deb_def_6")
+ if actor.getLevel() >= 62:
+ actor.addAbility("of_deb_def_7")
+ if actor.getLevel() >= 72:
+ actor.addAbility("of_deb_def_8")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_deb_def_4')
-
+ actor.removeAbility("of_deb_def_1")
+ actor.removeAbility("of_deb_def_2")
+ actor.removeAbility("of_deb_def_3")
+ actor.removeAbility("of_deb_def_4")
+ actor.removeAbility("of_deb_def_5")
+ actor.removeAbility("of_deb_def_6")
+ actor.removeAbility("of_deb_def_7")
+ actor.removeAbility("of_deb_def_8")
return
diff --git a/scripts/expertise/expertise_of_advanced_tactics_1.py b/scripts/expertise/expertise_of_advanced_tactics_1.py
index 1bbd138c..6a976e84 100644
--- a/scripts/expertise/expertise_of_advanced_tactics_1.py
+++ b/scripts/expertise/expertise_of_advanced_tactics_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_advanced_tactics_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_advanced_tactics_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_buff_def_4')
-
+ actor.addAbility("of_buff_def_4")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_buff_def_4')
-
+ actor.removeAbility("of_buff_def_4")
return
diff --git a/scripts/expertise/expertise_of_aggro_channel_1.py b/scripts/expertise/expertise_of_aggro_channel_1.py
index 854b3726..912c1b43 100644
--- a/scripts/expertise/expertise_of_aggro_channel_1.py
+++ b/scripts/expertise/expertise_of_aggro_channel_1.py
@@ -1,50 +1,11 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_aggro_channel_1')
-
- actor.addSkillMod('expertise_aggro_channel', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_aggro_channel_1')
-
- actor.removeSkillMod('expertise_aggro_channel', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_aggro_channel')
-
+ actor.addAbility("of_aggro_channel")
+ actor.addAbility("expertise_of_aggro_channel_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_aggro_channel')
-
+ actor.removeAbility("of_aggro_channel")
+ actor.removeAbility("expertise_of_aggro_channel_1")
return
diff --git a/scripts/expertise/expertise_of_aggro_channel_2.py b/scripts/expertise/expertise_of_aggro_channel_2.py
new file mode 100644
index 00000000..69b37a58
--- /dev/null
+++ b/scripts/expertise/expertise_of_aggro_channel_2.py
@@ -0,0 +1,9 @@
+import sys
+
+def addAbilities(core, actor, player):
+ actor.addAbility("expertise_of_aggro_channel_2")
+ return
+
+def removeAbilities(core, actor, player):
+ actor.removeAbility("expertise_of_aggro_channel_2")
+ return
diff --git a/scripts/expertise/expertise_of_aggro_channel_3.py b/scripts/expertise/expertise_of_aggro_channel_3.py
new file mode 100644
index 00000000..59bb6863
--- /dev/null
+++ b/scripts/expertise/expertise_of_aggro_channel_3.py
@@ -0,0 +1,9 @@
+import sys
+
+def addAbilities(core, actor, player):
+ actor.addAbility("expertise_of_aggro_channel_3")
+ return
+
+def removeAbilities(core, actor, player):
+ actor.removeAbility("expertise_of_aggro_channel_3")
+ return
diff --git a/scripts/expertise/expertise_of_aoe_act_1.py b/scripts/expertise/expertise_of_aoe_act_1.py
index ca6b47a6..674c7d3a 100644
--- a/scripts/expertise/expertise_of_aoe_act_1.py
+++ b/scripts/expertise/expertise_of_aoe_act_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_aoe_act_1')
-
- actor.addSkillMod('expertise_action_line_of_aoe', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_aoe_act_1')
-
- actor.removeSkillMod('expertise_action_line_of_aoe', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_aoe_act_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_aoe_act_1")
return
diff --git a/scripts/expertise/expertise_of_aoe_act_2.py b/scripts/expertise/expertise_of_aoe_act_2.py
index 7d2e2aaf..97120f62 100644
--- a/scripts/expertise/expertise_of_aoe_act_2.py
+++ b/scripts/expertise/expertise_of_aoe_act_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_aoe_act_2')
-
- actor.addSkillMod('expertise_action_line_of_aoe', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_aoe_act_2')
-
- actor.removeSkillMod('expertise_action_line_of_aoe', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_aoe_act_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_aoe_act_2")
return
diff --git a/scripts/expertise/expertise_of_aoe_act_3.py b/scripts/expertise/expertise_of_aoe_act_3.py
index a07c0839..509996aa 100644
--- a/scripts/expertise/expertise_of_aoe_act_3.py
+++ b/scripts/expertise/expertise_of_aoe_act_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_aoe_act_3')
-
- actor.addSkillMod('expertise_action_line_of_aoe', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_aoe_act_3')
-
- actor.removeSkillMod('expertise_action_line_of_aoe', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_aoe_act_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_aoe_act_3")
return
diff --git a/scripts/expertise/expertise_of_aoe_act_4.py b/scripts/expertise/expertise_of_aoe_act_4.py
index 221991d5..d6d15040 100644
--- a/scripts/expertise/expertise_of_aoe_act_4.py
+++ b/scripts/expertise/expertise_of_aoe_act_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_aoe_act_4')
-
- actor.addSkillMod('expertise_action_line_of_aoe', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_aoe_act_4')
-
- actor.removeSkillMod('expertise_action_line_of_aoe', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_aoe_act_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_aoe_act_4")
return
diff --git a/scripts/expertise/expertise_of_aoe_crit_1.py b/scripts/expertise/expertise_of_aoe_crit_1.py
index f099eb09..f87e35f3 100644
--- a/scripts/expertise/expertise_of_aoe_crit_1.py
+++ b/scripts/expertise/expertise_of_aoe_crit_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_aoe_crit_1')
-
- actor.addSkillMod('expertise_critical_line_of_aoe', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_aoe_crit_1')
-
- actor.removeSkillMod('expertise_critical_line_of_aoe', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_aoe_crit_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_aoe_crit_1")
return
diff --git a/scripts/expertise/expertise_of_aoe_crit_2.py b/scripts/expertise/expertise_of_aoe_crit_2.py
index 9c9f80e4..66c7da61 100644
--- a/scripts/expertise/expertise_of_aoe_crit_2.py
+++ b/scripts/expertise/expertise_of_aoe_crit_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_aoe_crit_2')
-
- actor.addSkillMod('expertise_critical_line_of_aoe', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_aoe_crit_2')
-
- actor.removeSkillMod('expertise_critical_line_of_aoe', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_aoe_crit_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_aoe_crit_2")
return
diff --git a/scripts/expertise/expertise_of_aoe_crit_3.py b/scripts/expertise/expertise_of_aoe_crit_3.py
index e8c9cfaf..500ec01d 100644
--- a/scripts/expertise/expertise_of_aoe_crit_3.py
+++ b/scripts/expertise/expertise_of_aoe_crit_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_aoe_crit_3')
-
- actor.addSkillMod('expertise_critical_line_of_aoe', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_aoe_crit_3')
-
- actor.removeSkillMod('expertise_critical_line_of_aoe', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_aoe_crit_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_aoe_crit_3")
return
diff --git a/scripts/expertise/expertise_of_aoe_dam_1.py b/scripts/expertise/expertise_of_aoe_dam_1.py
index aecafb91..89e60747 100644
--- a/scripts/expertise/expertise_of_aoe_dam_1.py
+++ b/scripts/expertise/expertise_of_aoe_dam_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_aoe_dam_1')
-
- actor.addSkillMod('expertise_damage_line_of_aoe', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_aoe_dam_1')
-
- actor.removeSkillMod('expertise_damage_line_of_aoe', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_aoe_dam_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_aoe_dam_1")
return
diff --git a/scripts/expertise/expertise_of_aoe_dam_2.py b/scripts/expertise/expertise_of_aoe_dam_2.py
index b4051206..67ec6994 100644
--- a/scripts/expertise/expertise_of_aoe_dam_2.py
+++ b/scripts/expertise/expertise_of_aoe_dam_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_aoe_dam_2')
-
- actor.addSkillMod('expertise_damage_line_of_aoe', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_aoe_dam_2')
-
- actor.removeSkillMod('expertise_damage_line_of_aoe', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_aoe_dam_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_aoe_dam_2")
return
diff --git a/scripts/expertise/expertise_of_armor_eng_1.py b/scripts/expertise/expertise_of_armor_eng_1.py
index bbcb6419..c5d4960e 100644
--- a/scripts/expertise/expertise_of_armor_eng_1.py
+++ b/scripts/expertise/expertise_of_armor_eng_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_armor_eng_1')
-
- actor.addSkillMod('expertise_innate_protection_energy', 500)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_armor_eng_1')
-
- actor.removeSkillMod('expertise_innate_protection_energy', 500)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_armor_eng_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_armor_eng_1")
return
diff --git a/scripts/expertise/expertise_of_armor_eng_2.py b/scripts/expertise/expertise_of_armor_eng_2.py
index a3384177..ae551145 100644
--- a/scripts/expertise/expertise_of_armor_eng_2.py
+++ b/scripts/expertise/expertise_of_armor_eng_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_armor_eng_2')
-
- actor.addSkillMod('expertise_innate_protection_energy', 500)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_armor_eng_2')
-
- actor.removeSkillMod('expertise_innate_protection_energy', 500)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_armor_eng_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_armor_eng_2")
return
diff --git a/scripts/expertise/expertise_of_armor_kin_1.py b/scripts/expertise/expertise_of_armor_kin_1.py
index 06713c28..98f1e9e7 100644
--- a/scripts/expertise/expertise_of_armor_kin_1.py
+++ b/scripts/expertise/expertise_of_armor_kin_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_armor_kin_1')
-
- actor.addSkillMod('expertise_innate_protection_kinetic', 500)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_armor_kin_1')
-
- actor.removeSkillMod('expertise_innate_protection_kinetic', 500)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_armor_kin_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_armor_kin_1")
return
diff --git a/scripts/expertise/expertise_of_armor_kin_2.py b/scripts/expertise/expertise_of_armor_kin_2.py
index b1654a38..a67cdba1 100644
--- a/scripts/expertise/expertise_of_armor_kin_2.py
+++ b/scripts/expertise/expertise_of_armor_kin_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_armor_kin_2')
-
- actor.addSkillMod('expertise_innate_protection_kinetic', 500)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_armor_kin_2')
-
- actor.removeSkillMod('expertise_innate_protection_kinetic', 500)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_armor_kin_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_armor_kin_2")
return
diff --git a/scripts/expertise/expertise_of_charge_1.py b/scripts/expertise/expertise_of_charge_1.py
index 14086fb6..5667cd17 100644
--- a/scripts/expertise/expertise_of_charge_1.py
+++ b/scripts/expertise/expertise_of_charge_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_charge_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_charge_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_charge_1')
-
+ actor.addAbility("of_charge_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_charge_1')
-
+ actor.removeAbility("of_charge_1")
return
diff --git a/scripts/expertise/expertise_of_constitution_1.py b/scripts/expertise/expertise_of_constitution_1.py
index 0e6e578c..33d66895 100644
--- a/scripts/expertise/expertise_of_constitution_1.py
+++ b/scripts/expertise/expertise_of_constitution_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_constitution_1')
-
- actor.addSkillMod('constitution_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_constitution_1')
-
- actor.removeSkillMod('constitution_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_constution_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_constution_1")
return
diff --git a/scripts/expertise/expertise_of_constitution_2.py b/scripts/expertise/expertise_of_constitution_2.py
index 7332ea67..5afec279 100644
--- a/scripts/expertise/expertise_of_constitution_2.py
+++ b/scripts/expertise/expertise_of_constitution_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_constitution_2')
-
- actor.addSkillMod('constitution_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_constitution_2')
-
- actor.removeSkillMod('constitution_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_constution_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_constution_2")
return
diff --git a/scripts/expertise/expertise_of_constitution_3.py b/scripts/expertise/expertise_of_constitution_3.py
index 96cb9137..eb215ec3 100644
--- a/scripts/expertise/expertise_of_constitution_3.py
+++ b/scripts/expertise/expertise_of_constitution_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_constitution_3')
-
- actor.addSkillMod('constitution_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_constitution_3')
-
- actor.removeSkillMod('constitution_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_constution_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_constution_3")
return
diff --git a/scripts/expertise/expertise_of_constitution_4.py b/scripts/expertise/expertise_of_constitution_4.py
index 0ba009e9..75679a92 100644
--- a/scripts/expertise/expertise_of_constitution_4.py
+++ b/scripts/expertise/expertise_of_constitution_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_constitution_4')
-
- actor.addSkillMod('constitution_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_constitution_4')
-
- actor.removeSkillMod('constitution_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_constution_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_constution_4")
return
diff --git a/scripts/expertise/expertise_of_decapitate_1.py b/scripts/expertise/expertise_of_decapitate_1.py
index 5cfb1494..1c6cc6ee 100644
--- a/scripts/expertise/expertise_of_decapitate_1.py
+++ b/scripts/expertise/expertise_of_decapitate_1.py
@@ -1,48 +1,25 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_decapitate_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_decapitate_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_decapitate_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("of_decapitate_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("of_decapitate_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("of_decapitate_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("of_decapitate_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("of_decapitate_5")
+ if actor.getLevel() >= 90:
+ actor.addAbility("of_decapitate_6")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_decapitate_1')
-
+ actor.removeAbility("of_decapitate_1")
+ actor.removeAbility("of_decapitate_2")
+ actor.removeAbility("of_decapitate_3")
+ actor.removeAbility("of_decapitate_4")
+ actor.removeAbility("of_decapitate_5")
+ actor.removeAbility("of_decapitate_6")
return
diff --git a/scripts/expertise/expertise_of_dm_1.py b/scripts/expertise/expertise_of_dm_1.py
index 165617c2..22659ae7 100644
--- a/scripts/expertise/expertise_of_dm_1.py
+++ b/scripts/expertise/expertise_of_dm_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_dm_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_dm_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_pistol_dm')
-
+ actor.addAbility("of_pistol_dm")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_pistol_dm')
-
+ actor.removeAbility("of_pistol_dm")
return
diff --git a/scripts/expertise/expertise_of_drillmaster_1.py b/scripts/expertise/expertise_of_drillmaster_1.py
index 1216d427..1ffea25f 100644
--- a/scripts/expertise/expertise_of_drillmaster_1.py
+++ b/scripts/expertise/expertise_of_drillmaster_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_drillmaster_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_drillmaster_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_drillmaster_1')
-
+ actor.addAbility("of_drillmaster_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_drillmaster_1')
-
+ actor.removeAbility("of_drillmaster_1")
return
diff --git a/scripts/expertise/expertise_of_emergency_shield.py b/scripts/expertise/expertise_of_emergency_shield.py
index e3a8b519..c29afc3f 100644
--- a/scripts/expertise/expertise_of_emergency_shield.py
+++ b/scripts/expertise/expertise_of_emergency_shield.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_emergency_shield')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_emergency_shield')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_emergency_shield')
-
+ actor.addAbility("of_emergency_shield")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_emergency_shield')
-
+ actor.removeAbility("of_emergency_shield")
return
diff --git a/scripts/expertise/expertise_of_firepower_1.py b/scripts/expertise/expertise_of_firepower_1.py
index ff310741..ebdd34a9 100644
--- a/scripts/expertise/expertise_of_firepower_1.py
+++ b/scripts/expertise/expertise_of_firepower_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_firepower_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_firepower_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_firepower_1')
-
+ actor.addAbility("of_firepower_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_firepower_1')
-
+ actor.removeAbility("of_firepower_1")
return
diff --git a/scripts/expertise/expertise_of_firepower_cool_1.py b/scripts/expertise/expertise_of_firepower_cool_1.py
index d844f5f4..028ad25c 100644
--- a/scripts/expertise/expertise_of_firepower_cool_1.py
+++ b/scripts/expertise/expertise_of_firepower_cool_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_firepower_cool_1')
-
- actor.addSkillMod('expertise_cooldown_line_of_firepower', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_firepower_cool_1')
-
- actor.removeSkillMod('expertise_cooldown_line_of_firepower', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_firepower_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_firepower_1")
return
diff --git a/scripts/expertise/expertise_of_firepower_cool_2.py b/scripts/expertise/expertise_of_firepower_cool_2.py
index b0fab74f..fdfcbaba 100644
--- a/scripts/expertise/expertise_of_firepower_cool_2.py
+++ b/scripts/expertise/expertise_of_firepower_cool_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_firepower_cool_2')
-
- actor.addSkillMod('expertise_cooldown_line_of_firepower', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_firepower_cool_2')
-
- actor.removeSkillMod('expertise_cooldown_line_of_firepower', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_firepower_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_firepower_2")
return
diff --git a/scripts/expertise/expertise_of_firepower_cool_3.py b/scripts/expertise/expertise_of_firepower_cool_3.py
index 666c9647..28c63b2a 100644
--- a/scripts/expertise/expertise_of_firepower_cool_3.py
+++ b/scripts/expertise/expertise_of_firepower_cool_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_firepower_cool_3')
-
- actor.addSkillMod('expertise_cooldown_line_of_firepower', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_firepower_cool_3')
-
- actor.removeSkillMod('expertise_cooldown_line_of_firepower', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_firepower_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_firepower_3")
return
diff --git a/scripts/expertise/expertise_of_focus_fire_1.py b/scripts/expertise/expertise_of_focus_fire_1.py
index 7b0cbaff..0dfc30c4 100644
--- a/scripts/expertise/expertise_of_focus_fire_1.py
+++ b/scripts/expertise/expertise_of_focus_fire_1.py
@@ -1,48 +1,25 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_focus_fire_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_focus_fire_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_focus_fire_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("of_focus_fire_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("of_focus_fire_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("of_focus_fire_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("of_focus_fire_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("of_focus_fire_5")
+ if actor.getLevel() >= 90:
+ actor.addAbility("of_focus_fire_6")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_focus_fire_1')
-
+ actor.removeAbility("of_focus_fire_1")
+ actor.removeAbility("of_focus_fire_2")
+ actor.removeAbility("of_focus_fire_3")
+ actor.removeAbility("of_focus_fire_4")
+ actor.removeAbility("of_focus_fire_5")
+ actor.removeAbility("of_focus_fire_6")
return
diff --git a/scripts/expertise/expertise_of_group_buff_duration_1.py b/scripts/expertise/expertise_of_group_buff_duration_1.py
index 363bd385..dd53fe02 100644
--- a/scripts/expertise/expertise_of_group_buff_duration_1.py
+++ b/scripts/expertise/expertise_of_group_buff_duration_1.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_group_buff_duration_1')
-
- actor.addSkillMod('expertise_buff_duration_line_of_group_buff', 15)
- actor.addSkillMod('expertise_aura_maintain', 1)
- actor.addSkillMod('expertise_action_line_of_group_buff', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_group_buff_duration_1')
-
- actor.removeSkillMod('expertise_buff_duration_line_of_group_buff', 15)
- actor.removeSkillMod('expertise_aura_maintain', 1)
- actor.removeSkillMod('expertise_action_line_of_group_buff', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_group_buff_duration_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_group_buff_duration_1")
return
diff --git a/scripts/expertise/expertise_of_group_buff_duration_2.py b/scripts/expertise/expertise_of_group_buff_duration_2.py
index a8e441bc..3414a208 100644
--- a/scripts/expertise/expertise_of_group_buff_duration_2.py
+++ b/scripts/expertise/expertise_of_group_buff_duration_2.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_group_buff_duration_2')
-
- actor.addSkillMod('expertise_buff_duration_line_of_group_buff', 15)
- actor.addSkillMod('expertise_aura_maintain', 1)
- actor.addSkillMod('expertise_action_line_of_group_buff', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_group_buff_duration_2')
-
- actor.removeSkillMod('expertise_buff_duration_line_of_group_buff', 15)
- actor.removeSkillMod('expertise_aura_maintain', 1)
- actor.removeSkillMod('expertise_action_line_of_group_buff', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_group_buff_duration_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_group_buff_duration_2")
return
diff --git a/scripts/expertise/expertise_of_heal_cool_1.py b/scripts/expertise/expertise_of_heal_cool_1.py
index fe729bcf..9f3a849f 100644
--- a/scripts/expertise/expertise_of_heal_cool_1.py
+++ b/scripts/expertise/expertise_of_heal_cool_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_heal_cool_1')
-
- actor.addSkillMod('expertise_cooldown_line_of_heal', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_heal_cool_1')
-
- actor.removeSkillMod('expertise_cooldown_line_of_heal', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_heal_cool_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_heal_cool_1")
return
diff --git a/scripts/expertise/expertise_of_heal_cool_2.py b/scripts/expertise/expertise_of_heal_cool_2.py
index 93d3f257..2f5a04ad 100644
--- a/scripts/expertise/expertise_of_heal_cool_2.py
+++ b/scripts/expertise/expertise_of_heal_cool_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_heal_cool_2')
-
- actor.addSkillMod('expertise_cooldown_line_of_heal', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_heal_cool_2')
-
- actor.removeSkillMod('expertise_cooldown_line_of_heal', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_heal_cool_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_heal_cool_2")
return
diff --git a/scripts/expertise/expertise_of_heal_dam_1.py b/scripts/expertise/expertise_of_heal_dam_1.py
index 5040250a..b9263761 100644
--- a/scripts/expertise/expertise_of_heal_dam_1.py
+++ b/scripts/expertise/expertise_of_heal_dam_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_heal_dam_1')
-
- actor.addSkillMod('expertise_healing_line_of_heal', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_heal_dam_1')
-
- actor.removeSkillMod('expertise_healing_line_of_heal', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_heal_dam_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_heal_dam_1")
return
diff --git a/scripts/expertise/expertise_of_heal_dam_2.py b/scripts/expertise/expertise_of_heal_dam_2.py
index 40917e3b..2975d55f 100644
--- a/scripts/expertise/expertise_of_heal_dam_2.py
+++ b/scripts/expertise/expertise_of_heal_dam_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_heal_dam_2')
-
- actor.addSkillMod('expertise_healing_line_of_heal', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_heal_dam_2')
-
- actor.removeSkillMod('expertise_healing_line_of_heal', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_heal_dam_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_heal_dam_2")
return
diff --git a/scripts/expertise/expertise_of_inspiration_1.py b/scripts/expertise/expertise_of_inspiration_1.py
index 8905b42d..201c93dd 100644
--- a/scripts/expertise/expertise_of_inspiration_1.py
+++ b/scripts/expertise/expertise_of_inspiration_1.py
@@ -1,48 +1,25 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_inspiration_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_inspiration_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_inspiration_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("of_inspiration_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("of_inspiration_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("of_inspiration_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("of_inspiration_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("of_inspiration_5")
+ if actor.getLevel() >= 90:
+ actor.addAbility("of_inspiration_6")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_inspiration_1')
-
+ actor.removeAbility("of_inspiration_1")
+ actor.removeAbility("of_inspiration_2")
+ actor.removeAbility("of_inspiration_3")
+ actor.removeAbility("of_inspiration_4")
+ actor.removeAbility("of_inspiration_5")
+ actor.removeAbility("of_inspiration_6")
return
diff --git a/scripts/expertise/expertise_of_last_words_1.py b/scripts/expertise/expertise_of_last_words_1.py
index 540a29c7..688c8727 100644
--- a/scripts/expertise/expertise_of_last_words_1.py
+++ b/scripts/expertise/expertise_of_last_words_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_last_words_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_last_words_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
return
def removeAbilities(core, actor, player):
-
return
diff --git a/scripts/expertise/expertise_of_leg_strike_1.py b/scripts/expertise/expertise_of_leg_strike_1.py
index 3eb59a01..30612f01 100644
--- a/scripts/expertise/expertise_of_leg_strike_1.py
+++ b/scripts/expertise/expertise_of_leg_strike_1.py
@@ -1,48 +1,28 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_leg_strike_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_leg_strike_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_leg_strike_1')
-
+ if actor.getLevel() >= 4:
+ actor.addAbility("of_leg_strike_1")
+ if actor.getLevel() >= 12:
+ actor.addAbility("of_leg_strike_2")
+ if actor.getLevel() >= 20:
+ actor.addAbility("of_leg_strike_3")
+ if actor.getLevel() >= 30:
+ actor.addAbility("of_leg_strike_4")
+ if actor.getLevel() >= 38:
+ actor.addAbility("of_leg_strike_5")
+ if actor.getLevel() >= 52:
+ actor.addAbility("of_leg_strike_6")
+ if actor.getLevel() >= 62:
+ actor.addAbility("of_leg_strike_7")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_leg_strike_1')
-
+ actor.removeAbility("of_leg_strike_1")
+ actor.removeAbility("of_leg_strike_2")
+ actor.removeAbility("of_leg_strike_3")
+ actor.removeAbility("of_leg_strike_4")
+ actor.removeAbility("of_leg_strike_5")
+ actor.removeAbility("of_leg_strike_6")
+ actor.removeAbility("of_leg_strike_7")
return
diff --git a/scripts/expertise/expertise_of_medical_sup_1.py b/scripts/expertise/expertise_of_medical_sup_1.py
index 06c7287d..3b3e1915 100644
--- a/scripts/expertise/expertise_of_medical_sup_1.py
+++ b/scripts/expertise/expertise_of_medical_sup_1.py
@@ -1,48 +1,25 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_medical_sup_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_medical_sup_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_medical_sup_1')
-
+ if actor.getLevel() >= 18:
+ actor.addAbility("of_medical_sup_1")
+ if actor.getLevel() >= 30:
+ actor.addAbility("of_medical_sup_2")
+ if actor.getLevel() >= 44:
+ actor.addAbility("of_medical_sup_3")
+ if actor.getLevel() >= 58:
+ actor.addAbility("of_medical_sup_4")
+ if actor.getLevel() >= 72:
+ actor.addAbility("of_medical_sup_5")
+ if actor.getLevel() >= 86:
+ actor.addAbility("of_medical_sup_6")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_medical_sup_1')
-
+ actor.removeAbility("of_medical_sup_1")
+ actor.removeAbility("of_medical_sup_2")
+ actor.removeAbility("of_medical_sup_3")
+ actor.removeAbility("of_medical_sup_4")
+ actor.removeAbility("of_medical_sup_5")
+ actor.removeAbility("of_medical_sup_6")
return
diff --git a/scripts/expertise/expertise_of_paint_dam_1.py b/scripts/expertise/expertise_of_paint_dam_1.py
index ba5725e3..9ba31a9b 100644
--- a/scripts/expertise/expertise_of_paint_dam_1.py
+++ b/scripts/expertise/expertise_of_paint_dam_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_paint_dam_1')
-
- actor.addSkillMod('expertise_damage_line_of_paint', 10)
- actor.addSkillMod('expertise_action_line_of_paint', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_paint_dam_1')
-
- actor.removeSkillMod('expertise_damage_line_of_paint', 10)
- actor.removeSkillMod('expertise_action_line_of_paint', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_paint_dam_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_paint_dam_1")
return
diff --git a/scripts/expertise/expertise_of_paint_dam_2.py b/scripts/expertise/expertise_of_paint_dam_2.py
index 12995cae..7733a8d2 100644
--- a/scripts/expertise/expertise_of_paint_dam_2.py
+++ b/scripts/expertise/expertise_of_paint_dam_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_paint_dam_2')
-
- actor.addSkillMod('expertise_damage_line_of_paint', 10)
- actor.addSkillMod('expertise_action_line_of_paint', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_paint_dam_2')
-
- actor.removeSkillMod('expertise_damage_line_of_paint', 10)
- actor.removeSkillMod('expertise_action_line_of_paint', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_paint_dam_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_paint_dam_2")
return
diff --git a/scripts/expertise/expertise_of_paint_debuff_1.py b/scripts/expertise/expertise_of_paint_debuff_1.py
index 5b2ac0cd..f3529a45 100644
--- a/scripts/expertise/expertise_of_paint_debuff_1.py
+++ b/scripts/expertise/expertise_of_paint_debuff_1.py
@@ -1,48 +1,31 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_paint_debuff_1')
-
- actor.addSkillMod('expertise_of_adv_paint_debuff', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_paint_debuff_1')
-
- actor.removeSkillMod('expertise_of_adv_paint_debuff', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ if actor.getLevel() >= 4:
+ actor.addAbility("of_adv_paint_debuff_1")
+ if actor.getLevel() >= 12:
+ actor.addAbility("of_adv_paint_debuff_2")
+ if actor.getLevel() >= 20:
+ actor.addAbility("of_adv_paint_debuff_3")
+ if actor.getLevel() >= 30:
+ actor.addAbility("of_adv_paint_debuff_4")
+ if actor.getLevel() >= 38:
+ actor.addAbility("of_adv_paint_debuff_5")
+ if actor.getLevel() >= 52:
+ actor.addAbility("of_adv_paint_debuff_6")
+ if actor.getLevel() >= 62:
+ actor.addAbility("of_adv_paint_debuff_7")
+ if actor.getLevel() >= 72:
+ actor.addAbility("of_adv_paint_debuff_8")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("of_adv_paint_debuff_1")
+ actor.removeAbility("of_adv_paint_debuff_2")
+ actor.removeAbility("of_adv_paint_debuff_3")
+ actor.removeAbility("of_adv_paint_debuff_4")
+ actor.removeAbility("of_adv_paint_debuff_5")
+ actor.removeAbility("of_adv_paint_debuff_6")
+ actor.removeAbility("of_adv_paint_debuff_7")
+ actor.removeAbility("of_adv_paint_debuff_8")
return
diff --git a/scripts/expertise/expertise_of_paint_expose_1.py b/scripts/expertise/expertise_of_paint_expose_1.py
index 91c6d84b..561882fd 100644
--- a/scripts/expertise/expertise_of_paint_expose_1.py
+++ b/scripts/expertise/expertise_of_paint_expose_1.py
@@ -1,48 +1,31 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_paint_expose_1')
-
- actor.addSkillMod('expertise_of_adv_paint_expose', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_paint_expose_1')
-
- actor.removeSkillMod('expertise_of_adv_paint_expose', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ if actor.getLevel() >= 4:
+ actor.addAbility("of_adv_paint_expose_1")
+ if actor.getLevel() >= 12:
+ actor.addAbility("of_adv_paint_expose_2")
+ if actor.getLevel() >= 20:
+ actor.addAbility("of_adv_paint_expose_3")
+ if actor.getLevel() >= 30:
+ actor.addAbility("of_adv_paint_expose_4")
+ if actor.getLevel() >= 38:
+ actor.addAbility("of_adv_paint_expose_5")
+ if actor.getLevel() >= 52:
+ actor.addAbility("of_adv_paint_expose_6")
+ if actor.getLevel() >= 62:
+ actor.addAbility("of_adv_paint_expose_7")
+ if actor.getLevel() >= 72:
+ actor.addAbility("of_adv_paint_expose_8")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("of_adv_paint_expose_1")
+ actor.removeAbility("of_adv_paint_expose_2")
+ actor.removeAbility("of_adv_paint_expose_3")
+ actor.removeAbility("of_adv_paint_expose_4")
+ actor.removeAbility("of_adv_paint_expose_5")
+ actor.removeAbility("of_adv_paint_expose_6")
+ actor.removeAbility("of_adv_paint_expose_7")
+ actor.removeAbility("of_adv_paint_expose_8")
return
diff --git a/scripts/expertise/expertise_of_pistol_bleed.py b/scripts/expertise/expertise_of_pistol_bleed.py
index 2c9835a0..38f923f5 100644
--- a/scripts/expertise/expertise_of_pistol_bleed.py
+++ b/scripts/expertise/expertise_of_pistol_bleed.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_pistol_bleed')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_pistol_bleed')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_pistol_bleed')
-
+ actor.addAbility("of_pistol_bleed")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_pistol_bleed')
-
+ actor.removeAbility("of_pistol_bleed")
return
diff --git a/scripts/expertise/expertise_of_pistol_crit_1.py b/scripts/expertise/expertise_of_pistol_crit_1.py
index bc787fd9..7e944647 100644
--- a/scripts/expertise/expertise_of_pistol_crit_1.py
+++ b/scripts/expertise/expertise_of_pistol_crit_1.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_pistol_crit_1')
-
- actor.addSkillMod('expertise_undiminished_critical_pistol', 5)
- actor.addSkillMod('expertise_undiminished_critical_carbine', 5)
- actor.addSkillMod('expertise_range_bonus_pistol', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_pistol_crit_1')
-
- actor.removeSkillMod('expertise_undiminished_critical_pistol', 5)
- actor.removeSkillMod('expertise_undiminished_critical_carbine', 5)
- actor.removeSkillMod('expertise_range_bonus_pistol', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_pistol_crit_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_pistol_crit_1")
return
diff --git a/scripts/expertise/expertise_of_pistol_crit_2.py b/scripts/expertise/expertise_of_pistol_crit_2.py
index 8d0101ba..d36a18b3 100644
--- a/scripts/expertise/expertise_of_pistol_crit_2.py
+++ b/scripts/expertise/expertise_of_pistol_crit_2.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_pistol_crit_2')
-
- actor.addSkillMod('expertise_undiminished_critical_pistol', 5)
- actor.addSkillMod('expertise_undiminished_critical_carbine', 5)
- actor.addSkillMod('expertise_range_bonus_pistol', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_pistol_crit_2')
-
- actor.removeSkillMod('expertise_undiminished_critical_pistol', 5)
- actor.removeSkillMod('expertise_undiminished_critical_carbine', 5)
- actor.removeSkillMod('expertise_range_bonus_pistol', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_pistol_crit_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_pistol_crit_2")
return
diff --git a/scripts/expertise/expertise_of_pistol_dam_1.py b/scripts/expertise/expertise_of_pistol_dam_1.py
index dc46dd87..877ac063 100644
--- a/scripts/expertise/expertise_of_pistol_dam_1.py
+++ b/scripts/expertise/expertise_of_pistol_dam_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_pistol_dam_1')
-
- actor.addSkillMod('expertise_damage_weapon_1', 2)
- actor.addSkillMod('expertise_damage_weapon_2', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_pistol_dam_1')
-
- actor.removeSkillMod('expertise_damage_weapon_1', 2)
- actor.removeSkillMod('expertise_damage_weapon_2', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_pistol_dam_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_pistol_dam_1")
return
diff --git a/scripts/expertise/expertise_of_pistol_dam_2.py b/scripts/expertise/expertise_of_pistol_dam_2.py
index efd000de..e01f6b55 100644
--- a/scripts/expertise/expertise_of_pistol_dam_2.py
+++ b/scripts/expertise/expertise_of_pistol_dam_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_pistol_dam_2')
-
- actor.addSkillMod('expertise_damage_weapon_1', 2)
- actor.addSkillMod('expertise_damage_weapon_2', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_pistol_dam_2')
-
- actor.removeSkillMod('expertise_damage_weapon_1', 2)
- actor.removeSkillMod('expertise_damage_weapon_2', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_pistol_dam_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_pistol_dam_2")
return
diff --git a/scripts/expertise/expertise_of_pistol_dam_3.py b/scripts/expertise/expertise_of_pistol_dam_3.py
index d433e2e7..8762ecfa 100644
--- a/scripts/expertise/expertise_of_pistol_dam_3.py
+++ b/scripts/expertise/expertise_of_pistol_dam_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_pistol_dam_3')
-
- actor.addSkillMod('expertise_damage_weapon_1', 2)
- actor.addSkillMod('expertise_damage_weapon_2', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_pistol_dam_3')
-
- actor.removeSkillMod('expertise_damage_weapon_1', 2)
- actor.removeSkillMod('expertise_damage_weapon_2', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_pistol_dam_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_pistol_dam_3")
return
diff --git a/scripts/expertise/expertise_of_pistol_dam_4.py b/scripts/expertise/expertise_of_pistol_dam_4.py
index a9dc63c6..478313ef 100644
--- a/scripts/expertise/expertise_of_pistol_dam_4.py
+++ b/scripts/expertise/expertise_of_pistol_dam_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_pistol_dam_4')
-
- actor.addSkillMod('expertise_damage_weapon_1', 2)
- actor.addSkillMod('expertise_damage_weapon_2', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_pistol_dam_4')
-
- actor.removeSkillMod('expertise_damage_weapon_1', 2)
- actor.removeSkillMod('expertise_damage_weapon_2', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_pistol_dam_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_pistol_dam_4")
return
diff --git a/scripts/expertise/expertise_of_precision_1.py b/scripts/expertise/expertise_of_precision_1.py
index 8933a340..fb5f45a2 100644
--- a/scripts/expertise/expertise_of_precision_1.py
+++ b/scripts/expertise/expertise_of_precision_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_precision_1')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_precision_1')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_precision_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_precision_1")
return
diff --git a/scripts/expertise/expertise_of_precision_2.py b/scripts/expertise/expertise_of_precision_2.py
index 0d2f5a03..95ba3853 100644
--- a/scripts/expertise/expertise_of_precision_2.py
+++ b/scripts/expertise/expertise_of_precision_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_precision_2')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_precision_2')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_precision_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_precision_2")
return
diff --git a/scripts/expertise/expertise_of_precision_3.py b/scripts/expertise/expertise_of_precision_3.py
index 78b48b4e..cfb27438 100644
--- a/scripts/expertise/expertise_of_precision_3.py
+++ b/scripts/expertise/expertise_of_precision_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_precision_3')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_precision_3')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_precision_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_precision_3")
return
diff --git a/scripts/expertise/expertise_of_precision_4.py b/scripts/expertise/expertise_of_precision_4.py
index 04824268..9ca52db1 100644
--- a/scripts/expertise/expertise_of_precision_4.py
+++ b/scripts/expertise/expertise_of_precision_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_precision_4')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_precision_4')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_precision_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_precision_4")
return
diff --git a/scripts/expertise/expertise_of_purge_1.py b/scripts/expertise/expertise_of_purge_1.py
index c6c4bdfa..3598d236 100644
--- a/scripts/expertise/expertise_of_purge_1.py
+++ b/scripts/expertise/expertise_of_purge_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_purge_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_purge_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_purge_1')
-
+ actor.addAbility("of_purge_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_purge_1')
-
+ actor.removeAbility("of_purge_1")
return
diff --git a/scripts/expertise/expertise_of_reinforcements_1.py b/scripts/expertise/expertise_of_reinforcements_1.py
index 7c68a80f..06aa5cad 100644
--- a/scripts/expertise/expertise_of_reinforcements_1.py
+++ b/scripts/expertise/expertise_of_reinforcements_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_reinforcements_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_reinforcements_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_reinforcements_1')
-
+ if actor.getLevel() >= 10:
+ actor.addAbility("of_reinforcements_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("of_reinforcements_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("of_reinforcements_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("of_reinforcements_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("of_reinforcements_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_reinforcements_1')
-
+ actor.removeAbility("of_reinforcements_1")
+ actor.removeAbility("of_reinforcements_2")
+ actor.removeAbility("of_reinforcements_3")
+ actor.removeAbility("of_reinforcements_4")
+ actor.removeAbility("of_reinforcements_5")
return
diff --git a/scripts/expertise/expertise_of_scatter_1.py b/scripts/expertise/expertise_of_scatter_1.py
index e9ce9565..85ab0ef8 100644
--- a/scripts/expertise/expertise_of_scatter_1.py
+++ b/scripts/expertise/expertise_of_scatter_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_scatter_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_scatter_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_scatter_1')
-
+ actor.addAbility("of_scatter_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_scatter_1')
-
+ actor.removeAbility("of_scatter_1")
return
diff --git a/scripts/expertise/expertise_of_stamina_1.py b/scripts/expertise/expertise_of_stamina_1.py
index deaa1e13..73155458 100644
--- a/scripts/expertise/expertise_of_stamina_1.py
+++ b/scripts/expertise/expertise_of_stamina_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_stamina_1')
-
- actor.addSkillMod('stamina_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_stamina_1')
-
- actor.removeSkillMod('stamina_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_stamina_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_stamina_1")
return
diff --git a/scripts/expertise/expertise_of_stamina_2.py b/scripts/expertise/expertise_of_stamina_2.py
index 3dcfda6b..1cc498d9 100644
--- a/scripts/expertise/expertise_of_stamina_2.py
+++ b/scripts/expertise/expertise_of_stamina_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_stamina_2')
-
- actor.addSkillMod('stamina_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_stamina_2')
-
- actor.removeSkillMod('stamina_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_stamina_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_stamina_2")
return
diff --git a/scripts/expertise/expertise_of_stamina_3.py b/scripts/expertise/expertise_of_stamina_3.py
index fa6810b5..63826671 100644
--- a/scripts/expertise/expertise_of_stamina_3.py
+++ b/scripts/expertise/expertise_of_stamina_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_stamina_3')
-
- actor.addSkillMod('stamina_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_stamina_3')
-
- actor.removeSkillMod('stamina_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_stamina_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_stamina_3")
return
diff --git a/scripts/expertise/expertise_of_stamina_4.py b/scripts/expertise/expertise_of_stamina_4.py
index 94dbeab3..22e5cea3 100644
--- a/scripts/expertise/expertise_of_stamina_4.py
+++ b/scripts/expertise/expertise_of_stamina_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_stamina_4')
-
- actor.addSkillMod('stamina_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_stamina_4')
-
- actor.removeSkillMod('stamina_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_stamina_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_stamina_4")
return
diff --git a/scripts/expertise/expertise_of_stimulator_1.py b/scripts/expertise/expertise_of_stimulator_1.py
index 6e66f3b4..10ab1e90 100644
--- a/scripts/expertise/expertise_of_stimulator_1.py
+++ b/scripts/expertise/expertise_of_stimulator_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_stimulator_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_stimulator_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_stimulator_1')
-
+ actor.addAbility("of_stimulator_1")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_stimulator_1')
-
+ actor.removeAbility("of_stimulator_1")
return
diff --git a/scripts/expertise/expertise_of_strength_1.py b/scripts/expertise/expertise_of_strength_1.py
index b2fa95d0..3decd9c7 100644
--- a/scripts/expertise/expertise_of_strength_1.py
+++ b/scripts/expertise/expertise_of_strength_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_strength_1')
-
- actor.addSkillMod('strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_strength_1')
-
- actor.removeSkillMod('strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_strength_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_strength_1")
return
diff --git a/scripts/expertise/expertise_of_strength_2.py b/scripts/expertise/expertise_of_strength_2.py
index 8a05bcc3..676d8d92 100644
--- a/scripts/expertise/expertise_of_strength_2.py
+++ b/scripts/expertise/expertise_of_strength_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_strength_2')
-
- actor.addSkillMod('strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_strength_2')
-
- actor.removeSkillMod('strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_strength_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_strength_2")
return
diff --git a/scripts/expertise/expertise_of_strength_3.py b/scripts/expertise/expertise_of_strength_3.py
index 6dbddcf1..d6780308 100644
--- a/scripts/expertise/expertise_of_strength_3.py
+++ b/scripts/expertise/expertise_of_strength_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_strength_3')
-
- actor.addSkillMod('strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_strength_3')
-
- actor.removeSkillMod('strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_strength_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_strength_3")
return
diff --git a/scripts/expertise/expertise_of_strength_4.py b/scripts/expertise/expertise_of_strength_4.py
index 067d377a..4a59b20d 100644
--- a/scripts/expertise/expertise_of_strength_4.py
+++ b/scripts/expertise/expertise_of_strength_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_strength_4')
-
- actor.addSkillMod('strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_strength_4')
-
- actor.removeSkillMod('strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_strength_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_strength_4")
return
diff --git a/scripts/expertise/expertise_of_sup_cool_1.py b/scripts/expertise/expertise_of_sup_cool_1.py
index aaa7224b..2e982ac3 100644
--- a/scripts/expertise/expertise_of_sup_cool_1.py
+++ b/scripts/expertise/expertise_of_sup_cool_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_sup_cool_1')
-
- actor.addSkillMod('expertise_cooldown_line_of_sup', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_sup_cool_1')
-
- actor.removeSkillMod('expertise_cooldown_line_of_sup', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_sup_cool_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_sup_cool_1")
return
diff --git a/scripts/expertise/expertise_of_sup_cool_2.py b/scripts/expertise/expertise_of_sup_cool_2.py
index 8beb380c..1d469433 100644
--- a/scripts/expertise/expertise_of_sup_cool_2.py
+++ b/scripts/expertise/expertise_of_sup_cool_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_sup_cool_2')
-
- actor.addSkillMod('expertise_cooldown_line_of_sup', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_sup_cool_2')
-
- actor.removeSkillMod('expertise_cooldown_line_of_sup', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_sup_cool_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_sup_cool_2")
return
diff --git a/scripts/expertise/expertise_of_sup_cool_3.py b/scripts/expertise/expertise_of_sup_cool_3.py
index 9e6e8c8d..32064d76 100644
--- a/scripts/expertise/expertise_of_sup_cool_3.py
+++ b/scripts/expertise/expertise_of_sup_cool_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_sup_cool_3')
-
- actor.addSkillMod('expertise_cooldown_line_of_sup', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_sup_cool_3')
-
- actor.removeSkillMod('expertise_cooldown_line_of_sup', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_sup_cool_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_sup_cool_3")
return
diff --git a/scripts/expertise/expertise_of_sup_cool_4.py b/scripts/expertise/expertise_of_sup_cool_4.py
index 083f92ab..3a2418dc 100644
--- a/scripts/expertise/expertise_of_sup_cool_4.py
+++ b/scripts/expertise/expertise_of_sup_cool_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_sup_cool_4')
-
- actor.addSkillMod('expertise_cooldown_line_of_sup', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_sup_cool_4')
-
- actor.removeSkillMod('expertise_cooldown_line_of_sup', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_sup_cool_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_sup_cool_4")
return
diff --git a/scripts/expertise/expertise_of_sure_act_1.py b/scripts/expertise/expertise_of_sure_act_1.py
index 14e31356..5d4f27cd 100644
--- a/scripts/expertise/expertise_of_sure_act_1.py
+++ b/scripts/expertise/expertise_of_sure_act_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_sure_act_1')
-
- actor.addSkillMod('expertise_action_line_of_sure', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_sure_act_1')
-
- actor.removeSkillMod('expertise_action_line_of_sure', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_sure_act_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_sure_act_1")
return
diff --git a/scripts/expertise/expertise_of_sure_act_2.py b/scripts/expertise/expertise_of_sure_act_2.py
index 441a8ce7..208d6135 100644
--- a/scripts/expertise/expertise_of_sure_act_2.py
+++ b/scripts/expertise/expertise_of_sure_act_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_sure_act_2')
-
- actor.addSkillMod('expertise_action_line_of_sure', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_sure_act_2')
-
- actor.removeSkillMod('expertise_action_line_of_sure', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_sure_act_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_sure_act_2")
return
diff --git a/scripts/expertise/expertise_of_sure_act_3.py b/scripts/expertise/expertise_of_sure_act_3.py
index 908d9e13..d66005c7 100644
--- a/scripts/expertise/expertise_of_sure_act_3.py
+++ b/scripts/expertise/expertise_of_sure_act_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_sure_act_3')
-
- actor.addSkillMod('expertise_action_line_of_sure', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_sure_act_3')
-
- actor.removeSkillMod('expertise_action_line_of_sure', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_sure_act_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_sure_act_3")
return
diff --git a/scripts/expertise/expertise_of_sure_act_4.py b/scripts/expertise/expertise_of_sure_act_4.py
index b876afe3..75485c39 100644
--- a/scripts/expertise/expertise_of_sure_act_4.py
+++ b/scripts/expertise/expertise_of_sure_act_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_sure_act_4')
-
- actor.addSkillMod('expertise_action_line_of_sure', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_sure_act_4')
-
- actor.removeSkillMod('expertise_action_line_of_sure', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_sure_act_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_sure_act_4")
return
diff --git a/scripts/expertise/expertise_of_sure_dam_1.py b/scripts/expertise/expertise_of_sure_dam_1.py
index 4a18bcb2..8acfba2d 100644
--- a/scripts/expertise/expertise_of_sure_dam_1.py
+++ b/scripts/expertise/expertise_of_sure_dam_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_sure_dam_1')
-
- actor.addSkillMod('expertise_damage_line_of_sure', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_sure_dam_1')
-
- actor.removeSkillMod('expertise_damage_line_of_sure', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_sure_dam_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_sure_dam_1")
return
diff --git a/scripts/expertise/expertise_of_sure_dam_2.py b/scripts/expertise/expertise_of_sure_dam_2.py
index 9d199519..740150f1 100644
--- a/scripts/expertise/expertise_of_sure_dam_2.py
+++ b/scripts/expertise/expertise_of_sure_dam_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_sure_dam_2')
-
- actor.addSkillMod('expertise_damage_line_of_sure', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_sure_dam_2')
-
- actor.removeSkillMod('expertise_damage_line_of_sure', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_sure_dam_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_sure_dam_2")
return
diff --git a/scripts/expertise/expertise_of_sure_dam_3.py b/scripts/expertise/expertise_of_sure_dam_3.py
index f39ac985..05c3d330 100644
--- a/scripts/expertise/expertise_of_sure_dam_3.py
+++ b/scripts/expertise/expertise_of_sure_dam_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_sure_dam_3')
-
- actor.addSkillMod('expertise_damage_line_of_sure', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_sure_dam_3')
-
- actor.removeSkillMod('expertise_damage_line_of_sure', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_of_sure_dam_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_of_sure_dam_3")
return
diff --git a/scripts/expertise/expertise_of_tactical_sup_1.py b/scripts/expertise/expertise_of_tactical_sup_1.py
index ce701bb6..a3434b0e 100644
--- a/scripts/expertise/expertise_of_tactical_sup_1.py
+++ b/scripts/expertise/expertise_of_tactical_sup_1.py
@@ -1,46 +1,25 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_tactical_sup_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_tactical_sup_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ if actor.getLevel() >= 10:
+ actor.addAbility("of_tactical_sup_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("of_tactical_sup_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("of_tactical_sup_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("of_tactical_sup_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("of_tactical_sup_5")
+ if actor.getLevel() >= 90:
+ actor.addAbility("of_tactical_sup_6")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("of_tactical_sup_1")
+ actor.removeAbility("of_tactical_sup_2")
+ actor.removeAbility("of_tactical_sup_3")
+ actor.removeAbility("of_tactical_sup_4")
+ actor.removeAbility("of_tactical_sup_5")
+ actor.removeAbility("of_tactical_sup_6")
return
diff --git a/scripts/expertise/expertise_of_vortex_1.py b/scripts/expertise/expertise_of_vortex_1.py
index e2a24f55..a4f6f04c 100644
--- a/scripts/expertise/expertise_of_vortex_1.py
+++ b/scripts/expertise/expertise_of_vortex_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.addSkill('expertise_of_vortex_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'officer_1a':
- return
-
- actor.removeSkill('expertise_of_vortex_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('of_vortex_1')
-
+ if actor.getLevel() >= 26:
+ actor.addAbility("of_vortex_1")
+ if actor.getLevel() >= 34:
+ actor.addAbility("of_vortex_2")
+ if actor.getLevel() >= 48:
+ actor.addAbility("of_vortex_3")
+ if actor.getLevel() >= 62:
+ actor.addAbility("of_vortex_4")
+ if actor.getLevel() >= 76:
+ actor.addAbility("of_vortex_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('of_vortex_1')
-
+ actor.removeAbility("of_vortex_1")
+ actor.removeAbility("of_vortex_2")
+ actor.removeAbility("of_vortex_3")
+ actor.removeAbility("of_vortex_4")
+ actor.removeAbility("of_vortex_5")
return
diff --git a/scripts/expertise/expertise_sm_general_bad_odds_1.py b/scripts/expertise/expertise_sm_general_bad_odds_1.py
index e2c44993..5435e2e9 100644
--- a/scripts/expertise/expertise_sm_general_bad_odds_1.py
+++ b/scripts/expertise/expertise_sm_general_bad_odds_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_bad_odds_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_bad_odds_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sm_bad_odds_1')
-
+ if actor.getLevel() >= 34:
+ actor.addAbility("sm_bad_odds_1")
+ if actor.getLevel() >= 46:
+ actor.addAbility("sm_bad_odds_2")
+ if actor.getLevel() >= 58:
+ actor.addAbility("sm_bad_odds_3")
+ if actor.getLevel() >= 74:
+ actor.addAbility("sm_bad_odds_4")
+ if actor.getLevel() >= 84:
+ actor.addAbility("sm_bad_odds_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sm_bad_odds_1')
-
+ actor.removeAbility("sm_bad_odds_1")
+ actor.removeAbility("sm_bad_odds_2")
+ actor.removeAbility("sm_bad_odds_3")
+ actor.removeAbility("sm_bad_odds_4")
+ actor.removeAbility("sm_bad_odds_5")
return
diff --git a/scripts/expertise/expertise_sm_general_break_the_deal_1.py b/scripts/expertise/expertise_sm_general_break_the_deal_1.py
index f12dfb8f..757e75f9 100644
--- a/scripts/expertise/expertise_sm_general_break_the_deal_1.py
+++ b/scripts/expertise/expertise_sm_general_break_the_deal_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_break_the_deal_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_break_the_deal_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sm_break_the_deal')
-
+ actor.addAbility("sm_break_the_deal")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sm_break_the_deal')
-
+ actor.removeAbility("sm_break_the_deal")
return
diff --git a/scripts/expertise/expertise_sm_general_double_deal_1.py b/scripts/expertise/expertise_sm_general_double_deal_1.py
index 237b1cbd..8dbe17db 100644
--- a/scripts/expertise/expertise_sm_general_double_deal_1.py
+++ b/scripts/expertise/expertise_sm_general_double_deal_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_double_deal_1')
-
- actor.addSkillMod('expertise_double_deal_chance', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_double_deal_1')
-
- actor.removeSkillMod('expertise_double_deal_chance', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_double_deal_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_double_deal_1")
return
diff --git a/scripts/expertise/expertise_sm_general_double_deal_2.py b/scripts/expertise/expertise_sm_general_double_deal_2.py
index f5b3e464..5215636e 100644
--- a/scripts/expertise/expertise_sm_general_double_deal_2.py
+++ b/scripts/expertise/expertise_sm_general_double_deal_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_double_deal_2')
-
- actor.addSkillMod('expertise_double_deal_chance', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_double_deal_2')
-
- actor.removeSkillMod('expertise_double_deal_chance', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_double_deal_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_double_deal_2")
return
diff --git a/scripts/expertise/expertise_sm_general_elbow_grease_1.py b/scripts/expertise/expertise_sm_general_elbow_grease_1.py
index 92f55ca2..b0ff55ad 100644
--- a/scripts/expertise/expertise_sm_general_elbow_grease_1.py
+++ b/scripts/expertise/expertise_sm_general_elbow_grease_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_elbow_grease_1')
-
- actor.addSkillMod('expertise_action_weapon_melee', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_elbow_grease_1')
-
- actor.removeSkillMod('expertise_action_weapon_melee', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_elbow_grease_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_elbow_grease_1")
return
diff --git a/scripts/expertise/expertise_sm_general_end_of_the_line_1.py b/scripts/expertise/expertise_sm_general_end_of_the_line_1.py
index 3afc6b0b..05ec2f19 100644
--- a/scripts/expertise/expertise_sm_general_end_of_the_line_1.py
+++ b/scripts/expertise/expertise_sm_general_end_of_the_line_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_end_of_the_line_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_end_of_the_line_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sm_end_of_the_line')
-
+ actor.addAbility("sm_end_of_the_line")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sm_end_of_the_line')
-
+ actor.removeAbility("sm_end_of_the_line")
return
diff --git a/scripts/expertise/expertise_sm_general_enhanced_luck_1.py b/scripts/expertise/expertise_sm_general_enhanced_luck_1.py
index 3446d7af..347e28e3 100644
--- a/scripts/expertise/expertise_sm_general_enhanced_luck_1.py
+++ b/scripts/expertise/expertise_sm_general_enhanced_luck_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_enhanced_luck_1')
-
- actor.addSkillMod('strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_enhanced_luck_1')
-
- actor.removeSkillMod('strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_enhanced_luck_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_enhanced_luck_1")
return
diff --git a/scripts/expertise/expertise_sm_general_enhanced_luck_2.py b/scripts/expertise/expertise_sm_general_enhanced_luck_2.py
index f0402408..2f9d1747 100644
--- a/scripts/expertise/expertise_sm_general_enhanced_luck_2.py
+++ b/scripts/expertise/expertise_sm_general_enhanced_luck_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_enhanced_luck_2')
-
- actor.addSkillMod('strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_enhanced_luck_2')
-
- actor.removeSkillMod('strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_enhanced_luck_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_enhanced_luck_2")
return
diff --git a/scripts/expertise/expertise_sm_general_enhanced_luck_3.py b/scripts/expertise/expertise_sm_general_enhanced_luck_3.py
index dc8fb800..ad637ef1 100644
--- a/scripts/expertise/expertise_sm_general_enhanced_luck_3.py
+++ b/scripts/expertise/expertise_sm_general_enhanced_luck_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_enhanced_luck_3')
-
- actor.addSkillMod('strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_enhanced_luck_3')
-
- actor.removeSkillMod('strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_enhanced_luck_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_enhanced_luck_3")
return
diff --git a/scripts/expertise/expertise_sm_general_enhanced_luck_4.py b/scripts/expertise/expertise_sm_general_enhanced_luck_4.py
index 6c844743..acbe531d 100644
--- a/scripts/expertise/expertise_sm_general_enhanced_luck_4.py
+++ b/scripts/expertise/expertise_sm_general_enhanced_luck_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_enhanced_luck_4')
-
- actor.addSkillMod('strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_enhanced_luck_4')
-
- actor.removeSkillMod('strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_enhanced_luck_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_enhanced_luck_4")
return
diff --git a/scripts/expertise/expertise_sm_general_enhanced_precision_1.py b/scripts/expertise/expertise_sm_general_enhanced_precision_1.py
index 9a865689..959579d6 100644
--- a/scripts/expertise/expertise_sm_general_enhanced_precision_1.py
+++ b/scripts/expertise/expertise_sm_general_enhanced_precision_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_enhanced_precision_1')
-
- actor.addSkillMod('agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_enhanced_precision_1')
-
- actor.removeSkillMod('agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_enhanced_precision_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_enhanced_precision_1")
return
diff --git a/scripts/expertise/expertise_sm_general_enhanced_precision_2.py b/scripts/expertise/expertise_sm_general_enhanced_precision_2.py
index dda076b0..a50e08ba 100644
--- a/scripts/expertise/expertise_sm_general_enhanced_precision_2.py
+++ b/scripts/expertise/expertise_sm_general_enhanced_precision_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_enhanced_precision_2')
-
- actor.addSkillMod('agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_enhanced_precision_2')
-
- actor.removeSkillMod('agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_enhanced_precision_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_enhanced_precision_2")
return
diff --git a/scripts/expertise/expertise_sm_general_enhanced_precision_3.py b/scripts/expertise/expertise_sm_general_enhanced_precision_3.py
index 3d93777f..58c40a83 100644
--- a/scripts/expertise/expertise_sm_general_enhanced_precision_3.py
+++ b/scripts/expertise/expertise_sm_general_enhanced_precision_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_enhanced_precision_3')
-
- actor.addSkillMod('agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_enhanced_precision_3')
-
- actor.removeSkillMod('agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_enhanced_precision_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_enhanced_precision_3")
return
diff --git a/scripts/expertise/expertise_sm_general_enhanced_precision_4.py b/scripts/expertise/expertise_sm_general_enhanced_precision_4.py
index 3aa85853..938574a4 100644
--- a/scripts/expertise/expertise_sm_general_enhanced_precision_4.py
+++ b/scripts/expertise/expertise_sm_general_enhanced_precision_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_enhanced_precision_4')
-
- actor.addSkillMod('agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_enhanced_precision_4')
-
- actor.removeSkillMod('agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_enhanced_precision_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_enhanced_precision_4")
return
diff --git a/scripts/expertise/expertise_sm_general_gun_oil_1.py b/scripts/expertise/expertise_sm_general_gun_oil_1.py
index f71e62d5..618b2f14 100644
--- a/scripts/expertise/expertise_sm_general_gun_oil_1.py
+++ b/scripts/expertise/expertise_sm_general_gun_oil_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_gun_oil_1')
-
- actor.addSkillMod('expertise_action_weapon_2', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_gun_oil_1')
-
- actor.removeSkillMod('expertise_action_weapon_2', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_gun_oil_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_gun_oil_1")
return
diff --git a/scripts/expertise/expertise_sm_general_hair_trigger_1.py b/scripts/expertise/expertise_sm_general_hair_trigger_1.py
index 0bc61fb4..981958f2 100644
--- a/scripts/expertise/expertise_sm_general_hair_trigger_1.py
+++ b/scripts/expertise/expertise_sm_general_hair_trigger_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_hair_trigger_1')
-
- actor.addSkillMod('expertise_action_line_sm_dm', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_hair_trigger_1')
-
- actor.removeSkillMod('expertise_action_line_sm_dm', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_hair_trigger_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_hair_trigger_1")
return
diff --git a/scripts/expertise/expertise_sm_general_hair_trigger_2.py b/scripts/expertise/expertise_sm_general_hair_trigger_2.py
index 9dc7f200..0e8537b5 100644
--- a/scripts/expertise/expertise_sm_general_hair_trigger_2.py
+++ b/scripts/expertise/expertise_sm_general_hair_trigger_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_hair_trigger_2')
-
- actor.addSkillMod('expertise_action_line_sm_dm', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_hair_trigger_2')
-
- actor.removeSkillMod('expertise_action_line_sm_dm', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_hair_trigger_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_hair_trigger_2")
return
diff --git a/scripts/expertise/expertise_sm_general_hair_trigger_3.py b/scripts/expertise/expertise_sm_general_hair_trigger_3.py
index 0d81af85..9e3f61fc 100644
--- a/scripts/expertise/expertise_sm_general_hair_trigger_3.py
+++ b/scripts/expertise/expertise_sm_general_hair_trigger_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_hair_trigger_3')
-
- actor.addSkillMod('expertise_action_line_sm_dm', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_hair_trigger_3')
-
- actor.removeSkillMod('expertise_action_line_sm_dm', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_hair_trigger_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_hair_trigger_3")
return
diff --git a/scripts/expertise/expertise_sm_general_hair_trigger_4.py b/scripts/expertise/expertise_sm_general_hair_trigger_4.py
index 5309084c..78108d29 100644
--- a/scripts/expertise/expertise_sm_general_hair_trigger_4.py
+++ b/scripts/expertise/expertise_sm_general_hair_trigger_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_hair_trigger_4')
-
- actor.addSkillMod('expertise_action_line_sm_dm', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_hair_trigger_4')
-
- actor.removeSkillMod('expertise_action_line_sm_dm', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_hair_trigger_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_hair_trigger_4")
return
diff --git a/scripts/expertise/expertise_sm_general_hammer_fanning_1.py b/scripts/expertise/expertise_sm_general_hammer_fanning_1.py
index 8108302d..d0a970f5 100644
--- a/scripts/expertise/expertise_sm_general_hammer_fanning_1.py
+++ b/scripts/expertise/expertise_sm_general_hammer_fanning_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_hammer_fanning_1')
-
- actor.addSkillMod('expertise_sm_ranged_shot_proc', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_hammer_fanning_1')
-
- actor.removeSkillMod('expertise_sm_ranged_shot_proc', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_hammer_fanning_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_hammer_fanning_1")
return
diff --git a/scripts/expertise/expertise_sm_general_hammer_fanning_2.py b/scripts/expertise/expertise_sm_general_hammer_fanning_2.py
index d15065e5..9d157ddb 100644
--- a/scripts/expertise/expertise_sm_general_hammer_fanning_2.py
+++ b/scripts/expertise/expertise_sm_general_hammer_fanning_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_hammer_fanning_2')
-
- actor.addSkillMod('expertise_sm_ranged_shot_proc', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_hammer_fanning_2')
-
- actor.removeSkillMod('expertise_sm_ranged_shot_proc', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_hammer_fanning_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_hammer_fanning_2")
return
diff --git a/scripts/expertise/expertise_sm_general_hammer_fanning_3.py b/scripts/expertise/expertise_sm_general_hammer_fanning_3.py
index f37b9495..24b7a3fb 100644
--- a/scripts/expertise/expertise_sm_general_hammer_fanning_3.py
+++ b/scripts/expertise/expertise_sm_general_hammer_fanning_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_hammer_fanning_3')
-
- actor.addSkillMod('expertise_sm_ranged_shot_proc', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_hammer_fanning_3')
-
- actor.removeSkillMod('expertise_sm_ranged_shot_proc', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_hammer_fanning_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_hammer_fanning_3")
return
diff --git a/scripts/expertise/expertise_sm_general_hammer_fanning_4.py b/scripts/expertise/expertise_sm_general_hammer_fanning_4.py
index de5f58b2..5db77165 100644
--- a/scripts/expertise/expertise_sm_general_hammer_fanning_4.py
+++ b/scripts/expertise/expertise_sm_general_hammer_fanning_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_hammer_fanning_4')
-
- actor.addSkillMod('expertise_sm_ranged_shot_proc', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_hammer_fanning_4')
-
- actor.removeSkillMod('expertise_sm_ranged_shot_proc', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_hammer_fanning_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_hammer_fanning_4")
return
diff --git a/scripts/expertise/expertise_sm_general_head_crack_1.py b/scripts/expertise/expertise_sm_general_head_crack_1.py
index 41521dc6..7f20d29f 100644
--- a/scripts/expertise/expertise_sm_general_head_crack_1.py
+++ b/scripts/expertise/expertise_sm_general_head_crack_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_head_crack_1')
-
- actor.addSkillMod('expertise_sm_melee_stun_proc', 6)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_head_crack_1')
-
- actor.removeSkillMod('expertise_sm_melee_stun_proc', 6)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_head_crack_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_head_crack_1")
return
diff --git a/scripts/expertise/expertise_sm_general_head_crack_2.py b/scripts/expertise/expertise_sm_general_head_crack_2.py
index 44d451ed..abe7628c 100644
--- a/scripts/expertise/expertise_sm_general_head_crack_2.py
+++ b/scripts/expertise/expertise_sm_general_head_crack_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_head_crack_2')
-
- actor.addSkillMod('expertise_sm_melee_stun_proc', 6)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_head_crack_2')
-
- actor.removeSkillMod('expertise_sm_melee_stun_proc', 6)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_head_crack_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_head_crack_2")
return
diff --git a/scripts/expertise/expertise_sm_general_hidden_padding_1.py b/scripts/expertise/expertise_sm_general_hidden_padding_1.py
index e0294af3..07cceb20 100644
--- a/scripts/expertise/expertise_sm_general_hidden_padding_1.py
+++ b/scripts/expertise/expertise_sm_general_hidden_padding_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_hidden_padding_1')
-
- actor.addSkillMod('expertise_overridable_protection_generic', 1475)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_hidden_padding_1')
-
- actor.removeSkillMod('expertise_overridable_protection_generic', 1475)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_hidden_padding_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_hidden_padding_1")
return
diff --git a/scripts/expertise/expertise_sm_general_hidden_padding_2.py b/scripts/expertise/expertise_sm_general_hidden_padding_2.py
index e3662b44..3c2cc318 100644
--- a/scripts/expertise/expertise_sm_general_hidden_padding_2.py
+++ b/scripts/expertise/expertise_sm_general_hidden_padding_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_hidden_padding_2')
-
- actor.addSkillMod('expertise_overridable_protection_generic', 1475)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_hidden_padding_2')
-
- actor.removeSkillMod('expertise_overridable_protection_generic', 1475)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_hidden_padding_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_hidden_padding_2")
return
diff --git a/scripts/expertise/expertise_sm_general_idiot_proof_plan_1.py b/scripts/expertise/expertise_sm_general_idiot_proof_plan_1.py
index d9c15db8..05db4ebf 100644
--- a/scripts/expertise/expertise_sm_general_idiot_proof_plan_1.py
+++ b/scripts/expertise/expertise_sm_general_idiot_proof_plan_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_idiot_proof_plan_1')
-
- actor.addSkillMod('damage_decrease_percentage', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_idiot_proof_plan_1')
-
- actor.removeSkillMod('damage_decrease_percentage', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_idiot_proof_plan_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_idiot_proof_plan_1")
return
diff --git a/scripts/expertise/expertise_sm_general_idiot_proof_plan_2.py b/scripts/expertise/expertise_sm_general_idiot_proof_plan_2.py
index 6cd3dace..3baa2e23 100644
--- a/scripts/expertise/expertise_sm_general_idiot_proof_plan_2.py
+++ b/scripts/expertise/expertise_sm_general_idiot_proof_plan_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_idiot_proof_plan_2')
-
- actor.addSkillMod('damage_decrease_percentage', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_idiot_proof_plan_2')
-
- actor.removeSkillMod('damage_decrease_percentage', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_idiot_proof_plan_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_idiot_proof_plan_2")
return
diff --git a/scripts/expertise/expertise_sm_general_lined_pockets_1.py b/scripts/expertise/expertise_sm_general_lined_pockets_1.py
index 5d53be45..e22e98ad 100644
--- a/scripts/expertise/expertise_sm_general_lined_pockets_1.py
+++ b/scripts/expertise/expertise_sm_general_lined_pockets_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_lined_pockets_1')
-
- actor.addSkillMod('expertise_overridable_protection_generic', 1475)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_lined_pockets_1')
-
- actor.removeSkillMod('expertise_overridable_protection_generic', 1475)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_lined_pockets_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_lined_pockets_1")
return
diff --git a/scripts/expertise/expertise_sm_general_lined_pockets_2.py b/scripts/expertise/expertise_sm_general_lined_pockets_2.py
index 03209a76..08bf5f8d 100644
--- a/scripts/expertise/expertise_sm_general_lined_pockets_2.py
+++ b/scripts/expertise/expertise_sm_general_lined_pockets_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_lined_pockets_2')
-
- actor.addSkillMod('expertise_overridable_protection_generic', 1475)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_lined_pockets_2')
-
- actor.removeSkillMod('expertise_overridable_protection_generic', 1475)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_lined_pockets_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_lined_pockets_2")
return
diff --git a/scripts/expertise/expertise_sm_general_meager_fortune_1.py b/scripts/expertise/expertise_sm_general_meager_fortune_1.py
index 557528ad..40018dbd 100644
--- a/scripts/expertise/expertise_sm_general_meager_fortune_1.py
+++ b/scripts/expertise/expertise_sm_general_meager_fortune_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_meager_fortune_1')
-
- actor.addSkillMod('expertise_spot_a_sucker_critical_decrease', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_meager_fortune_1')
-
- actor.removeSkillMod('expertise_spot_a_sucker_critical_decrease', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_meager_fortune_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_meager_fortune_1")
return
diff --git a/scripts/expertise/expertise_sm_general_narrow_escape_1.py b/scripts/expertise/expertise_sm_general_narrow_escape_1.py
index 3993e41e..4f1029a9 100644
--- a/scripts/expertise/expertise_sm_general_narrow_escape_1.py
+++ b/scripts/expertise/expertise_sm_general_narrow_escape_1.py
@@ -1,48 +1,19 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_narrow_escape_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_narrow_escape_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sm_narrow_escape_1')
-
+ if actor.getLevel() >= 34:
+ actor.addAbility("sm_narrow_escape_1")
+ if actor.getLevel() >= 50:
+ actor.addAbility("sm_narrow_escape_2")
+ if actor.getLevel() >= 66:
+ actor.addAbility("sm_narrow_escape_3")
+ if actor.getLevel() >= 82:
+ actor.addAbility("sm_narrow_escape_4")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sm_narrow_escape_1')
-
+ actor.removeAbility("sm_narrow_escape_1")
+ actor.removeAbility("sm_narrow_escape_2")
+ actor.removeAbility("sm_narrow_escape_3")
+ actor.removeAbility("sm_narrow_escape_4")
return
diff --git a/scripts/expertise/expertise_sm_general_nerf_herder_1.py b/scripts/expertise/expertise_sm_general_nerf_herder_1.py
index 127d4f16..bf1ed358 100644
--- a/scripts/expertise/expertise_sm_general_nerf_herder_1.py
+++ b/scripts/expertise/expertise_sm_general_nerf_herder_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_nerf_herder_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_nerf_herder_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sm_nerf_herder')
-
+ actor.addAbility("sm_general_nerf_herder")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sm_nerf_herder')
-
+ actor.removeAbility("sm_general_nerf_herder")
return
diff --git a/scripts/expertise/expertise_sm_general_off_the_cuff_1.py b/scripts/expertise/expertise_sm_general_off_the_cuff_1.py
index fec22b4e..9b7fd56a 100644
--- a/scripts/expertise/expertise_sm_general_off_the_cuff_1.py
+++ b/scripts/expertise/expertise_sm_general_off_the_cuff_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_off_the_cuff_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_off_the_cuff_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sm_off_the_cuff')
-
+ actor.addAbility("sm_off_the_cuff")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sm_off_the_cuff')
-
+ actor.removeAbility("sm_off_the_cuff")
return
diff --git a/scripts/expertise/expertise_sm_general_one_two_pummel_1.py b/scripts/expertise/expertise_sm_general_one_two_pummel_1.py
index b9eb89bd..0fbb25e1 100644
--- a/scripts/expertise/expertise_sm_general_one_two_pummel_1.py
+++ b/scripts/expertise/expertise_sm_general_one_two_pummel_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_one_two_pummel_1')
-
- actor.addSkillMod('expertise_sm_melee_proc', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_one_two_pummel_1')
-
- actor.removeSkillMod('expertise_sm_melee_proc', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_one_two_pummel_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_one_two_pummel_1")
return
diff --git a/scripts/expertise/expertise_sm_general_one_two_pummel_2.py b/scripts/expertise/expertise_sm_general_one_two_pummel_2.py
index dbd447d9..f33d6cca 100644
--- a/scripts/expertise/expertise_sm_general_one_two_pummel_2.py
+++ b/scripts/expertise/expertise_sm_general_one_two_pummel_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_one_two_pummel_2')
-
- actor.addSkillMod('expertise_sm_melee_proc', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_one_two_pummel_2')
-
- actor.removeSkillMod('expertise_sm_melee_proc', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_one_two_pummel_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_one_two_pummel_2")
return
diff --git a/scripts/expertise/expertise_sm_general_one_two_pummel_3.py b/scripts/expertise/expertise_sm_general_one_two_pummel_3.py
index 98060a5d..31f91153 100644
--- a/scripts/expertise/expertise_sm_general_one_two_pummel_3.py
+++ b/scripts/expertise/expertise_sm_general_one_two_pummel_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_one_two_pummel_3')
-
- actor.addSkillMod('expertise_sm_melee_proc', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_one_two_pummel_3')
-
- actor.removeSkillMod('expertise_sm_melee_proc', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_one_two_pummel_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_one_two_pummel_3")
return
diff --git a/scripts/expertise/expertise_sm_general_one_two_pummel_4.py b/scripts/expertise/expertise_sm_general_one_two_pummel_4.py
index 6b7e15b7..7832734e 100644
--- a/scripts/expertise/expertise_sm_general_one_two_pummel_4.py
+++ b/scripts/expertise/expertise_sm_general_one_two_pummel_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_one_two_pummel_4')
-
- actor.addSkillMod('expertise_sm_melee_proc', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_one_two_pummel_4')
-
- actor.removeSkillMod('expertise_sm_melee_proc', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_one_two_pummel_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_one_two_pummel_4")
return
diff --git a/scripts/expertise/expertise_sm_general_poor_prospect_1.py b/scripts/expertise/expertise_sm_general_poor_prospect_1.py
index d1d9d03c..6cbf1c51 100644
--- a/scripts/expertise/expertise_sm_general_poor_prospect_1.py
+++ b/scripts/expertise/expertise_sm_general_poor_prospect_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_poor_prospect_1')
-
- actor.addSkillMod('expertise_spot_a_sucker_damage_decrease_chance', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_poor_prospect_1')
-
- actor.removeSkillMod('expertise_spot_a_sucker_damage_decrease_chance', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_poor_prospect_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_poor_prospect_1")
return
diff --git a/scripts/expertise/expertise_sm_general_poor_prospect_2.py b/scripts/expertise/expertise_sm_general_poor_prospect_2.py
index ba6e97ae..18d810f7 100644
--- a/scripts/expertise/expertise_sm_general_poor_prospect_2.py
+++ b/scripts/expertise/expertise_sm_general_poor_prospect_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_poor_prospect_2')
-
- actor.addSkillMod('expertise_spot_a_sucker_damage_decrease_chance', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_poor_prospect_2')
-
- actor.removeSkillMod('expertise_spot_a_sucker_damage_decrease_chance', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_poor_prospect_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_poor_prospect_2")
return
diff --git a/scripts/expertise/expertise_sm_general_precise_bead_1.py b/scripts/expertise/expertise_sm_general_precise_bead_1.py
index e2d219f6..427e2f61 100644
--- a/scripts/expertise/expertise_sm_general_precise_bead_1.py
+++ b/scripts/expertise/expertise_sm_general_precise_bead_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_precise_bead_1')
-
- actor.addSkillMod('expertise_undiminished_critical_pistol', 5)
- actor.addSkillMod('expertise_range_bonus_pistol', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_precise_bead_1')
-
- actor.removeSkillMod('expertise_undiminished_critical_pistol', 5)
- actor.removeSkillMod('expertise_range_bonus_pistol', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_precise_bead_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_precise_bead_1")
return
diff --git a/scripts/expertise/expertise_sm_general_precise_bead_2.py b/scripts/expertise/expertise_sm_general_precise_bead_2.py
index b3ae274d..941d326d 100644
--- a/scripts/expertise/expertise_sm_general_precise_bead_2.py
+++ b/scripts/expertise/expertise_sm_general_precise_bead_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_precise_bead_2')
-
- actor.addSkillMod('expertise_undiminished_critical_pistol', 5)
- actor.addSkillMod('expertise_range_bonus_pistol', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_precise_bead_2')
-
- actor.removeSkillMod('expertise_undiminished_critical_pistol', 5)
- actor.removeSkillMod('expertise_range_bonus_pistol', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_precise_bead_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_precise_bead_2")
return
diff --git a/scripts/expertise/expertise_sm_general_spot_a_sucker_1.py b/scripts/expertise/expertise_sm_general_spot_a_sucker_1.py
index 18b3ce1c..d043338d 100644
--- a/scripts/expertise/expertise_sm_general_spot_a_sucker_1.py
+++ b/scripts/expertise/expertise_sm_general_spot_a_sucker_1.py
@@ -1,48 +1,19 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_spot_a_sucker_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_spot_a_sucker_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sm_spot_a_sucker_1')
-
+ if actor.getLevel() >= 34:
+ actor.addAbility("sm_spot_a_sucker_1")
+ if actor.getLevel() >= 50:
+ actor.addAbility("sm_spot_a_sucker_2")
+ if actor.getLevel() >= 66:
+ actor.addAbility("sm_spot_a_sucker_3")
+ if actor.getLevel() >= 82:
+ actor.addAbility("sm_spot_a_sucker_4")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sm_spot_a_sucker_1')
-
+ actor.removeAbility("sm_spot_a_sucker_1")
+ actor.removeAbility("sm_spot_a_sucker_2")
+ actor.removeAbility("sm_spot_a_sucker_3")
+ actor.removeAbility("sm_spot_a_sucker_4")
return
diff --git a/scripts/expertise/expertise_sm_general_switcheroo_1.py b/scripts/expertise/expertise_sm_general_switcheroo_1.py
index bec0a317..50d08045 100644
--- a/scripts/expertise/expertise_sm_general_switcheroo_1.py
+++ b/scripts/expertise/expertise_sm_general_switcheroo_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_switcheroo_1')
-
- actor.addSkillMod('expertise_critical_hit_reduction', 1)
- actor.addSkillMod('expertise_glancing_blow_all', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_switcheroo_1')
-
- actor.removeSkillMod('expertise_critical_hit_reduction', 1)
- actor.removeSkillMod('expertise_glancing_blow_all', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_switcheroo_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_switcheroo_1")
return
diff --git a/scripts/expertise/expertise_sm_general_switcheroo_2.py b/scripts/expertise/expertise_sm_general_switcheroo_2.py
index eb79a782..e66bad5a 100644
--- a/scripts/expertise/expertise_sm_general_switcheroo_2.py
+++ b/scripts/expertise/expertise_sm_general_switcheroo_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_switcheroo_2')
-
- actor.addSkillMod('expertise_critical_hit_reduction', 1)
- actor.addSkillMod('expertise_glancing_blow_all', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_switcheroo_2')
-
- actor.removeSkillMod('expertise_critical_hit_reduction', 1)
- actor.removeSkillMod('expertise_glancing_blow_all', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_switcheroo_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_switcheroo_2")
return
diff --git a/scripts/expertise/expertise_sm_general_switcheroo_3.py b/scripts/expertise/expertise_sm_general_switcheroo_3.py
index 9732dbf7..e7e1dcf9 100644
--- a/scripts/expertise/expertise_sm_general_switcheroo_3.py
+++ b/scripts/expertise/expertise_sm_general_switcheroo_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_switcheroo_3')
-
- actor.addSkillMod('expertise_critical_hit_reduction', 1)
- actor.addSkillMod('expertise_glancing_blow_all', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_switcheroo_3')
-
- actor.removeSkillMod('expertise_critical_hit_reduction', 1)
- actor.removeSkillMod('expertise_glancing_blow_all', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_switcheroo_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_switcheroo_3")
return
diff --git a/scripts/expertise/expertise_sm_general_switcheroo_4.py b/scripts/expertise/expertise_sm_general_switcheroo_4.py
index b5d082a5..c52c8ddf 100644
--- a/scripts/expertise/expertise_sm_general_switcheroo_4.py
+++ b/scripts/expertise/expertise_sm_general_switcheroo_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_switcheroo_4')
-
- actor.addSkillMod('expertise_critical_hit_reduction', 1)
- actor.addSkillMod('expertise_glancing_blow_all', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_switcheroo_4')
-
- actor.removeSkillMod('expertise_critical_hit_reduction', 1)
- actor.removeSkillMod('expertise_glancing_blow_all', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_switcheroo_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_switcheroo_4")
return
diff --git a/scripts/expertise/expertise_sm_general_wretched_fate_1.py b/scripts/expertise/expertise_sm_general_wretched_fate_1.py
index 25287ad7..e1c1ba8d 100644
--- a/scripts/expertise/expertise_sm_general_wretched_fate_1.py
+++ b/scripts/expertise/expertise_sm_general_wretched_fate_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_general_wretched_fate_1')
-
- actor.addSkillMod('expertise_spot_a_sucker_glance_chance', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_general_wretched_fate_1')
-
- actor.removeSkillMod('expertise_spot_a_sucker_glance_chance', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_general_wretched_fate_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_general_wretched_fate_1")
return
diff --git a/scripts/expertise/expertise_sm_path_beat_down_1.py b/scripts/expertise/expertise_sm_path_beat_down_1.py
index af1829d9..ac0f35cb 100644
--- a/scripts/expertise/expertise_sm_path_beat_down_1.py
+++ b/scripts/expertise/expertise_sm_path_beat_down_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_beat_down_1')
-
- actor.addSkillMod('expertise_buff_duration_line_sm_pistol_whip', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_beat_down_1')
-
- actor.removeSkillMod('expertise_buff_duration_line_sm_pistol_whip', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_beat_down_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_beat_down_1")
return
diff --git a/scripts/expertise/expertise_sm_path_beat_down_2.py b/scripts/expertise/expertise_sm_path_beat_down_2.py
index 692ea516..49463363 100644
--- a/scripts/expertise/expertise_sm_path_beat_down_2.py
+++ b/scripts/expertise/expertise_sm_path_beat_down_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_beat_down_2')
-
- actor.addSkillMod('expertise_buff_duration_line_sm_pistol_whip', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_beat_down_2')
-
- actor.removeSkillMod('expertise_buff_duration_line_sm_pistol_whip', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_beat_down_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_beat_down_2")
return
diff --git a/scripts/expertise/expertise_sm_path_best_deal_ever_1.py b/scripts/expertise/expertise_sm_path_best_deal_ever_1.py
index 2abbe97f..5ff94eb3 100644
--- a/scripts/expertise/expertise_sm_path_best_deal_ever_1.py
+++ b/scripts/expertise/expertise_sm_path_best_deal_ever_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_best_deal_ever_1')
-
- actor.addSkillMod('expertise_buff_best_deal_ever', 3)
- actor.addSkillMod('expertise_junk_dealer_cut', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_best_deal_ever_1')
-
- actor.removeSkillMod('expertise_buff_best_deal_ever', 3)
- actor.removeSkillMod('expertise_junk_dealer_cut', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_best_deal_ever_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_best_deal_ever_1")
return
diff --git a/scripts/expertise/expertise_sm_path_best_deal_ever_2.py b/scripts/expertise/expertise_sm_path_best_deal_ever_2.py
index 8d50a957..60cf82ff 100644
--- a/scripts/expertise/expertise_sm_path_best_deal_ever_2.py
+++ b/scripts/expertise/expertise_sm_path_best_deal_ever_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_best_deal_ever_2')
-
- actor.addSkillMod('expertise_buff_best_deal_ever', 3)
- actor.addSkillMod('expertise_junk_dealer_cut', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_best_deal_ever_2')
-
- actor.removeSkillMod('expertise_buff_best_deal_ever', 3)
- actor.removeSkillMod('expertise_junk_dealer_cut', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_best_deal_ever_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_best_deal_ever_2")
return
diff --git a/scripts/expertise/expertise_sm_path_blaster_at_your_side_1.py b/scripts/expertise/expertise_sm_path_blaster_at_your_side_1.py
index fcbf88bf..93b9fb75 100644
--- a/scripts/expertise/expertise_sm_path_blaster_at_your_side_1.py
+++ b/scripts/expertise/expertise_sm_path_blaster_at_your_side_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_blaster_at_your_side_1')
-
- actor.addSkillMod('level_add_to_damage', 100)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_blaster_at_your_side_1')
-
- actor.removeSkillMod('level_add_to_damage', 100)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_blaster_at_your_side_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_blaster_at_your_side_1")
return
diff --git a/scripts/expertise/expertise_sm_path_blaster_at_your_side_2.py b/scripts/expertise/expertise_sm_path_blaster_at_your_side_2.py
index d1297d00..71b64cd7 100644
--- a/scripts/expertise/expertise_sm_path_blaster_at_your_side_2.py
+++ b/scripts/expertise/expertise_sm_path_blaster_at_your_side_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_blaster_at_your_side_2')
-
- actor.addSkillMod('level_add_to_damage', 100)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_blaster_at_your_side_2')
-
- actor.removeSkillMod('level_add_to_damage', 100)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_blaster_at_your_side_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_blaster_at_your_side_2")
return
diff --git a/scripts/expertise/expertise_sm_path_blindside_1.py b/scripts/expertise/expertise_sm_path_blindside_1.py
index 082ed6a7..8914b449 100644
--- a/scripts/expertise/expertise_sm_path_blindside_1.py
+++ b/scripts/expertise/expertise_sm_path_blindside_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_blindside_1')
-
- actor.addSkillMod('expertise_buff_duration_line_sm_skullduggery', 13)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_blindside_1')
-
- actor.removeSkillMod('expertise_buff_duration_line_sm_skullduggery', 13)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_blindside_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_blindside_1")
return
diff --git a/scripts/expertise/expertise_sm_path_blindside_2.py b/scripts/expertise/expertise_sm_path_blindside_2.py
index 3af5ea33..85ff65e6 100644
--- a/scripts/expertise/expertise_sm_path_blindside_2.py
+++ b/scripts/expertise/expertise_sm_path_blindside_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_blindside_2')
-
- actor.addSkillMod('expertise_buff_duration_line_sm_skullduggery', 13)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_blindside_2')
-
- actor.removeSkillMod('expertise_buff_duration_line_sm_skullduggery', 13)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_blindside_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_blindside_2")
return
diff --git a/scripts/expertise/expertise_sm_path_card_up_your_sleeve_1.py b/scripts/expertise/expertise_sm_path_card_up_your_sleeve_1.py
index 14d4ae68..c8664074 100644
--- a/scripts/expertise/expertise_sm_path_card_up_your_sleeve_1.py
+++ b/scripts/expertise/expertise_sm_path_card_up_your_sleeve_1.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_card_up_your_sleeve_1')
-
- actor.addSkillMod('expertise_double_hit_chance', 10)
- actor.addSkillMod('expertise_sm_card_ranged_proc', 25)
- actor.addSkillMod('expertise_sm_card_melee_proc', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_card_up_your_sleeve_1')
-
- actor.removeSkillMod('expertise_double_hit_chance', 10)
- actor.removeSkillMod('expertise_sm_card_ranged_proc', 25)
- actor.removeSkillMod('expertise_sm_card_melee_proc', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_card_up_your_sleeve_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_card_up_your_sleeve_1")
return
diff --git a/scripts/expertise/expertise_sm_path_card_up_your_sleeve_2.py b/scripts/expertise/expertise_sm_path_card_up_your_sleeve_2.py
index 56aaad3a..350c78a6 100644
--- a/scripts/expertise/expertise_sm_path_card_up_your_sleeve_2.py
+++ b/scripts/expertise/expertise_sm_path_card_up_your_sleeve_2.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_card_up_your_sleeve_2')
-
- actor.addSkillMod('expertise_double_hit_chance', 10)
- actor.addSkillMod('expertise_sm_card_ranged_proc', 25)
- actor.addSkillMod('expertise_sm_card_melee_proc', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_card_up_your_sleeve_2')
-
- actor.removeSkillMod('expertise_double_hit_chance', 10)
- actor.removeSkillMod('expertise_sm_card_ranged_proc', 25)
- actor.removeSkillMod('expertise_sm_card_melee_proc', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_card_up_your_sleeve_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_card_up_your_sleeve_2")
return
diff --git a/scripts/expertise/expertise_sm_path_card_up_your_sleeve_3.py b/scripts/expertise/expertise_sm_path_card_up_your_sleeve_3.py
index e86ff955..36a56da8 100644
--- a/scripts/expertise/expertise_sm_path_card_up_your_sleeve_3.py
+++ b/scripts/expertise/expertise_sm_path_card_up_your_sleeve_3.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_card_up_your_sleeve_3')
-
- actor.addSkillMod('expertise_double_hit_chance', 10)
- actor.addSkillMod('expertise_sm_card_ranged_proc', 25)
- actor.addSkillMod('expertise_sm_card_melee_proc', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_card_up_your_sleeve_3')
-
- actor.removeSkillMod('expertise_double_hit_chance', 10)
- actor.removeSkillMod('expertise_sm_card_ranged_proc', 25)
- actor.removeSkillMod('expertise_sm_card_melee_proc', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_card_up_your_sleeve_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_card_up_your_sleeve_3")
return
diff --git a/scripts/expertise/expertise_sm_path_card_up_your_sleeve_4.py b/scripts/expertise/expertise_sm_path_card_up_your_sleeve_4.py
index e687b8de..2c273743 100644
--- a/scripts/expertise/expertise_sm_path_card_up_your_sleeve_4.py
+++ b/scripts/expertise/expertise_sm_path_card_up_your_sleeve_4.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_card_up_your_sleeve_4')
-
- actor.addSkillMod('expertise_double_hit_chance', 10)
- actor.addSkillMod('expertise_sm_card_ranged_proc', 25)
- actor.addSkillMod('expertise_sm_card_melee_proc', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_card_up_your_sleeve_4')
-
- actor.removeSkillMod('expertise_double_hit_chance', 10)
- actor.removeSkillMod('expertise_sm_card_ranged_proc', 25)
- actor.removeSkillMod('expertise_sm_card_melee_proc', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_card_up_your_sleeve_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_card_up_your_sleeve_4")
return
diff --git a/scripts/expertise/expertise_sm_path_easy_money_1.py b/scripts/expertise/expertise_sm_path_easy_money_1.py
index 9d8550f0..9891035b 100644
--- a/scripts/expertise/expertise_sm_path_easy_money_1.py
+++ b/scripts/expertise/expertise_sm_path_easy_money_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_easy_money_1')
-
- actor.addSkillMod('luck_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_easy_money_1')
-
- actor.removeSkillMod('luck_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_easy_money_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_easy_money_1")
return
diff --git a/scripts/expertise/expertise_sm_path_easy_money_2.py b/scripts/expertise/expertise_sm_path_easy_money_2.py
index 70412fba..a02f24f8 100644
--- a/scripts/expertise/expertise_sm_path_easy_money_2.py
+++ b/scripts/expertise/expertise_sm_path_easy_money_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_easy_money_2')
-
- actor.addSkillMod('luck_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_easy_money_2')
-
- actor.removeSkillMod('luck_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_easy_money_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_easy_money_2")
return
diff --git a/scripts/expertise/expertise_sm_path_easy_money_3.py b/scripts/expertise/expertise_sm_path_easy_money_3.py
index 3a44209a..18684c32 100644
--- a/scripts/expertise/expertise_sm_path_easy_money_3.py
+++ b/scripts/expertise/expertise_sm_path_easy_money_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_easy_money_3')
-
- actor.addSkillMod('luck_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_easy_money_3')
-
- actor.removeSkillMod('luck_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_easy_money_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_easy_money_3")
return
diff --git a/scripts/expertise/expertise_sm_path_easy_money_4.py b/scripts/expertise/expertise_sm_path_easy_money_4.py
index aaf2d0ef..3241291b 100644
--- a/scripts/expertise/expertise_sm_path_easy_money_4.py
+++ b/scripts/expertise/expertise_sm_path_easy_money_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_easy_money_4')
-
- actor.addSkillMod('luck_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_easy_money_4')
-
- actor.removeSkillMod('luck_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_easy_money_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_easy_money_4")
return
diff --git a/scripts/expertise/expertise_sm_path_eat_dirt_1.py b/scripts/expertise/expertise_sm_path_eat_dirt_1.py
index 7f3776b3..54211af3 100644
--- a/scripts/expertise/expertise_sm_path_eat_dirt_1.py
+++ b/scripts/expertise/expertise_sm_path_eat_dirt_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_eat_dirt_1')
-
- actor.addSkillMod('expertise_miss_by_luck', 6)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_eat_dirt_1')
-
- actor.removeSkillMod('expertise_miss_by_luck', 6)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_eat_dirt_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_eat_dirt_1")
return
diff --git a/scripts/expertise/expertise_sm_path_eat_dirt_2.py b/scripts/expertise/expertise_sm_path_eat_dirt_2.py
index 897d340c..da074616 100644
--- a/scripts/expertise/expertise_sm_path_eat_dirt_2.py
+++ b/scripts/expertise/expertise_sm_path_eat_dirt_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_eat_dirt_2')
-
- actor.addSkillMod('expertise_miss_by_luck', 6)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_eat_dirt_2')
-
- actor.removeSkillMod('expertise_miss_by_luck', 6)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_eat_dirt_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_eat_dirt_2")
return
diff --git a/scripts/expertise/expertise_sm_path_fake_goods_1.py b/scripts/expertise/expertise_sm_path_fake_goods_1.py
index 5b414151..bd727012 100644
--- a/scripts/expertise/expertise_sm_path_fake_goods_1.py
+++ b/scripts/expertise/expertise_sm_path_fake_goods_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_fake_goods_1')
-
- actor.addSkillMod('expertise_buff_duration_line_sm_false_hope', 1)
- actor.addSkillMod('expertise_delay_reduce_line_sm_false_hope', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_fake_goods_1')
-
- actor.removeSkillMod('expertise_buff_duration_line_sm_false_hope', 1)
- actor.removeSkillMod('expertise_delay_reduce_line_sm_false_hope', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_fake_goods_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_fake_goods_1")
return
diff --git a/scripts/expertise/expertise_sm_path_fake_goods_2.py b/scripts/expertise/expertise_sm_path_fake_goods_2.py
index 75d5968e..3419faae 100644
--- a/scripts/expertise/expertise_sm_path_fake_goods_2.py
+++ b/scripts/expertise/expertise_sm_path_fake_goods_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_fake_goods_2')
-
- actor.addSkillMod('expertise_buff_duration_line_sm_false_hope', 1)
- actor.addSkillMod('expertise_delay_reduce_line_sm_false_hope', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_fake_goods_2')
-
- actor.removeSkillMod('expertise_buff_duration_line_sm_false_hope', 1)
- actor.removeSkillMod('expertise_delay_reduce_line_sm_false_hope', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_fake_goods_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_fake_goods_2")
return
diff --git a/scripts/expertise/expertise_sm_path_false_hope_1.py b/scripts/expertise/expertise_sm_path_false_hope_1.py
index 92c2b34d..b1a72de3 100644
--- a/scripts/expertise/expertise_sm_path_false_hope_1.py
+++ b/scripts/expertise/expertise_sm_path_false_hope_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_false_hope_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_false_hope_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sm_false_hope')
-
+ actor.addAbility("sm_false_hope")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sm_false_hope')
-
+ actor.removeAbility("sm_false_hope")
return
diff --git a/scripts/expertise/expertise_sm_path_feeling_lucky_1.py b/scripts/expertise/expertise_sm_path_feeling_lucky_1.py
index 93fd0635..1f38b885 100644
--- a/scripts/expertise/expertise_sm_path_feeling_lucky_1.py
+++ b/scripts/expertise/expertise_sm_path_feeling_lucky_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_feeling_lucky_1')
-
- actor.addSkillMod('expertise_increase_smuggler_loot', 1)
- actor.addSkillMod('expertise_sm_feeling_lucky_chance_proc', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_feeling_lucky_1')
-
- actor.removeSkillMod('expertise_increase_smuggler_loot', 1)
- actor.removeSkillMod('expertise_sm_feeling_lucky_chance_proc', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_feeling_lucky_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_feeling_lucky_1")
return
diff --git a/scripts/expertise/expertise_sm_path_feeling_lucky_2.py b/scripts/expertise/expertise_sm_path_feeling_lucky_2.py
index ea2f7d6b..6c5af161 100644
--- a/scripts/expertise/expertise_sm_path_feeling_lucky_2.py
+++ b/scripts/expertise/expertise_sm_path_feeling_lucky_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_feeling_lucky_2')
-
- actor.addSkillMod('expertise_increase_smuggler_loot', 1)
- actor.addSkillMod('expertise_sm_feeling_lucky_chance_proc', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_feeling_lucky_2')
-
- actor.removeSkillMod('expertise_increase_smuggler_loot', 1)
- actor.removeSkillMod('expertise_sm_feeling_lucky_chance_proc', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_feeling_lucky_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_feeling_lucky_2")
return
diff --git a/scripts/expertise/expertise_sm_path_feeling_lucky_3.py b/scripts/expertise/expertise_sm_path_feeling_lucky_3.py
index a18e89b4..7965558c 100644
--- a/scripts/expertise/expertise_sm_path_feeling_lucky_3.py
+++ b/scripts/expertise/expertise_sm_path_feeling_lucky_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_feeling_lucky_3')
-
- actor.addSkillMod('expertise_increase_smuggler_loot', 1)
- actor.addSkillMod('expertise_sm_feeling_lucky_chance_proc', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_feeling_lucky_3')
-
- actor.removeSkillMod('expertise_increase_smuggler_loot', 1)
- actor.removeSkillMod('expertise_sm_feeling_lucky_chance_proc', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_feeling_lucky_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_feeling_lucky_3")
return
diff --git a/scripts/expertise/expertise_sm_path_feeling_lucky_4.py b/scripts/expertise/expertise_sm_path_feeling_lucky_4.py
index 4a924398..b9299149 100644
--- a/scripts/expertise/expertise_sm_path_feeling_lucky_4.py
+++ b/scripts/expertise/expertise_sm_path_feeling_lucky_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_feeling_lucky_4')
-
- actor.addSkillMod('expertise_increase_smuggler_loot', 1)
- actor.addSkillMod('expertise_sm_feeling_lucky_chance_proc', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_feeling_lucky_4')
-
- actor.removeSkillMod('expertise_increase_smuggler_loot', 1)
- actor.removeSkillMod('expertise_sm_feeling_lucky_chance_proc', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_feeling_lucky_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_feeling_lucky_4")
return
diff --git a/scripts/expertise/expertise_sm_path_flying_tackle_1.py b/scripts/expertise/expertise_sm_path_flying_tackle_1.py
index cb696d20..5fbcd2eb 100644
--- a/scripts/expertise/expertise_sm_path_flying_tackle_1.py
+++ b/scripts/expertise/expertise_sm_path_flying_tackle_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_flying_tackle_1')
-
- actor.addSkillMod('expertise_stun_line_sm_pistol_whip', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_flying_tackle_1')
-
- actor.removeSkillMod('expertise_stun_line_sm_pistol_whip', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_flying_tackle_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_flying_tackle_1")
return
diff --git a/scripts/expertise/expertise_sm_path_flying_tackle_2.py b/scripts/expertise/expertise_sm_path_flying_tackle_2.py
index fdf47b07..249e61b5 100644
--- a/scripts/expertise/expertise_sm_path_flying_tackle_2.py
+++ b/scripts/expertise/expertise_sm_path_flying_tackle_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_flying_tackle_2')
-
- actor.addSkillMod('expertise_stun_line_sm_pistol_whip', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_flying_tackle_2')
-
- actor.removeSkillMod('expertise_stun_line_sm_pistol_whip', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_flying_tackle_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_flying_tackle_2")
return
diff --git a/scripts/expertise/expertise_sm_path_healthy_profits_1.py b/scripts/expertise/expertise_sm_path_healthy_profits_1.py
index 431019aa..8145066b 100644
--- a/scripts/expertise/expertise_sm_path_healthy_profits_1.py
+++ b/scripts/expertise/expertise_sm_path_healthy_profits_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_healthy_profits_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_healthy_profits_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sm_summon_medic')
-
+ actor.addAbility("sm_summon_medic")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sm_summon_medic')
-
+ actor.removeAbility("sm_summon_medic")
return
diff --git a/scripts/expertise/expertise_sm_path_impossible_odds_1.py b/scripts/expertise/expertise_sm_path_impossible_odds_1.py
index 63e78de4..3191ef8f 100644
--- a/scripts/expertise/expertise_sm_path_impossible_odds_1.py
+++ b/scripts/expertise/expertise_sm_path_impossible_odds_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_impossible_odds_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_impossible_odds_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sm_impossible_odds')
-
+ actor.addAbility("sm_impossible_odds")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sm_impossible_odds')
-
+ actor.removeAbility("sm_impossible_odds")
return
diff --git a/scripts/expertise/expertise_sm_path_inside_information_1.py b/scripts/expertise/expertise_sm_path_inside_information_1.py
index 3bdba930..508ee947 100644
--- a/scripts/expertise/expertise_sm_path_inside_information_1.py
+++ b/scripts/expertise/expertise_sm_path_inside_information_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_inside_information_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_inside_information_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sm_inside_information')
-
+ actor.addAbility("sm_inside_information")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sm_inside_information')
-
+ actor.removeAbility("sm_inside_information")
return
diff --git a/scripts/expertise/expertise_sm_path_loaded_chance_dice_1.py b/scripts/expertise/expertise_sm_path_loaded_chance_dice_1.py
index ccc1e6ba..a73977ba 100644
--- a/scripts/expertise/expertise_sm_path_loaded_chance_dice_1.py
+++ b/scripts/expertise/expertise_sm_path_loaded_chance_dice_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_loaded_chance_dice_1')
-
- actor.addSkillMod('expertise_increase_hit_by_luck', 5)
- actor.addSkillMod('expertise_buff_duration_line_sm_impossible_odds', 13)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_loaded_chance_dice_1')
-
- actor.removeSkillMod('expertise_increase_hit_by_luck', 5)
- actor.removeSkillMod('expertise_buff_duration_line_sm_impossible_odds', 13)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_loaded_chance_dice_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_loaded_chance_dice_1")
return
diff --git a/scripts/expertise/expertise_sm_path_loaded_chance_dice_2.py b/scripts/expertise/expertise_sm_path_loaded_chance_dice_2.py
index 1af5ac14..ec00a3d4 100644
--- a/scripts/expertise/expertise_sm_path_loaded_chance_dice_2.py
+++ b/scripts/expertise/expertise_sm_path_loaded_chance_dice_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_loaded_chance_dice_2')
-
- actor.addSkillMod('expertise_increase_hit_by_luck', 5)
- actor.addSkillMod('expertise_buff_duration_line_sm_impossible_odds', 13)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_loaded_chance_dice_2')
-
- actor.removeSkillMod('expertise_increase_hit_by_luck', 5)
- actor.removeSkillMod('expertise_buff_duration_line_sm_impossible_odds', 13)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_loaded_chance_dice_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_loaded_chance_dice_2")
return
diff --git a/scripts/expertise/expertise_sm_path_lucky_break_1.py b/scripts/expertise/expertise_sm_path_lucky_break_1.py
index df59283b..2beff304 100644
--- a/scripts/expertise/expertise_sm_path_lucky_break_1.py
+++ b/scripts/expertise/expertise_sm_path_lucky_break_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_lucky_break_1')
-
- actor.addSkillMod('expertise_lucky_break_chance', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_lucky_break_1')
-
- actor.removeSkillMod('expertise_lucky_break_chance', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_lucky_break_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_lucky_break_1")
return
diff --git a/scripts/expertise/expertise_sm_path_lucky_break_2.py b/scripts/expertise/expertise_sm_path_lucky_break_2.py
index fabd837e..5a40d6c0 100644
--- a/scripts/expertise/expertise_sm_path_lucky_break_2.py
+++ b/scripts/expertise/expertise_sm_path_lucky_break_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_lucky_break_2')
-
- actor.addSkillMod('expertise_lucky_break_chance', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_lucky_break_2')
-
- actor.removeSkillMod('expertise_lucky_break_chance', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_lucky_break_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_lucky_break_2")
return
diff --git a/scripts/expertise/expertise_sm_path_lucky_break_3.py b/scripts/expertise/expertise_sm_path_lucky_break_3.py
index 572d050f..b1507e0b 100644
--- a/scripts/expertise/expertise_sm_path_lucky_break_3.py
+++ b/scripts/expertise/expertise_sm_path_lucky_break_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_lucky_break_3')
-
- actor.addSkillMod('expertise_lucky_break_chance', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_lucky_break_3')
-
- actor.removeSkillMod('expertise_lucky_break_chance', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_lucky_break_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_lucky_break_3")
return
diff --git a/scripts/expertise/expertise_sm_path_lucky_break_4.py b/scripts/expertise/expertise_sm_path_lucky_break_4.py
index 8a29ac79..b30641cc 100644
--- a/scripts/expertise/expertise_sm_path_lucky_break_4.py
+++ b/scripts/expertise/expertise_sm_path_lucky_break_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_lucky_break_4')
-
- actor.addSkillMod('expertise_lucky_break_chance', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_lucky_break_4')
-
- actor.removeSkillMod('expertise_lucky_break_chance', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_lucky_break_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_lucky_break_4")
return
diff --git a/scripts/expertise/expertise_sm_path_off_the_books_1.py b/scripts/expertise/expertise_sm_path_off_the_books_1.py
index eeac5c97..c42eeff2 100644
--- a/scripts/expertise/expertise_sm_path_off_the_books_1.py
+++ b/scripts/expertise/expertise_sm_path_off_the_books_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_off_the_books_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_off_the_books_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sm_off_the_books')
-
+ actor.addAbility("sm_off_the_books")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sm_off_the_books')
-
+ actor.removeAbility("sm_off_the_books")
return
diff --git a/scripts/expertise/expertise_sm_path_pistol_whip_1.py b/scripts/expertise/expertise_sm_path_pistol_whip_1.py
index e1dd1a3f..e38045db 100644
--- a/scripts/expertise/expertise_sm_path_pistol_whip_1.py
+++ b/scripts/expertise/expertise_sm_path_pistol_whip_1.py
@@ -1,48 +1,19 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_pistol_whip_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_pistol_whip_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sm_pistol_whip_1')
-
+ if actor.getLevel() >= 34:
+ actor.addAbility("sm_pistol_whip_1")
+ if actor.getLevel() >= 50:
+ actor.addAbility("sm_pistol_whip_2")
+ if actor.getLevel() >= 66:
+ actor.addAbility("sm_pistol_whip_3")
+ if actor.getLevel() >= 82:
+ actor.addAbility("sm_pistol_whip_4")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sm_pistol_whip_1')
-
+ actor.removeAbility("sm_pistol_whip_1")
+ actor.removeAbility("sm_pistol_whip_2")
+ actor.removeAbility("sm_pistol_whip_3")
+ actor.removeAbility("sm_pistol_whip_4")
return
diff --git a/scripts/expertise/expertise_sm_path_ploy_1.py b/scripts/expertise/expertise_sm_path_ploy_1.py
index 972f5cf6..956c9d43 100644
--- a/scripts/expertise/expertise_sm_path_ploy_1.py
+++ b/scripts/expertise/expertise_sm_path_ploy_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_ploy_1')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_ploy_1')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_ploy_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_ploy_1")
return
diff --git a/scripts/expertise/expertise_sm_path_ploy_2.py b/scripts/expertise/expertise_sm_path_ploy_2.py
index a49453d7..fe707dc0 100644
--- a/scripts/expertise/expertise_sm_path_ploy_2.py
+++ b/scripts/expertise/expertise_sm_path_ploy_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_ploy_2')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_ploy_2')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_ploy_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_ploy_2")
return
diff --git a/scripts/expertise/expertise_sm_path_ploy_3.py b/scripts/expertise/expertise_sm_path_ploy_3.py
index 84904cdf..cecca14e 100644
--- a/scripts/expertise/expertise_sm_path_ploy_3.py
+++ b/scripts/expertise/expertise_sm_path_ploy_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_ploy_3')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_ploy_3')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_ploy_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_ploy_3")
return
diff --git a/scripts/expertise/expertise_sm_path_ploy_4.py b/scripts/expertise/expertise_sm_path_ploy_4.py
index 4ca79a1f..de968f40 100644
--- a/scripts/expertise/expertise_sm_path_ploy_4.py
+++ b/scripts/expertise/expertise_sm_path_ploy_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_ploy_4')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_ploy_4')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_ploy_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_ploy_4")
return
diff --git a/scripts/expertise/expertise_sm_path_quick_fix_1.py b/scripts/expertise/expertise_sm_path_quick_fix_1.py
index 522a120c..68fa7682 100644
--- a/scripts/expertise/expertise_sm_path_quick_fix_1.py
+++ b/scripts/expertise/expertise_sm_path_quick_fix_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_quick_fix_1')
-
- actor.addSkillMod('expertise_healing_line_sm_heal', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_quick_fix_1')
-
- actor.removeSkillMod('expertise_healing_line_sm_heal', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_quick_fix_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_quick_fix_1")
return
diff --git a/scripts/expertise/expertise_sm_path_quick_fix_2.py b/scripts/expertise/expertise_sm_path_quick_fix_2.py
index 2f4cdc81..7426e059 100644
--- a/scripts/expertise/expertise_sm_path_quick_fix_2.py
+++ b/scripts/expertise/expertise_sm_path_quick_fix_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_quick_fix_2')
-
- actor.addSkillMod('expertise_healing_line_sm_heal', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_quick_fix_2')
-
- actor.removeSkillMod('expertise_healing_line_sm_heal', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_quick_fix_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_quick_fix_2")
return
diff --git a/scripts/expertise/expertise_sm_path_quick_fix_3.py b/scripts/expertise/expertise_sm_path_quick_fix_3.py
index 42f74088..c469d4ed 100644
--- a/scripts/expertise/expertise_sm_path_quick_fix_3.py
+++ b/scripts/expertise/expertise_sm_path_quick_fix_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_quick_fix_3')
-
- actor.addSkillMod('expertise_healing_line_sm_heal', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_quick_fix_3')
-
- actor.removeSkillMod('expertise_healing_line_sm_heal', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_quick_fix_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_quick_fix_3")
return
diff --git a/scripts/expertise/expertise_sm_path_quick_fix_4.py b/scripts/expertise/expertise_sm_path_quick_fix_4.py
index c041fb6e..cebeae68 100644
--- a/scripts/expertise/expertise_sm_path_quick_fix_4.py
+++ b/scripts/expertise/expertise_sm_path_quick_fix_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_quick_fix_4')
-
- actor.addSkillMod('expertise_healing_line_sm_heal', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_quick_fix_4')
-
- actor.removeSkillMod('expertise_healing_line_sm_heal', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_quick_fix_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_quick_fix_4")
return
diff --git a/scripts/expertise/expertise_sm_path_scandal_1.py b/scripts/expertise/expertise_sm_path_scandal_1.py
index d3201976..e4f9b9b0 100644
--- a/scripts/expertise/expertise_sm_path_scandal_1.py
+++ b/scripts/expertise/expertise_sm_path_scandal_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_scandal_1')
-
- actor.addSkillMod('expertise_damage_area_effect', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_scandal_1')
-
- actor.removeSkillMod('expertise_damage_area_effect', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_scandal_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_scandal_1")
return
diff --git a/scripts/expertise/expertise_sm_path_scandal_2.py b/scripts/expertise/expertise_sm_path_scandal_2.py
index 5a14559b..39dc1d2b 100644
--- a/scripts/expertise/expertise_sm_path_scandal_2.py
+++ b/scripts/expertise/expertise_sm_path_scandal_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_scandal_2')
-
- actor.addSkillMod('expertise_damage_area_effect', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_scandal_2')
-
- actor.removeSkillMod('expertise_damage_area_effect', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_scandal_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_scandal_2)
return
diff --git a/scripts/expertise/expertise_sm_path_scandal_3.py b/scripts/expertise/expertise_sm_path_scandal_3.py
index 0d7ae351..4094a791 100644
--- a/scripts/expertise/expertise_sm_path_scandal_3.py
+++ b/scripts/expertise/expertise_sm_path_scandal_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_scandal_3')
-
- actor.addSkillMod('expertise_damage_area_effect', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_scandal_3')
-
- actor.removeSkillMod('expertise_damage_area_effect', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_scandal_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_scandal_3")
return
diff --git a/scripts/expertise/expertise_sm_path_scandal_4.py b/scripts/expertise/expertise_sm_path_scandal_4.py
index 96b3235c..6352b2e1 100644
--- a/scripts/expertise/expertise_sm_path_scandal_4.py
+++ b/scripts/expertise/expertise_sm_path_scandal_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_scandal_4')
-
- actor.addSkillMod('expertise_damage_area_effect', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_scandal_4')
-
- actor.removeSkillMod('expertise_damage_area_effect', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_scandal_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_scandal_4")
return
diff --git a/scripts/expertise/expertise_sm_path_shoot_first_1.py b/scripts/expertise/expertise_sm_path_shoot_first_1.py
index af429bb5..3dbc049f 100644
--- a/scripts/expertise/expertise_sm_path_shoot_first_1.py
+++ b/scripts/expertise/expertise_sm_path_shoot_first_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_shoot_first_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_shoot_first_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sm_shoot_first_1')
-
+ if actor.getLevel() >= 34:
+ actor.addAbility("sm_shoot_first_1")
+ if actor.getLevel() >= 46:
+ actor.addAbility("sm_shoot_first_2")
+ if actor.getLevel() >= 62:
+ actor.addAbility("sm_shoot_first_3")
+ if actor.getLevel() >= 74:
+ actor.addAbility("sm_shoot_first_4")
+ if actor.getLevel() >= 90:
+ actor.addAbility("sm_shoot_first_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sm_shoot_first_1')
-
+ actor.removeAbility("sm_shoot_first_1")
+ actor.removeAbility("sm_shoot_first_2")
+ actor.removeAbility("sm_shoot_first_3")
+ actor.removeAbility("sm_shoot_first_4")
+ actor.removeAbility("sm_shoot_first_5")
return
diff --git a/scripts/expertise/expertise_sm_path_skullduggery_1.py b/scripts/expertise/expertise_sm_path_skullduggery_1.py
index 3da59a99..7c662b84 100644
--- a/scripts/expertise/expertise_sm_path_skullduggery_1.py
+++ b/scripts/expertise/expertise_sm_path_skullduggery_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_skullduggery_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_skullduggery_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sm_skullduggery')
-
+ actor.addAbility("sm_path_skullduggery")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sm_skullduggery')
-
+ actor.removeAbility("sm_path_skullduggery")
return
diff --git a/scripts/expertise/expertise_sm_path_sleight_of_hand_1.py b/scripts/expertise/expertise_sm_path_sleight_of_hand_1.py
index 555dc04d..98907737 100644
--- a/scripts/expertise/expertise_sm_path_sleight_of_hand_1.py
+++ b/scripts/expertise/expertise_sm_path_sleight_of_hand_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_sleight_of_hand_1')
-
- actor.addSkillMod('expertise_hit_by_luck', 8)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_sleight_of_hand_1')
-
- actor.removeSkillMod('expertise_hit_by_luck', 8)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_sleight_of_hand_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_sleight_of_hand_1")
return
diff --git a/scripts/expertise/expertise_sm_path_sleight_of_hand_2.py b/scripts/expertise/expertise_sm_path_sleight_of_hand_2.py
index 50a5b317..88bdf88d 100644
--- a/scripts/expertise/expertise_sm_path_sleight_of_hand_2.py
+++ b/scripts/expertise/expertise_sm_path_sleight_of_hand_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_sleight_of_hand_2')
-
- actor.addSkillMod('expertise_hit_by_luck', 8)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_sleight_of_hand_2')
-
- actor.removeSkillMod('expertise_hit_by_luck', 8)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_sleight_of_hand_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_sleight_of_hand_2")
return
diff --git a/scripts/expertise/expertise_sm_path_smooth_move_1.py b/scripts/expertise/expertise_sm_path_smooth_move_1.py
index c04b10a0..0f766064 100644
--- a/scripts/expertise/expertise_sm_path_smooth_move_1.py
+++ b/scripts/expertise/expertise_sm_path_smooth_move_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_smooth_move_1')
-
- actor.addSkillMod('expertise_damage_melee', 1)
- actor.addSkillMod('expertise_damage_weapon_2', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_smooth_move_1')
-
- actor.removeSkillMod('expertise_damage_melee', 1)
- actor.removeSkillMod('expertise_damage_weapon_2', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_smooth_move_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_smooth_move_1")
return
diff --git a/scripts/expertise/expertise_sm_path_smooth_move_2.py b/scripts/expertise/expertise_sm_path_smooth_move_2.py
index e7f8a910..d27d5c81 100644
--- a/scripts/expertise/expertise_sm_path_smooth_move_2.py
+++ b/scripts/expertise/expertise_sm_path_smooth_move_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_smooth_move_2')
-
- actor.addSkillMod('expertise_damage_melee', 1)
- actor.addSkillMod('expertise_damage_weapon_2', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_smooth_move_2')
-
- actor.removeSkillMod('expertise_damage_melee', 1)
- actor.removeSkillMod('expertise_damage_weapon_2', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_smooth_move_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_smooth_move_2")
return
diff --git a/scripts/expertise/expertise_sm_path_smooth_move_3.py b/scripts/expertise/expertise_sm_path_smooth_move_3.py
index 036e78ed..888bd5d2 100644
--- a/scripts/expertise/expertise_sm_path_smooth_move_3.py
+++ b/scripts/expertise/expertise_sm_path_smooth_move_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_smooth_move_3')
-
- actor.addSkillMod('expertise_damage_melee', 1)
- actor.addSkillMod('expertise_damage_weapon_2', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_smooth_move_3')
-
- actor.removeSkillMod('expertise_damage_melee', 1)
- actor.removeSkillMod('expertise_damage_weapon_2', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_smooth_move_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_smooth_move_3")
return
diff --git a/scripts/expertise/expertise_sm_path_smooth_move_4.py b/scripts/expertise/expertise_sm_path_smooth_move_4.py
index c608477d..52572e2a 100644
--- a/scripts/expertise/expertise_sm_path_smooth_move_4.py
+++ b/scripts/expertise/expertise_sm_path_smooth_move_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_smooth_move_4')
-
- actor.addSkillMod('expertise_damage_melee', 1)
- actor.addSkillMod('expertise_damage_weapon_2', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_smooth_move_4')
-
- actor.removeSkillMod('expertise_damage_melee', 1)
- actor.removeSkillMod('expertise_damage_weapon_2', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sm_path_smooth_move_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sm_path_smooth_move_4")
return
diff --git a/scripts/expertise/expertise_sm_path_under_the_counter_1.py b/scripts/expertise/expertise_sm_path_under_the_counter_1.py
index 563ac15f..4ca94bdb 100644
--- a/scripts/expertise/expertise_sm_path_under_the_counter_1.py
+++ b/scripts/expertise/expertise_sm_path_under_the_counter_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_under_the_counter_1')
-
- actor.addSkillMod('expertise_buff_under_the_counter', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_under_the_counter_1')
-
- actor.removeSkillMod('expertise_buff_under_the_counter', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_path_under_the_counter_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_path_under_the_counter_1")
return
diff --git a/scripts/expertise/expertise_sm_path_under_the_counter_2.py b/scripts/expertise/expertise_sm_path_under_the_counter_2.py
index f4a1f72c..5769c9d6 100644
--- a/scripts/expertise/expertise_sm_path_under_the_counter_2.py
+++ b/scripts/expertise/expertise_sm_path_under_the_counter_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.addSkill('expertise_sm_path_under_the_counter_2')
-
- actor.addSkillMod('expertise_buff_under_the_counter', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'smuggler_1a':
- return
-
- actor.removeSkill('expertise_sm_path_under_the_counter_2')
-
- actor.removeSkillMod('expertise_buff_under_the_counter', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_path_under_the_counter_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_path_under_the_counter_2")
return
diff --git a/scripts/expertise/expertise_sp_assassins_blade_1.py b/scripts/expertise/expertise_sp_assassins_blade_1.py
index 93a526dd..e022fcf7 100644
--- a/scripts/expertise/expertise_sp_assassins_blade_1.py
+++ b/scripts/expertise/expertise_sp_assassins_blade_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_assassins_blade_1')
-
- actor.addSkillMod('expertise_strikethrough_chance', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_assassins_blade_1')
-
- actor.removeSkillMod('expertise_strikethrough_chance', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_assassins_blade_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_assassins_blade_1")
return
diff --git a/scripts/expertise/expertise_sp_assassins_blade_2.py b/scripts/expertise/expertise_sp_assassins_blade_2.py
index ec05ff91..19d3ca7d 100644
--- a/scripts/expertise/expertise_sp_assassins_blade_2.py
+++ b/scripts/expertise/expertise_sp_assassins_blade_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_assassins_blade_2')
-
- actor.addSkillMod('expertise_strikethrough_chance', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_assassins_blade_2')
-
- actor.removeSkillMod('expertise_strikethrough_chance', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_assassins_blade_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_assassins_blade_2")
return
diff --git a/scripts/expertise/expertise_sp_assassins_blade_4.py b/scripts/expertise/expertise_sp_assassins_blade_4.py
index 1c18ae9f..810a2d9c 100644
--- a/scripts/expertise/expertise_sp_assassins_blade_4.py
+++ b/scripts/expertise/expertise_sp_assassins_blade_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_assassins_blade_4')
-
- actor.addSkillMod('expertise_strikethrough_chance', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_assassins_blade_4')
-
- actor.removeSkillMod('expertise_strikethrough_chance', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_assassins_blade_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_assassins_blade_3")
return
diff --git a/scripts/expertise/expertise_sp_assassins_mark.py b/scripts/expertise/expertise_sp_assassins_mark.py
index c15c1096..08e35d4d 100644
--- a/scripts/expertise/expertise_sp_assassins_mark.py
+++ b/scripts/expertise/expertise_sp_assassins_mark.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_assassins_mark')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_assassins_mark')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sp_assassins_mark')
-
+ actor.addAbility("sp_assassins_mark")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sp_assassins_mark')
-
+ actor.removeAbility("sp_assassins_mark")
return
diff --git a/scripts/expertise/expertise_sp_avoid_damage_1.py b/scripts/expertise/expertise_sp_avoid_damage_1.py
index 8e706bc7..723ca08c 100644
--- a/scripts/expertise/expertise_sp_avoid_damage_1.py
+++ b/scripts/expertise/expertise_sp_avoid_damage_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_avoid_damage_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_avoid_damage_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sp_avoid_damage')
-
+ actor.addAbility("sp_avoid_damage")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sp_avoid_damage')
-
+ actor.removeAbility("sp_avoid_damage")
return
diff --git a/scripts/expertise/expertise_sp_burst_of_shadows_1.py b/scripts/expertise/expertise_sp_burst_of_shadows_1.py
index a15ceaf2..8f106d74 100644
--- a/scripts/expertise/expertise_sp_burst_of_shadows_1.py
+++ b/scripts/expertise/expertise_sp_burst_of_shadows_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_burst_of_shadows_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_burst_of_shadows_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sp_burst_of_shadows')
-
+ actor.addAbility("sp_burst_of_shadows")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sp_burst_of_shadows')
-
+ actor.removeAbility("sp_burst_of_shadows")
return
diff --git a/scripts/expertise/expertise_sp_careful_observation_1.py b/scripts/expertise/expertise_sp_careful_observation_1.py
index 16654a46..158e2de9 100644
--- a/scripts/expertise/expertise_sp_careful_observation_1.py
+++ b/scripts/expertise/expertise_sp_careful_observation_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_careful_observation_1')
-
- actor.addSkillMod('detect_hidden', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_careful_observation_1')
-
- actor.removeSkillMod('detect_hidden', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_careful_observation_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_careful_observation_1")
return
diff --git a/scripts/expertise/expertise_sp_careful_observation_2.py b/scripts/expertise/expertise_sp_careful_observation_2.py
index 24e1430f..64ab18fe 100644
--- a/scripts/expertise/expertise_sp_careful_observation_2.py
+++ b/scripts/expertise/expertise_sp_careful_observation_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_careful_observation_2')
-
- actor.addSkillMod('detect_hidden', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_careful_observation_2')
-
- actor.removeSkillMod('detect_hidden', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_careful_observation_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_careful_observation_2")
return
diff --git a/scripts/expertise/expertise_sp_cheap_shots_1.py b/scripts/expertise/expertise_sp_cheap_shots_1.py
index 25e6ce82..4c45be85 100644
--- a/scripts/expertise/expertise_sp_cheap_shots_1.py
+++ b/scripts/expertise/expertise_sp_cheap_shots_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cheap_shots_1')
-
- actor.addSkillMod('expertise_action_weapon_ranged', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cheap_shots_1')
-
- actor.removeSkillMod('expertise_action_weapon_ranged', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_cheap_shots_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_cheap_shots_1")
return
diff --git a/scripts/expertise/expertise_sp_cheap_shots_2.py b/scripts/expertise/expertise_sp_cheap_shots_2.py
index 80c50bbd..6f1510ff 100644
--- a/scripts/expertise/expertise_sp_cheap_shots_2.py
+++ b/scripts/expertise/expertise_sp_cheap_shots_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cheap_shots_2')
-
- actor.addSkillMod('expertise_action_weapon_ranged', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cheap_shots_2')
-
- actor.removeSkillMod('expertise_action_weapon_ranged', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_cheap_shots_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_cheap_shots_2")
return
diff --git a/scripts/expertise/expertise_sp_cheap_shots_3.py b/scripts/expertise/expertise_sp_cheap_shots_3.py
index b109039c..a44a75a0 100644
--- a/scripts/expertise/expertise_sp_cheap_shots_3.py
+++ b/scripts/expertise/expertise_sp_cheap_shots_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cheap_shots_3')
-
- actor.addSkillMod('expertise_action_weapon_ranged', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cheap_shots_3')
-
- actor.removeSkillMod('expertise_action_weapon_ranged', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_cheap_shots_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_cheap_shots_3")
return
diff --git a/scripts/expertise/expertise_sp_cheap_shots_4.py b/scripts/expertise/expertise_sp_cheap_shots_4.py
index 473d1c54..be49ce20 100644
--- a/scripts/expertise/expertise_sp_cheap_shots_4.py
+++ b/scripts/expertise/expertise_sp_cheap_shots_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cheap_shots_4')
-
- actor.addSkillMod('expertise_action_weapon_ranged', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cheap_shots_4')
-
- actor.removeSkillMod('expertise_action_weapon_ranged', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_cheap_shots_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_cheap_shots_4")
return
diff --git a/scripts/expertise/expertise_sp_cheap_strikes_1.py b/scripts/expertise/expertise_sp_cheap_strikes_1.py
index b32c86b8..bf64aff5 100644
--- a/scripts/expertise/expertise_sp_cheap_strikes_1.py
+++ b/scripts/expertise/expertise_sp_cheap_strikes_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cheap_strikes_1')
-
- actor.addSkillMod('expertise_action_weapon_melee', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cheap_strikes_1')
-
- actor.removeSkillMod('expertise_action_weapon_melee', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_cheap_strikes_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_cheap_strikes_1")
return
diff --git a/scripts/expertise/expertise_sp_cheap_strikes_2.py b/scripts/expertise/expertise_sp_cheap_strikes_2.py
index a88b5b7a..2264e3cc 100644
--- a/scripts/expertise/expertise_sp_cheap_strikes_2.py
+++ b/scripts/expertise/expertise_sp_cheap_strikes_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cheap_strikes_2')
-
- actor.addSkillMod('expertise_action_weapon_melee', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cheap_strikes_2')
-
- actor.removeSkillMod('expertise_action_weapon_melee', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_cheap_strikes_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_cheap_strikes_2")
return
diff --git a/scripts/expertise/expertise_sp_cheap_strikes_3.py b/scripts/expertise/expertise_sp_cheap_strikes_3.py
index c3e9a8a0..110acea8 100644
--- a/scripts/expertise/expertise_sp_cheap_strikes_3.py
+++ b/scripts/expertise/expertise_sp_cheap_strikes_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cheap_strikes_3')
-
- actor.addSkillMod('expertise_action_weapon_melee', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cheap_strikes_3')
-
- actor.removeSkillMod('expertise_action_weapon_melee', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_cheap_strikes_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_cheap_strikes_3")
return
diff --git a/scripts/expertise/expertise_sp_cheap_strikes_4.py b/scripts/expertise/expertise_sp_cheap_strikes_4.py
index 2f58d895..97a2d0f6 100644
--- a/scripts/expertise/expertise_sp_cheap_strikes_4.py
+++ b/scripts/expertise/expertise_sp_cheap_strikes_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cheap_strikes_4')
-
- actor.addSkillMod('expertise_action_weapon_melee', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cheap_strikes_4')
-
- actor.removeSkillMod('expertise_action_weapon_melee', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_cheap_strikes_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_cheap_strikes_4")
return
diff --git a/scripts/expertise/expertise_sp_cloak_and_dagger_1.py b/scripts/expertise/expertise_sp_cloak_and_dagger_1.py
index f1333f00..55d9c884 100644
--- a/scripts/expertise/expertise_sp_cloak_and_dagger_1.py
+++ b/scripts/expertise/expertise_sp_cloak_and_dagger_1.py
@@ -1,54 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cloak_and_dagger_1')
-
- actor.addSkillMod('expertise_damage_line_sp_stealth_melee', 20)
- actor.addSkillMod('expertise_damage_line_sp_stealth_ranged', 20)
- actor.addSkillMod('expertise_dot_damage_line_sp_stealth_melee', 20)
- actor.addSkillMod('expertise_dot_damage_line_sp_stealth_ranged', 20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cloak_and_dagger_1')
-
- actor.removeSkillMod('expertise_damage_line_sp_stealth_melee', 20)
- actor.removeSkillMod('expertise_damage_line_sp_stealth_ranged', 20)
- actor.removeSkillMod('expertise_dot_damage_line_sp_stealth_melee', 20)
- actor.removeSkillMod('expertise_dot_damage_line_sp_stealth_ranged', 20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_cloak_and_dagger_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_cloak_and_dagger_1")
return
diff --git a/scripts/expertise/expertise_sp_cloak_and_dagger_2.py b/scripts/expertise/expertise_sp_cloak_and_dagger_2.py
index f9ac5034..1ee3ca02 100644
--- a/scripts/expertise/expertise_sp_cloak_and_dagger_2.py
+++ b/scripts/expertise/expertise_sp_cloak_and_dagger_2.py
@@ -1,54 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cloak_and_dagger_2')
-
- actor.addSkillMod('expertise_damage_line_sp_stealth_melee', 20)
- actor.addSkillMod('expertise_damage_line_sp_stealth_ranged', 20)
- actor.addSkillMod('expertise_dot_damage_line_sp_stealth_melee', 20)
- actor.addSkillMod('expertise_dot_damage_line_sp_stealth_ranged', 20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cloak_and_dagger_2')
-
- actor.removeSkillMod('expertise_damage_line_sp_stealth_melee', 20)
- actor.removeSkillMod('expertise_damage_line_sp_stealth_ranged', 20)
- actor.removeSkillMod('expertise_dot_damage_line_sp_stealth_melee', 20)
- actor.removeSkillMod('expertise_dot_damage_line_sp_stealth_ranged', 20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_cloak_and_dagger_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_cloak_and_dagger_2")
return
diff --git a/scripts/expertise/expertise_sp_cloak_and_dagger_3.py b/scripts/expertise/expertise_sp_cloak_and_dagger_3.py
index 977c7b67..c46d0390 100644
--- a/scripts/expertise/expertise_sp_cloak_and_dagger_3.py
+++ b/scripts/expertise/expertise_sp_cloak_and_dagger_3.py
@@ -1,54 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cloak_and_dagger_3')
-
- actor.addSkillMod('expertise_damage_line_sp_stealth_melee', 20)
- actor.addSkillMod('expertise_damage_line_sp_stealth_ranged', 20)
- actor.addSkillMod('expertise_dot_damage_line_sp_stealth_melee', 20)
- actor.addSkillMod('expertise_dot_damage_line_sp_stealth_ranged', 20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cloak_and_dagger_3')
-
- actor.removeSkillMod('expertise_damage_line_sp_stealth_melee', 20)
- actor.removeSkillMod('expertise_damage_line_sp_stealth_ranged', 20)
- actor.removeSkillMod('expertise_dot_damage_line_sp_stealth_melee', 20)
- actor.removeSkillMod('expertise_dot_damage_line_sp_stealth_ranged', 20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_cloak_and_dagger_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_cloak_and_dagger_3")
return
diff --git a/scripts/expertise/expertise_sp_cloak_and_dagger_4.py b/scripts/expertise/expertise_sp_cloak_and_dagger_4.py
index bc53f9a9..7e78d832 100644
--- a/scripts/expertise/expertise_sp_cloak_and_dagger_4.py
+++ b/scripts/expertise/expertise_sp_cloak_and_dagger_4.py
@@ -1,54 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cloak_and_dagger_4')
-
- actor.addSkillMod('expertise_damage_line_sp_stealth_melee', 20)
- actor.addSkillMod('expertise_damage_line_sp_stealth_ranged', 20)
- actor.addSkillMod('expertise_dot_damage_line_sp_stealth_melee', 20)
- actor.addSkillMod('expertise_dot_damage_line_sp_stealth_ranged', 20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cloak_and_dagger_4')
-
- actor.removeSkillMod('expertise_damage_line_sp_stealth_melee', 20)
- actor.removeSkillMod('expertise_damage_line_sp_stealth_ranged', 20)
- actor.removeSkillMod('expertise_dot_damage_line_sp_stealth_melee', 20)
- actor.removeSkillMod('expertise_dot_damage_line_sp_stealth_ranged', 20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_cloak_and_dagger_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_cloak_and_dagger_4")
return
diff --git a/scripts/expertise/expertise_sp_cloaked_attacks_1.py b/scripts/expertise/expertise_sp_cloaked_attacks_1.py
index d96a977e..9f979c33 100644
--- a/scripts/expertise/expertise_sp_cloaked_attacks_1.py
+++ b/scripts/expertise/expertise_sp_cloaked_attacks_1.py
@@ -1,48 +1,52 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cloaked_attacks_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cloaked_attacks_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sp_ambush_snipe_0')
-
+ if actor.getLevel() >= 10:
+ actor.addAbility("sp_stealth_melee_0")
+ if actor.getLevel() >= 20:
+ actor.addAbility("sp_stealth_melee_1")
+ if actor.getLevel() >= 32:
+ actor.addAbility("sp_stealth_melee_2")
+ if actor.getLevel() >= 46:
+ actor.addAbility("sp_stealth_melee_3")
+ if actor.getLevel() >= 60:
+ actor.addAbility("sp_stealth_melee_4")
+ if actor.getLevel() >= 70:
+ actor.addAbility("sp_stealth_melee_5")
+ if actor.getLevel() >= 86:
+ actor.addAbility("sp_stealth_melee_6")
+
+ if actor.getLevel() >= 10:
+ actor.addAbility("sp_stealth_ranged_0")
+ if actor.getLevel() >= 20:
+ actor.addAbility("sp_stealth_ranged_1")
+ if actor.getLevel() >= 32:
+ actor.addAbility("sp_stealth_ranged_2")
+ if actor.getLevel() >= 46:
+ actor.addAbility("sp_stealth_ranged_3")
+ if actor.getLevel() >= 60:
+ actor.addAbility("sp_stealth_ranged_4")
+ if actor.getLevel() >= 70:
+ actor.addAbility("sp_stealth_ranged_5")
+ if actor.getLevel() >= 86:
+ actor.addAbility("sp_stealth_ranged_6")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sp_ambush_snipe_0')
-
+ actor.removeAbility("sp_stealth_melee_0")
+ actor.removeAbility("sp_stealth_melee_1")
+ actor.removeAbility("sp_stealth_melee_2")
+ actor.removeAbility("sp_stealth_melee_3")
+ actor.removeAbility("sp_stealth_melee_4")
+ actor.removeAbility("sp_stealth_melee_5")
+ actor.removeAbility("sp_stealth_melee_6")
+
+ actor.removeAbility("sp_stealth_ranged_0")
+ actor.removeAbility("sp_stealth_ranged_1")
+ actor.removeAbility("sp_stealth_ranged_2")
+ actor.removeAbility("sp_stealth_ranged_3")
+ actor.removeAbility("sp_stealth_ranged_4")
+ actor.removeAbility("sp_stealth_ranged_5")
+ actor.removeAbility("sp_stealth_ranged_6")
return
+
diff --git a/scripts/expertise/expertise_sp_cloaked_recovery_1.py b/scripts/expertise/expertise_sp_cloaked_recovery_1.py
index 17e8cb25..5e8ffb01 100644
--- a/scripts/expertise/expertise_sp_cloaked_recovery_1.py
+++ b/scripts/expertise/expertise_sp_cloaked_recovery_1.py
@@ -1,48 +1,22 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cloaked_recovery_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cloaked_recovery_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sp_cloaked_recovery_0')
-
+ if actor.getLevel() >= 10:
+ actor.addAbility("sp_cloaked_recovery_0")
+ if actor.getLevel() >= 28:
+ actor.addAbility("sp_cloaked_recovery_1")
+ if actor.getLevel() >= 54:
+ actor.addAbility("sp_cloaked_recovery_2")
+ if actor.getLevel() >= 70:
+ actor.addAbility("sp_cloaked_recovery_3")
+ if actor.getLevel() >= 86:
+ actor.addAbility("sp_cloaked_recovery_4")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sp_cloaked_recovery_0')
-
+ actor.removeAbility("sp_cloaked_recovery_0")
+ actor.removeAbility("sp_cloaked_recovery_1")
+ actor.removeAbility("sp_cloaked_recovery_2")
+ actor.removeAbility("sp_cloaked_recovery_3")
+ actor.removeAbility("sp_cloaked_recovery_4")
return
diff --git a/scripts/expertise/expertise_sp_cloaking_armor_1.py b/scripts/expertise/expertise_sp_cloaking_armor_1.py
index 80d1afc1..4d29b500 100644
--- a/scripts/expertise/expertise_sp_cloaking_armor_1.py
+++ b/scripts/expertise/expertise_sp_cloaking_armor_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cloaking_armor_1')
-
- actor.addSkillMod('camouflage', 35)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cloaking_armor_1')
-
- actor.removeSkillMod('camouflage', 35)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_cloaking_armor_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_cloaking_armor_1")
return
diff --git a/scripts/expertise/expertise_sp_cloaking_armor_2.py b/scripts/expertise/expertise_sp_cloaking_armor_2.py
index 79cb0d6f..7aef08d8 100644
--- a/scripts/expertise/expertise_sp_cloaking_armor_2.py
+++ b/scripts/expertise/expertise_sp_cloaking_armor_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_cloaking_armor_2')
-
- actor.addSkillMod('camouflage', 40)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_cloaking_armor_2')
-
- actor.removeSkillMod('camouflage', 40)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_cloaking_armor_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_cloaking_armor_2")
return
diff --git a/scripts/expertise/expertise_sp_close_quarters_1.py b/scripts/expertise/expertise_sp_close_quarters_1.py
index 7f47d8c4..e98a053f 100644
--- a/scripts/expertise/expertise_sp_close_quarters_1.py
+++ b/scripts/expertise/expertise_sp_close_quarters_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_close_quarters_1')
-
- actor.addSkillMod('expertise_damage_melee', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_close_quarters_1')
-
- actor.removeSkillMod('expertise_damage_melee', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_close_quarters_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_close_quarters_1")
return
diff --git a/scripts/expertise/expertise_sp_close_quarters_2.py b/scripts/expertise/expertise_sp_close_quarters_2.py
index 11685e64..6a94d3e4 100644
--- a/scripts/expertise/expertise_sp_close_quarters_2.py
+++ b/scripts/expertise/expertise_sp_close_quarters_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_close_quarters_2')
-
- actor.addSkillMod('expertise_damage_melee', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_close_quarters_2')
-
- actor.removeSkillMod('expertise_damage_melee', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_close_quarters_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_close_quarters_2")
return
diff --git a/scripts/expertise/expertise_sp_close_quarters_3.py b/scripts/expertise/expertise_sp_close_quarters_3.py
index ee025e54..3b9e0088 100644
--- a/scripts/expertise/expertise_sp_close_quarters_3.py
+++ b/scripts/expertise/expertise_sp_close_quarters_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_close_quarters_3')
-
- actor.addSkillMod('expertise_damage_melee', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_close_quarters_3')
-
- actor.removeSkillMod('expertise_damage_melee', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_close_quarters_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_close_quarters_3")
return
diff --git a/scripts/expertise/expertise_sp_covert_mastery_1.py b/scripts/expertise/expertise_sp_covert_mastery_1.py
index 114d70b6..56e5d7df 100644
--- a/scripts/expertise/expertise_sp_covert_mastery_1.py
+++ b/scripts/expertise/expertise_sp_covert_mastery_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_covert_mastery_1')
-
- actor.addSkillMod('expertise_covert_mastery', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_covert_mastery_1')
-
- actor.removeSkillMod('expertise_covert_mastery', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_covert_mastery_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_covert_mastery_1")
return
diff --git a/scripts/expertise/expertise_sp_crippling_traps_1.py b/scripts/expertise/expertise_sp_crippling_traps_1.py
index 9189c956..f414594b 100644
--- a/scripts/expertise/expertise_sp_crippling_traps_1.py
+++ b/scripts/expertise/expertise_sp_crippling_traps_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_crippling_traps_1')
-
- actor.addSkillMod('expertise_sp_cripple_trap_proc_increase', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_crippling_traps_1')
-
- actor.removeSkillMod('expertise_sp_cripple_trap_proc_increase', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_crippling_traps_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_crippling_traps_1")
return
diff --git a/scripts/expertise/expertise_sp_crippling_traps_2.py b/scripts/expertise/expertise_sp_crippling_traps_2.py
index c7b2170e..f5899f9c 100644
--- a/scripts/expertise/expertise_sp_crippling_traps_2.py
+++ b/scripts/expertise/expertise_sp_crippling_traps_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_crippling_traps_2')
-
- actor.addSkillMod('expertise_sp_cripple_trap_proc_increase', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_crippling_traps_2')
-
- actor.removeSkillMod('expertise_sp_cripple_trap_proc_increase', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_crippling_traps_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_crippling_traps_2")
return
diff --git a/scripts/expertise/expertise_sp_deadly_pistols_1.py b/scripts/expertise/expertise_sp_deadly_pistols_1.py
index fc98249a..16e02540 100644
--- a/scripts/expertise/expertise_sp_deadly_pistols_1.py
+++ b/scripts/expertise/expertise_sp_deadly_pistols_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_deadly_pistols_1')
-
- actor.addSkillMod('expertise_damage_ranged', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_deadly_pistols_1')
-
- actor.removeSkillMod('expertise_damage_ranged', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_deadly_pistols_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_deadly_pistols_1")
return
diff --git a/scripts/expertise/expertise_sp_deadly_pistols_2.py b/scripts/expertise/expertise_sp_deadly_pistols_2.py
index 6f51bb5e..dc23941c 100644
--- a/scripts/expertise/expertise_sp_deadly_pistols_2.py
+++ b/scripts/expertise/expertise_sp_deadly_pistols_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_deadly_pistols_2')
-
- actor.addSkillMod('expertise_damage_ranged', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_deadly_pistols_2')
-
- actor.removeSkillMod('expertise_damage_ranged', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_deadly_pistols_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_deadly_pistols_2")
return
diff --git a/scripts/expertise/expertise_sp_deadly_pistols_3.py b/scripts/expertise/expertise_sp_deadly_pistols_3.py
index 2e75294c..42077da1 100644
--- a/scripts/expertise/expertise_sp_deadly_pistols_3.py
+++ b/scripts/expertise/expertise_sp_deadly_pistols_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_deadly_pistols_3')
-
- actor.addSkillMod('expertise_damage_ranged', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_deadly_pistols_3')
-
- actor.removeSkillMod('expertise_damage_ranged', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_deadly_pistols_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_deadly_pistols_3")
return
diff --git a/scripts/expertise/expertise_sp_deadly_toxins_1.py b/scripts/expertise/expertise_sp_deadly_toxins_1.py
index 7e8dc0c9..cc5432e9 100644
--- a/scripts/expertise/expertise_sp_deadly_toxins_1.py
+++ b/scripts/expertise/expertise_sp_deadly_toxins_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_deadly_toxins_1')
-
- actor.addSkillMod('expertise_critical_line_fldmot', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_deadly_toxins_1')
-
- actor.removeSkillMod('expertise_critical_line_fldmot', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_deadly_toxins_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_deadly_toxins_1")
return
diff --git a/scripts/expertise/expertise_sp_deadly_toxins_2.py b/scripts/expertise/expertise_sp_deadly_toxins_2.py
index 1995b0dc..f5f3be36 100644
--- a/scripts/expertise/expertise_sp_deadly_toxins_2.py
+++ b/scripts/expertise/expertise_sp_deadly_toxins_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_deadly_toxins_2')
-
- actor.addSkillMod('expertise_critical_line_fldmot', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_deadly_toxins_2')
-
- actor.removeSkillMod('expertise_critical_line_fldmot', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_deadly_toxins_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_deadly_toxins_2")
return
diff --git a/scripts/expertise/expertise_sp_decoy_1.py b/scripts/expertise/expertise_sp_decoy_1.py
index 4888c20c..50f9dcc6 100644
--- a/scripts/expertise/expertise_sp_decoy_1.py
+++ b/scripts/expertise/expertise_sp_decoy_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_decoy_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_decoy_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sp_decoy')
-
+ actor.addAbility("sp_decoy")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sp_decoy')
-
+ actor.removeAbility("sp_decoy")
return
diff --git a/scripts/expertise/expertise_sp_diversion_1.py b/scripts/expertise/expertise_sp_diversion_1.py
index aa564906..fdd847e9 100644
--- a/scripts/expertise/expertise_sp_diversion_1.py
+++ b/scripts/expertise/expertise_sp_diversion_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_diversion_1')
-
- actor.addSkillMod('expertise_improved_decoy', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_diversion_1')
-
- actor.removeSkillMod('expertise_improved_decoy', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_diversion_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_diversion_1")
return
diff --git a/scripts/expertise/expertise_sp_diversion_2.py b/scripts/expertise/expertise_sp_diversion_2.py
index d8b6c134..7dddf6ba 100644
--- a/scripts/expertise/expertise_sp_diversion_2.py
+++ b/scripts/expertise/expertise_sp_diversion_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_diversion_2')
-
- actor.addSkillMod('expertise_improved_decoy', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_diversion_2')
-
- actor.removeSkillMod('expertise_improved_decoy', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_diversion_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_diversion_2")
return
diff --git a/scripts/expertise/expertise_sp_equilibrium.py b/scripts/expertise/expertise_sp_equilibrium.py
index d42cdb4d..1ebdcbd1 100644
--- a/scripts/expertise/expertise_sp_equilibrium.py
+++ b/scripts/expertise/expertise_sp_equilibrium.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_equilibrium')
-
- actor.addSkillMod('freeshot_case_miss', 1)
- actor.addSkillMod('freeshot_case_dodge', 1)
- actor.addSkillMod('freeshot_case_parry', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_equilibrium')
-
- actor.removeSkillMod('freeshot_case_miss', 1)
- actor.removeSkillMod('freeshot_case_dodge', 1)
- actor.removeSkillMod('freeshot_case_parry', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_equilibrium")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_equilibrium")
return
diff --git a/scripts/expertise/expertise_sp_expose_shadows_1.py b/scripts/expertise/expertise_sp_expose_shadows_1.py
index 4b08472a..22769831 100644
--- a/scripts/expertise/expertise_sp_expose_shadows_1.py
+++ b/scripts/expertise/expertise_sp_expose_shadows_1.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_expose_shadows_1')
-
- actor.addSkillMod('expertise_sp_reveal_shadows_distance_increase', 5)
- actor.addSkillMod('expertise_sp_reveal_shadows_detect_chance_increase', 3)
- actor.addSkillMod('expertise_cooldown_line_sp_reveal_shadows', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_expose_shadows_1')
-
- actor.removeSkillMod('expertise_sp_reveal_shadows_distance_increase', 5)
- actor.removeSkillMod('expertise_sp_reveal_shadows_detect_chance_increase', 3)
- actor.removeSkillMod('expertise_cooldown_line_sp_reveal_shadows', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_expose_shadows_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_expose_shadows_1")
return
diff --git a/scripts/expertise/expertise_sp_expose_shadows_2.py b/scripts/expertise/expertise_sp_expose_shadows_2.py
index 79a4cf58..ff7f014f 100644
--- a/scripts/expertise/expertise_sp_expose_shadows_2.py
+++ b/scripts/expertise/expertise_sp_expose_shadows_2.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_expose_shadows_2')
-
- actor.addSkillMod('expertise_sp_reveal_shadows_distance_increase', 5)
- actor.addSkillMod('expertise_sp_reveal_shadows_detect_chance_increase', 3)
- actor.addSkillMod('expertise_cooldown_line_sp_reveal_shadows', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_expose_shadows_2')
-
- actor.removeSkillMod('expertise_sp_reveal_shadows_distance_increase', 5)
- actor.removeSkillMod('expertise_sp_reveal_shadows_detect_chance_increase', 3)
- actor.removeSkillMod('expertise_cooldown_line_sp_reveal_shadows', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_expose_shadows_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_expose_shadows_2")
return
diff --git a/scripts/expertise/expertise_sp_expose_shadows_3.py b/scripts/expertise/expertise_sp_expose_shadows_3.py
index 648a6cb4..209eb428 100644
--- a/scripts/expertise/expertise_sp_expose_shadows_3.py
+++ b/scripts/expertise/expertise_sp_expose_shadows_3.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_expose_shadows_3')
-
- actor.addSkillMod('expertise_sp_reveal_shadows_distance_increase', 5)
- actor.addSkillMod('expertise_sp_reveal_shadows_detect_chance_increase', 3)
- actor.addSkillMod('expertise_cooldown_line_sp_reveal_shadows', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_expose_shadows_3')
-
- actor.removeSkillMod('expertise_sp_reveal_shadows_distance_increase', 5)
- actor.removeSkillMod('expertise_sp_reveal_shadows_detect_chance_increase', 3)
- actor.removeSkillMod('expertise_cooldown_line_sp_reveal_shadows', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_expose_shadows_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_expose_shadows_3")
return
diff --git a/scripts/expertise/expertise_sp_expose_shadows_4.py b/scripts/expertise/expertise_sp_expose_shadows_4.py
index cce077b5..2afdddf2 100644
--- a/scripts/expertise/expertise_sp_expose_shadows_4.py
+++ b/scripts/expertise/expertise_sp_expose_shadows_4.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_expose_shadows_4')
-
- actor.addSkillMod('expertise_sp_reveal_shadows_distance_increase', 5)
- actor.addSkillMod('expertise_sp_reveal_shadows_detect_chance_increase', 3)
- actor.addSkillMod('expertise_cooldown_line_sp_reveal_shadows', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_expose_shadows_4')
-
- actor.removeSkillMod('expertise_sp_reveal_shadows_distance_increase', 5)
- actor.removeSkillMod('expertise_sp_reveal_shadows_detect_chance_increase', 3)
- actor.removeSkillMod('expertise_cooldown_line_sp_reveal_shadows', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_expose_shadows_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_expose_shadows_4")
return
diff --git a/scripts/expertise/expertise_sp_glancing_armor_1.py b/scripts/expertise/expertise_sp_glancing_armor_1.py
index 2bc35f22..f1e04872 100644
--- a/scripts/expertise/expertise_sp_glancing_armor_1.py
+++ b/scripts/expertise/expertise_sp_glancing_armor_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_glancing_armor_1')
-
- actor.addSkillMod('expertise_dodge', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_glancing_armor_1')
-
- actor.removeSkillMod('expertise_dodge', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_glancing_armor_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_glancing_armor_1")
return
diff --git a/scripts/expertise/expertise_sp_glancing_armor_2.py b/scripts/expertise/expertise_sp_glancing_armor_2.py
index 84e0e50d..42c8c808 100644
--- a/scripts/expertise/expertise_sp_glancing_armor_2.py
+++ b/scripts/expertise/expertise_sp_glancing_armor_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_glancing_armor_2')
-
- actor.addSkillMod('expertise_dodge', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_glancing_armor_2')
-
- actor.removeSkillMod('expertise_dodge', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_glancing_armor_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_glancing_armor_2")
return
diff --git a/scripts/expertise/expertise_sp_hidden_daggers_1.py b/scripts/expertise/expertise_sp_hidden_daggers_1.py
index 2b947a0c..38c849d5 100644
--- a/scripts/expertise/expertise_sp_hidden_daggers_1.py
+++ b/scripts/expertise/expertise_sp_hidden_daggers_1.py
@@ -1,48 +1,51 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_hidden_daggers_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_hidden_daggers_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
+ if actor.getLevel() >= 10:
+ actor.addAbility("sp_hd_melee_0")
+ if actor.getLevel() >= 18:
+ actor.addAbility("sp_hd_melee_1")
+ if actor.getLevel() >= 32:
+ actor.addAbility("sp_hd_melee_2")
+ if actor.getLevel() >= 46:
+ actor.addAbility("sp_hd_melee_3")
+ if actor.getLevel() >= 58:
+ actor.addAbility("sp_hd_melee_4")
+ if actor.getLevel() >= 70:
+ actor.addAbility("sp_hd_melee_5")
+ if actor.getLevel() >= 84:
+ actor.addAbility("sp_hd_melee_6")
- actor.addAbility('sp_hd_ability_0')
-
+ if actor.getLevel() >= 10:
+ actor.addAbility("sp_hd_range_0")
+ if actor.getLevel() >= 18:
+ actor.addAbility("sp_hd_range_1")
+ if actor.getLevel() >= 32:
+ actor.addAbility("sp_hd_range_2")
+ if actor.getLevel() >= 46:
+ actor.addAbility("sp_hd_range_3")
+ if actor.getLevel() >= 58:
+ actor.addAbility("sp_hd_range_4")
+ if actor.getLevel() >= 70:
+ actor.addAbility("sp_hd_range_5")
+ if actor.getLevel() >= 84:
+ actor.addAbility("sp_hd_range_6")
return
def removeAbilities(core, actor, player):
+ actor.removeAbility("sp_hd_melee_0")
+ actor.removeAbility("sp_hd_melee_1")
+ actor.removeAbility("sp_hd_melee_2")
+ actor.removeAbility("sp_hd_melee_3")
+ actor.removeAbility("sp_hd_melee_4")
+ actor.removeAbility("sp_hd_melee_5")
+ actor.removeAbility("sp_hd_melee_6")
- actor.removeAbility('sp_hd_ability_0')
-
+ actor.removeAbility("sp_hd_range_0")
+ actor.removeAbility("sp_hd_range_1")
+ actor.removeAbility("sp_hd_range_2")
+ actor.removeAbility("sp_hd_range_3")
+ actor.removeAbility("sp_hd_range_4")
+ actor.removeAbility("sp_hd_range_5")
+ actor.removeAbility("sp_hd_range_6")
return
diff --git a/scripts/expertise/expertise_sp_hidden_daggers_2.py b/scripts/expertise/expertise_sp_hidden_daggers_2.py
new file mode 100644
index 00000000..9b197112
--- /dev/null
+++ b/scripts/expertise/expertise_sp_hidden_daggers_2.py
@@ -0,0 +1,9 @@
+import sys
+
+def addAbilities(core, actor, player):
+ actor.addAbility("sp_hd_range_0")
+ return
+
+def removeAbilities(core, actor, player):
+ actor.removeAbility("sp_hd_range_0")
+ return
diff --git a/scripts/expertise/expertise_sp_improved_arachnids_web_1.py b/scripts/expertise/expertise_sp_improved_arachnids_web_1.py
new file mode 100644
index 00000000..b9c80355
--- /dev/null
+++ b/scripts/expertise/expertise_sp_improved_arachnids_web_1.py
@@ -0,0 +1,19 @@
+import sys
+
+def addAbilities(core, actor, player):
+ if actor.getLevel() >= 34:
+ actor.addAbility("sp_improved_cc_dot_1")
+ if actor.getLevel() >= 50:
+ actor.addAbility("sp_improved_cc_dot_2")
+ if actor.getLevel() >= 66:
+ actor.addAbility("sp_improved_cc_dot_3")
+ if actor.getLevel() >= 82:
+ actor.addAbility("sp_improved_cc_dot_4")
+ return
+
+def removeAbilities(core, actor, player):
+ actor.removeAbility("sp_improved_cc_dot_1")
+ actor.removeAbility("sp_improved_cc_dot_2")
+ actor.removeAbility("sp_improved_cc_dot_3")
+ actor.removeAbility("sp_improved_cc_dot_4")
+ return
diff --git a/scripts/expertise/expertise_sp_improved_first_aid_1.py b/scripts/expertise/expertise_sp_improved_first_aid_1.py
index 302ef8e0..7e866996 100644
--- a/scripts/expertise/expertise_sp_improved_first_aid_1.py
+++ b/scripts/expertise/expertise_sp_improved_first_aid_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_improved_first_aid_1')
-
- actor.addSkillMod('expertise_target_healing_bonus', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_improved_first_aid_1')
-
- actor.removeSkillMod('expertise_target_healing_bonus', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_improved_first_aid_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_improved_first_aid_1")
return
diff --git a/scripts/expertise/expertise_sp_improved_first_aid_2.py b/scripts/expertise/expertise_sp_improved_first_aid_2.py
index 5c810822..cec8de8b 100644
--- a/scripts/expertise/expertise_sp_improved_first_aid_2.py
+++ b/scripts/expertise/expertise_sp_improved_first_aid_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_improved_first_aid_2')
-
- actor.addSkillMod('expertise_target_healing_bonus', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_improved_first_aid_2')
-
- actor.removeSkillMod('expertise_target_healing_bonus', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_improved_first_aid_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_improved_first_aid_2")
return
diff --git a/scripts/expertise/expertise_sp_improved_spys_fang_1.py b/scripts/expertise/expertise_sp_improved_spys_fang_1.py
index a91bbc75..5a085702 100644
--- a/scripts/expertise/expertise_sp_improved_spys_fang_1.py
+++ b/scripts/expertise/expertise_sp_improved_spys_fang_1.py
@@ -1,48 +1,25 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_improved_spys_fang_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_improved_spys_fang_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sp_dot_0')
-
+ if actor.getLevel() >= 10:
+ actor.addAbility("sp_dot_0")
+ if actor.getLevel() >= 28:
+ actor.addAbility("sp_dot_1")
+ if actor.getLevel() >= 46:
+ actor.addAbility("sp_dot_2")
+ if actor.getLevel() >= 58:
+ actor.addAbility("sp_dot_3")
+ if actor.getLevel() >= 72:
+ actor.addAbility("sp_dot_4")
+ if actor.getLevel() >= 88:
+ actor.addAbility("sp_dot_5")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sp_dot_0')
-
+ actor.removeAbility("sp_dot_0")
+ actor.removeAbility("sp_dot_1")
+ actor.removeAbility("sp_dot_2")
+ actor.removeAbility("sp_dot_3")
+ actor.removeAbility("sp_dot_4")
+ actor.removeAbility("sp_dot_5")
return
diff --git a/scripts/expertise/expertise_sp_increased_agility_1.py b/scripts/expertise/expertise_sp_increased_agility_1.py
index e3c8d957..3b62fbf5 100644
--- a/scripts/expertise/expertise_sp_increased_agility_1.py
+++ b/scripts/expertise/expertise_sp_increased_agility_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_increased_agility_1')
-
- actor.addSkillMod('agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_increased_agility_1')
-
- actor.removeSkillMod('agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_increased_agility_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_increased_agility_1")
return
diff --git a/scripts/expertise/expertise_sp_increased_agility_2.py b/scripts/expertise/expertise_sp_increased_agility_2.py
index b5728cc0..dea0db05 100644
--- a/scripts/expertise/expertise_sp_increased_agility_2.py
+++ b/scripts/expertise/expertise_sp_increased_agility_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_increased_agility_2')
-
- actor.addSkillMod('agility_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_increased_agility_2')
-
- actor.removeSkillMod('agility_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_increased_agility_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_increased_agility_2")
return
diff --git a/scripts/expertise/expertise_sp_increased_strength_1.py b/scripts/expertise/expertise_sp_increased_strength_1.py
index 005cf60d..b1bec56f 100644
--- a/scripts/expertise/expertise_sp_increased_strength_1.py
+++ b/scripts/expertise/expertise_sp_increased_strength_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_increased_strength_1')
-
- actor.addSkillMod('strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_increased_strength_1')
-
- actor.removeSkillMod('strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_increased_strength_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_increased_strength_1")
return
diff --git a/scripts/expertise/expertise_sp_increased_strength_2.py b/scripts/expertise/expertise_sp_increased_strength_2.py
index 16b7b90f..ae61711d 100644
--- a/scripts/expertise/expertise_sp_increased_strength_2.py
+++ b/scripts/expertise/expertise_sp_increased_strength_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_increased_strength_2')
-
- actor.addSkillMod('strength_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_increased_strength_2')
-
- actor.removeSkillMod('strength_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_increased_strength_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_increased_strength_2")
return
diff --git a/scripts/expertise/expertise_sp_initiative_1.py b/scripts/expertise/expertise_sp_initiative_1.py
index edb3db3d..9032c21a 100644
--- a/scripts/expertise/expertise_sp_initiative_1.py
+++ b/scripts/expertise/expertise_sp_initiative_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_initiative_1')
-
- actor.addSkillMod('expertise_critical_line_sp_stealth_melee', 15)
- actor.addSkillMod('expertise_critical_line_sp_stealth_ranged', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_initiative_1')
-
- actor.removeSkillMod('expertise_critical_line_sp_stealth_melee', 15)
- actor.removeSkillMod('expertise_critical_line_sp_stealth_ranged', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_initiative_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_initiative_1")
return
diff --git a/scripts/expertise/expertise_sp_initiative_2.py b/scripts/expertise/expertise_sp_initiative_2.py
index fefb02bf..ea719348 100644
--- a/scripts/expertise/expertise_sp_initiative_2.py
+++ b/scripts/expertise/expertise_sp_initiative_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_initiative_2')
-
- actor.addSkillMod('expertise_critical_line_sp_stealth_melee', 15)
- actor.addSkillMod('expertise_critical_line_sp_stealth_ranged', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_initiative_2')
-
- actor.removeSkillMod('expertise_critical_line_sp_stealth_melee', 15)
- actor.removeSkillMod('expertise_critical_line_sp_stealth_ranged', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_initiative_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_initiative_2")
return
diff --git a/scripts/expertise/expertise_sp_initiative_3.py b/scripts/expertise/expertise_sp_initiative_3.py
index 56a20d27..15748ad9 100644
--- a/scripts/expertise/expertise_sp_initiative_3.py
+++ b/scripts/expertise/expertise_sp_initiative_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_initiative_3')
-
- actor.addSkillMod('expertise_critical_line_sp_stealth_melee', 15)
- actor.addSkillMod('expertise_critical_line_sp_stealth_ranged', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_initiative_3')
-
- actor.removeSkillMod('expertise_critical_line_sp_stealth_melee', 15)
- actor.removeSkillMod('expertise_critical_line_sp_stealth_ranged', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_initiative_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_initiative_3")
return
diff --git a/scripts/expertise/expertise_sp_initiative_4.py b/scripts/expertise/expertise_sp_initiative_4.py
index a3847b2a..d013c718 100644
--- a/scripts/expertise/expertise_sp_initiative_4.py
+++ b/scripts/expertise/expertise_sp_initiative_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_initiative_4')
-
- actor.addSkillMod('expertise_critical_line_sp_stealth_melee', 15)
- actor.addSkillMod('expertise_critical_line_sp_stealth_ranged', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_initiative_4')
-
- actor.removeSkillMod('expertise_critical_line_sp_stealth_melee', 15)
- actor.removeSkillMod('expertise_critical_line_sp_stealth_ranged', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_initiative_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_initiative_4")
return
diff --git a/scripts/expertise/expertise_sp_jagged_edge_1.py b/scripts/expertise/expertise_sp_jagged_edge_1.py
index 3b094630..2043cb12 100644
--- a/scripts/expertise/expertise_sp_jagged_edge_1.py
+++ b/scripts/expertise/expertise_sp_jagged_edge_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_jagged_edge_1')
-
- actor.addSkillMod('expertise_critical_damage_increase', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_jagged_edge_1')
-
- actor.removeSkillMod('expertise_critical_damage_increase', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_jagged_edge_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_jagged_edge_1")
return
diff --git a/scripts/expertise/expertise_sp_jagged_edge_2.py b/scripts/expertise/expertise_sp_jagged_edge_2.py
index b63c3a03..4360a1af 100644
--- a/scripts/expertise/expertise_sp_jagged_edge_2.py
+++ b/scripts/expertise/expertise_sp_jagged_edge_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_jagged_edge_2')
-
- actor.addSkillMod('expertise_critical_damage_increase', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_jagged_edge_2')
-
- actor.removeSkillMod('expertise_critical_damage_increase', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_jagged_edge_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_jagged_edge_2")
return
diff --git a/scripts/expertise/expertise_sp_jagged_edge_3.py b/scripts/expertise/expertise_sp_jagged_edge_3.py
index 467a8ecb..e2d8f310 100644
--- a/scripts/expertise/expertise_sp_jagged_edge_3.py
+++ b/scripts/expertise/expertise_sp_jagged_edge_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_jagged_edge_3')
-
- actor.addSkillMod('expertise_critical_damage_increase', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_jagged_edge_3')
-
- actor.removeSkillMod('expertise_critical_damage_increase', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_jagged_edge_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_jagged_edge_3")
return
diff --git a/scripts/expertise/expertise_sp_noxious_traps_1.py b/scripts/expertise/expertise_sp_noxious_traps_1.py
index 6bdcfe7d..8bf68635 100644
--- a/scripts/expertise/expertise_sp_noxious_traps_1.py
+++ b/scripts/expertise/expertise_sp_noxious_traps_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_noxious_traps_1')
-
- actor.addSkillMod('expertise_damage_line_fldmot', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_noxious_traps_1')
-
- actor.removeSkillMod('expertise_damage_line_fldmot', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_noxious_traps_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_noxious_traps_1")
return
diff --git a/scripts/expertise/expertise_sp_noxious_traps_2.py b/scripts/expertise/expertise_sp_noxious_traps_2.py
index 27dbf617..3d684ce2 100644
--- a/scripts/expertise/expertise_sp_noxious_traps_2.py
+++ b/scripts/expertise/expertise_sp_noxious_traps_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_noxious_traps_2')
-
- actor.addSkillMod('expertise_damage_line_fldmot', 15)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_noxious_traps_2')
-
- actor.removeSkillMod('expertise_damage_line_fldmot', 15)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_noxious_traps_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_noxious_traps_2")
return
diff --git a/scripts/expertise/expertise_sp_opportunity_1.py b/scripts/expertise/expertise_sp_opportunity_1.py
index a775b549..ce63f8f1 100644
--- a/scripts/expertise/expertise_sp_opportunity_1.py
+++ b/scripts/expertise/expertise_sp_opportunity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_opportunity_1')
-
- actor.addSkillMod('expertise_critical_niche_all', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_opportunity_1')
-
- actor.removeSkillMod('expertise_critical_niche_all', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_opportunity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_opportunity_1")
return
diff --git a/scripts/expertise/expertise_sp_opportunity_2.py b/scripts/expertise/expertise_sp_opportunity_2.py
index d8a596ae..92941b78 100644
--- a/scripts/expertise/expertise_sp_opportunity_2.py
+++ b/scripts/expertise/expertise_sp_opportunity_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_opportunity_2')
-
- actor.addSkillMod('expertise_critical_niche_all', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_opportunity_2')
-
- actor.removeSkillMod('expertise_critical_niche_all', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_opportunity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_opportunity_2")
return
diff --git a/scripts/expertise/expertise_sp_opportunity_3.py b/scripts/expertise/expertise_sp_opportunity_3.py
index 92872b63..f69db076 100644
--- a/scripts/expertise/expertise_sp_opportunity_3.py
+++ b/scripts/expertise/expertise_sp_opportunity_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_opportunity_3')
-
- actor.addSkillMod('expertise_critical_niche_all', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_opportunity_3')
-
- actor.removeSkillMod('expertise_critical_niche_all', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_opportunity_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_opportunity_3")
return
diff --git a/scripts/expertise/expertise_sp_opportunity_4.py b/scripts/expertise/expertise_sp_opportunity_4.py
index 021557d0..5c11573c 100644
--- a/scripts/expertise/expertise_sp_opportunity_4.py
+++ b/scripts/expertise/expertise_sp_opportunity_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_opportunity_4')
-
- actor.addSkillMod('expertise_critical_niche_all', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_opportunity_4')
-
- actor.removeSkillMod('expertise_critical_niche_all', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_opportunity_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_opportunity_4")
return
diff --git a/scripts/expertise/expertise_sp_precision_1.py b/scripts/expertise/expertise_sp_precision_1.py
index 0838078e..fc82b38c 100644
--- a/scripts/expertise/expertise_sp_precision_1.py
+++ b/scripts/expertise/expertise_sp_precision_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_precision_1')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_precision_1')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_precision_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_precision_1")
return
diff --git a/scripts/expertise/expertise_sp_precision_2.py b/scripts/expertise/expertise_sp_precision_2.py
index 646d2555..7dbf6345 100644
--- a/scripts/expertise/expertise_sp_precision_2.py
+++ b/scripts/expertise/expertise_sp_precision_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_precision_2')
-
- actor.addSkillMod('precision_modified', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_precision_2')
-
- actor.removeSkillMod('precision_modified', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_precision_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_precision_2")
return
diff --git a/scripts/expertise/expertise_sp_preparation_1.py b/scripts/expertise/expertise_sp_preparation_1.py
index f9642ef1..4a81cc8f 100644
--- a/scripts/expertise/expertise_sp_preparation_1.py
+++ b/scripts/expertise/expertise_sp_preparation_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_preparation_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_preparation_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sp_preparation')
-
+ actor.addAbility("sp_preparation")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sp_preparation')
-
+ actor.removeAbility("sp_preparation")
return
diff --git a/scripts/expertise/expertise_sp_protective_armor_1.py b/scripts/expertise/expertise_sp_protective_armor_1.py
index cc1f4fce..e4b17d21 100644
--- a/scripts/expertise/expertise_sp_protective_armor_1.py
+++ b/scripts/expertise/expertise_sp_protective_armor_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_protective_armor_1')
-
- actor.addSkillMod('expertise_innate_protection_kinetic', 300)
- actor.addSkillMod('expertise_innate_protection_energy', 300)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_protective_armor_1')
-
- actor.removeSkillMod('expertise_innate_protection_kinetic', 300)
- actor.removeSkillMod('expertise_innate_protection_energy', 300)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_protective_armor_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_protective_armor_1")
return
diff --git a/scripts/expertise/expertise_sp_protective_armor_2.py b/scripts/expertise/expertise_sp_protective_armor_2.py
index d28b98fa..1e9e1495 100644
--- a/scripts/expertise/expertise_sp_protective_armor_2.py
+++ b/scripts/expertise/expertise_sp_protective_armor_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_protective_armor_2')
-
- actor.addSkillMod('expertise_innate_protection_kinetic', 300)
- actor.addSkillMod('expertise_innate_protection_energy', 300)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_protective_armor_2')
-
- actor.removeSkillMod('expertise_innate_protection_kinetic', 300)
- actor.removeSkillMod('expertise_innate_protection_energy', 300)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_protective_armor_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_protective_armor_2")
return
diff --git a/scripts/expertise/expertise_sp_protective_armor_3.py b/scripts/expertise/expertise_sp_protective_armor_3.py
index 362cf151..daaaae35 100644
--- a/scripts/expertise/expertise_sp_protective_armor_3.py
+++ b/scripts/expertise/expertise_sp_protective_armor_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_protective_armor_3')
-
- actor.addSkillMod('expertise_innate_protection_kinetic', 300)
- actor.addSkillMod('expertise_innate_protection_energy', 300)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_protective_armor_3')
-
- actor.removeSkillMod('expertise_innate_protection_kinetic', 300)
- actor.removeSkillMod('expertise_innate_protection_energy', 300)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_protective_armor_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_protective_armor_3")
return
diff --git a/scripts/expertise/expertise_sp_protective_armor_4.py b/scripts/expertise/expertise_sp_protective_armor_4.py
index 217d1cf2..14b113f9 100644
--- a/scripts/expertise/expertise_sp_protective_armor_4.py
+++ b/scripts/expertise/expertise_sp_protective_armor_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_protective_armor_4')
-
- actor.addSkillMod('expertise_innate_protection_kinetic', 300)
- actor.addSkillMod('expertise_innate_protection_energy', 300)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_protective_armor_4')
-
- actor.removeSkillMod('expertise_innate_protection_kinetic', 300)
- actor.removeSkillMod('expertise_innate_protection_energy', 300)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_protective_armor_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_protective_armor_4")
return
diff --git a/scripts/expertise/expertise_sp_puncturing_strikes_1.py b/scripts/expertise/expertise_sp_puncturing_strikes_1.py
index b6a49540..07849a4d 100644
--- a/scripts/expertise/expertise_sp_puncturing_strikes_1.py
+++ b/scripts/expertise/expertise_sp_puncturing_strikes_1.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_puncturing_strikes_1')
-
- actor.addSkillMod('expertise_damage_line_sp_stealth_melee', 10)
- actor.addSkillMod('expertise_damage_line_sp_hd_melee', 10)
- actor.addSkillMod('expertise_damage_line_sp_stealth_ranged', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_puncturing_strikes_1')
-
- actor.removeSkillMod('expertise_damage_line_sp_stealth_melee', 10)
- actor.removeSkillMod('expertise_damage_line_sp_hd_melee', 10)
- actor.removeSkillMod('expertise_damage_line_sp_stealth_ranged', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_puncturing_strikes_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_puncturing_strikes_1")
return
diff --git a/scripts/expertise/expertise_sp_puncturing_strikes_2.py b/scripts/expertise/expertise_sp_puncturing_strikes_2.py
index 9b72c541..d1526657 100644
--- a/scripts/expertise/expertise_sp_puncturing_strikes_2.py
+++ b/scripts/expertise/expertise_sp_puncturing_strikes_2.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_puncturing_strikes_2')
-
- actor.addSkillMod('expertise_damage_line_sp_stealth_melee', 10)
- actor.addSkillMod('expertise_damage_line_sp_hd_melee', 10)
- actor.addSkillMod('expertise_damage_line_sp_stealth_ranged', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_puncturing_strikes_2')
-
- actor.removeSkillMod('expertise_damage_line_sp_stealth_melee', 10)
- actor.removeSkillMod('expertise_damage_line_sp_hd_melee', 10)
- actor.removeSkillMod('expertise_damage_line_sp_stealth_ranged', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_puncturing_strikes_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_puncturing_strikes_2")
return
diff --git a/scripts/expertise/expertise_sp_puncturing_strikes_3.py b/scripts/expertise/expertise_sp_puncturing_strikes_3.py
index f744abd6..20173336 100644
--- a/scripts/expertise/expertise_sp_puncturing_strikes_3.py
+++ b/scripts/expertise/expertise_sp_puncturing_strikes_3.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_puncturing_strikes_3')
-
- actor.addSkillMod('expertise_damage_line_sp_stealth_melee', 10)
- actor.addSkillMod('expertise_damage_line_sp_hd_melee', 10)
- actor.addSkillMod('expertise_damage_line_sp_stealth_ranged', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_puncturing_strikes_3')
-
- actor.removeSkillMod('expertise_damage_line_sp_stealth_melee', 10)
- actor.removeSkillMod('expertise_damage_line_sp_hd_melee', 10)
- actor.removeSkillMod('expertise_damage_line_sp_stealth_ranged', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_puncturing_strikes_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_puncturing_strikes_3")
return
diff --git a/scripts/expertise/expertise_sp_puncturing_strikes_4.py b/scripts/expertise/expertise_sp_puncturing_strikes_4.py
index 4ff64223..858d86c0 100644
--- a/scripts/expertise/expertise_sp_puncturing_strikes_4.py
+++ b/scripts/expertise/expertise_sp_puncturing_strikes_4.py
@@ -1,52 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_puncturing_strikes_4')
-
- actor.addSkillMod('expertise_damage_line_sp_stealth_melee', 10)
- actor.addSkillMod('expertise_damage_line_sp_hd_melee', 10)
- actor.addSkillMod('expertise_damage_line_sp_stealth_ranged', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_puncturing_strikes_4')
-
- actor.removeSkillMod('expertise_damage_line_sp_stealth_melee', 10)
- actor.removeSkillMod('expertise_damage_line_sp_hd_melee', 10)
- actor.removeSkillMod('expertise_damage_line_sp_stealth_ranged', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_puncturing_strikes_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_puncturing_strikes_4")
return
diff --git a/scripts/expertise/expertise_sp_quiet_steps_1.py b/scripts/expertise/expertise_sp_quiet_steps_1.py
index bf0844a0..a9ffb99e 100644
--- a/scripts/expertise/expertise_sp_quiet_steps_1.py
+++ b/scripts/expertise/expertise_sp_quiet_steps_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_quiet_steps_1')
-
- actor.addSkillMod('expertise_avoidance_overpower', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_quiet_steps_1')
-
- actor.removeSkillMod('expertise_avoidance_overpower', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_quiet_steps_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_quiet_steps_1")
return
diff --git a/scripts/expertise/expertise_sp_quiet_steps_2.py b/scripts/expertise/expertise_sp_quiet_steps_2.py
index e9cee417..9dc38491 100644
--- a/scripts/expertise/expertise_sp_quiet_steps_2.py
+++ b/scripts/expertise/expertise_sp_quiet_steps_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_quiet_steps_2')
-
- actor.addSkillMod('expertise_avoidance_overpower', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_quiet_steps_2')
-
- actor.removeSkillMod('expertise_avoidance_overpower', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_quiet_steps_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_quiet_steps_2")
return
diff --git a/scripts/expertise/expertise_sp_rapid_concealment_1.py b/scripts/expertise/expertise_sp_rapid_concealment_1.py
index a2e0ad1a..a9c2efb4 100644
--- a/scripts/expertise/expertise_sp_rapid_concealment_1.py
+++ b/scripts/expertise/expertise_sp_rapid_concealment_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_rapid_concealment_1')
-
- actor.addSkillMod('expertise_cooldown_line_sp_smoke', 30)
- actor.addSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_rapid_concealment_1')
-
- actor.removeSkillMod('expertise_cooldown_line_sp_smoke', 30)
- actor.removeSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_rapid_concealment_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_rapid_concealment_1")
return
diff --git a/scripts/expertise/expertise_sp_rapid_concealment_2.py b/scripts/expertise/expertise_sp_rapid_concealment_2.py
index 7ab413ab..5397db2e 100644
--- a/scripts/expertise/expertise_sp_rapid_concealment_2.py
+++ b/scripts/expertise/expertise_sp_rapid_concealment_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_rapid_concealment_2')
-
- actor.addSkillMod('expertise_cooldown_line_sp_smoke', 30)
- actor.addSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_rapid_concealment_2')
-
- actor.removeSkillMod('expertise_cooldown_line_sp_smoke', 30)
- actor.removeSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_rapid_concealment_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_rapid_concealment_2")
return
diff --git a/scripts/expertise/expertise_sp_rapid_concealment_3.py b/scripts/expertise/expertise_sp_rapid_concealment_3.py
index d8cc0332..ce36df91 100644
--- a/scripts/expertise/expertise_sp_rapid_concealment_3.py
+++ b/scripts/expertise/expertise_sp_rapid_concealment_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_rapid_concealment_3')
-
- actor.addSkillMod('expertise_cooldown_line_sp_smoke', 30)
- actor.addSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_rapid_concealment_3')
-
- actor.removeSkillMod('expertise_cooldown_line_sp_smoke', 30)
- actor.removeSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_rapid_concealment_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_rapid_concealment_3")
return
diff --git a/scripts/expertise/expertise_sp_rapid_concealment_4.py b/scripts/expertise/expertise_sp_rapid_concealment_4.py
index 179d007a..1b0d16bc 100644
--- a/scripts/expertise/expertise_sp_rapid_concealment_4.py
+++ b/scripts/expertise/expertise_sp_rapid_concealment_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_rapid_concealment_4')
-
- actor.addSkillMod('expertise_cooldown_line_sp_smoke', 30)
- actor.addSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_rapid_concealment_4')
-
- actor.removeSkillMod('expertise_cooldown_line_sp_smoke', 30)
- actor.removeSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_rapid_concealment_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_rapid_concealment_4")
return
diff --git a/scripts/expertise/expertise_sp_resonance.py b/scripts/expertise/expertise_sp_resonance.py
index 1f0fd64c..815f559a 100644
--- a/scripts/expertise/expertise_sp_resonance.py
+++ b/scripts/expertise/expertise_sp_resonance.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_resonance')
-
- actor.addSkillMod('expertise_onstrikethrough_proc_sp_resonance', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_resonance')
-
- actor.removeSkillMod('expertise_onstrikethrough_proc_sp_resonance', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_resonance")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_resonance")
return
diff --git a/scripts/expertise/expertise_sp_reveal_shadows_1.py b/scripts/expertise/expertise_sp_reveal_shadows_1.py
index 12bd2510..94e45084 100644
--- a/scripts/expertise/expertise_sp_reveal_shadows_1.py
+++ b/scripts/expertise/expertise_sp_reveal_shadows_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_reveal_shadows_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_reveal_shadows_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sp_reveal_shadows')
-
+ actor.addAbility("sp_reveal_shadows")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sp_reveal_shadows')
-
+ actor.removeAbility("sp_reveal_shadows")
return
diff --git a/scripts/expertise/expertise_sp_run_its_course_1.py b/scripts/expertise/expertise_sp_run_its_course_1.py
index 15365503..5534253b 100644
--- a/scripts/expertise/expertise_sp_run_its_course_1.py
+++ b/scripts/expertise/expertise_sp_run_its_course_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_run_its_course_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_run_its_course_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sp_run_its_course')
-
+ actor.addAbility("sp_run_its_course")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sp_run_its_course')
-
+ actor.removeAbility("sp_run_its_course")
return
diff --git a/scripts/expertise/expertise_sp_savagery.py b/scripts/expertise/expertise_sp_savagery.py
index fce6867c..b8522cc2 100644
--- a/scripts/expertise/expertise_sp_savagery.py
+++ b/scripts/expertise/expertise_sp_savagery.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_savagery')
-
- actor.addSkillMod('expertise_oncrit_proc_sp_savagery', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_savagery')
-
- actor.removeSkillMod('expertise_oncrit_proc_sp_savagery', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_savagery")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_savagery")
return
diff --git a/scripts/expertise/expertise_sp_shadows_embrace_1.py b/scripts/expertise/expertise_sp_shadows_embrace_1.py
index 8acb23d6..b0e83dee 100644
--- a/scripts/expertise/expertise_sp_shadows_embrace_1.py
+++ b/scripts/expertise/expertise_sp_shadows_embrace_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_shadows_embrace_1')
-
- actor.addSkillMod('expertise_buff_duration_line_sp_burst_shadows', 2)
- actor.addSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_shadows_embrace_1')
-
- actor.removeSkillMod('expertise_buff_duration_line_sp_burst_shadows', 2)
- actor.removeSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_shadows_embrace_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_shadows_embrace_1")
return
diff --git a/scripts/expertise/expertise_sp_shadows_embrace_2.py b/scripts/expertise/expertise_sp_shadows_embrace_2.py
index 7f894561..ccd8c71e 100644
--- a/scripts/expertise/expertise_sp_shadows_embrace_2.py
+++ b/scripts/expertise/expertise_sp_shadows_embrace_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_shadows_embrace_2')
-
- actor.addSkillMod('expertise_buff_duration_line_sp_burst_shadows', 2)
- actor.addSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_shadows_embrace_2')
-
- actor.removeSkillMod('expertise_buff_duration_line_sp_burst_shadows', 2)
- actor.removeSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_shadows_embrace_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_shadows_embrace_2")
return
diff --git a/scripts/expertise/expertise_sp_shadows_embrace_3.py b/scripts/expertise/expertise_sp_shadows_embrace_3.py
index ab5023c0..ac459d05 100644
--- a/scripts/expertise/expertise_sp_shadows_embrace_3.py
+++ b/scripts/expertise/expertise_sp_shadows_embrace_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_shadows_embrace_3')
-
- actor.addSkillMod('expertise_buff_duration_line_sp_burst_shadows', 2)
- actor.addSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_shadows_embrace_3')
-
- actor.removeSkillMod('expertise_buff_duration_line_sp_burst_shadows', 2)
- actor.removeSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_shadows_embrace_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_shadows_embrace_3")
return
diff --git a/scripts/expertise/expertise_sp_shadows_embrace_4.py b/scripts/expertise/expertise_sp_shadows_embrace_4.py
index a98522ee..ef6195ea 100644
--- a/scripts/expertise/expertise_sp_shadows_embrace_4.py
+++ b/scripts/expertise/expertise_sp_shadows_embrace_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_shadows_embrace_4')
-
- actor.addSkillMod('expertise_buff_duration_line_sp_burst_shadows', 2)
- actor.addSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_shadows_embrace_4')
-
- actor.removeSkillMod('expertise_buff_duration_line_sp_burst_shadows', 2)
- actor.removeSkillMod('expertise_cooldown_line_sp_burst_shadows', 30)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_shadows_embrace_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_shadows_embrace_4")
return
diff --git a/scripts/expertise/expertise_sp_shifty_setup_1.py b/scripts/expertise/expertise_sp_shifty_setup_1.py
index 90865851..76bf26d8 100644
--- a/scripts/expertise/expertise_sp_shifty_setup_1.py
+++ b/scripts/expertise/expertise_sp_shifty_setup_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_shifty_setup_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_shifty_setup_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sp_shifty_setup')
-
+ actor.addAbility("sp_shifty_setup")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sp_shifty_setup')
-
+ actor.removeAbility("sp_shifty_setup")
return
diff --git a/scripts/expertise/expertise_sp_smoke_mirrors.py b/scripts/expertise/expertise_sp_smoke_mirrors.py
index 5e88dd3e..4b720c0a 100644
--- a/scripts/expertise/expertise_sp_smoke_mirrors.py
+++ b/scripts/expertise/expertise_sp_smoke_mirrors.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_smoke_mirrors')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_smoke_mirrors')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
- actor.addAbility('sp_smoke_mirrors')
-
+ actor.addAbility("sp_smoke_mirrors")
return
def removeAbilities(core, actor, player):
-
- actor.removeAbility('sp_smoke_mirrors')
-
+ actor.removeAbility("sp_smoke_mirrors")
return
diff --git a/scripts/expertise/expertise_sp_smoke_screen_1.py b/scripts/expertise/expertise_sp_smoke_screen_1.py
index 1deb5789..b3e851b3 100644
--- a/scripts/expertise/expertise_sp_smoke_screen_1.py
+++ b/scripts/expertise/expertise_sp_smoke_screen_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_smoke_screen_1')
-
- actor.addSkillMod('expertise_movement_buff_invis_sp_buff_invis_1', -10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_smoke_screen_1')
-
- actor.removeSkillMod('expertise_movement_buff_invis_sp_buff_invis_1', -10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_smoke_screen_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_smoke_screen_1")
return
diff --git a/scripts/expertise/expertise_sp_smoke_screen_2.py b/scripts/expertise/expertise_sp_smoke_screen_2.py
index e091741b..2873cd10 100644
--- a/scripts/expertise/expertise_sp_smoke_screen_2.py
+++ b/scripts/expertise/expertise_sp_smoke_screen_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_smoke_screen_2')
-
- actor.addSkillMod('expertise_movement_buff_invis_sp_buff_invis_1', -10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_smoke_screen_2')
-
- actor.removeSkillMod('expertise_movement_buff_invis_sp_buff_invis_1', -10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_smoke_screen_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_smoke_screen_2")
return
diff --git a/scripts/expertise/expertise_sp_smoke_screen_3.py b/scripts/expertise/expertise_sp_smoke_screen_3.py
index c8ba6991..57be23e9 100644
--- a/scripts/expertise/expertise_sp_smoke_screen_3.py
+++ b/scripts/expertise/expertise_sp_smoke_screen_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_smoke_screen_3')
-
- actor.addSkillMod('expertise_movement_buff_invis_sp_buff_invis_1', -10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_smoke_screen_3')
-
- actor.removeSkillMod('expertise_movement_buff_invis_sp_buff_invis_1', -10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_smoke_screen_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_smoke_screen_3")
return
diff --git a/scripts/expertise/expertise_sp_smoke_screen_4.py b/scripts/expertise/expertise_sp_smoke_screen_4.py
index f4f00aa4..0ec9ab54 100644
--- a/scripts/expertise/expertise_sp_smoke_screen_4.py
+++ b/scripts/expertise/expertise_sp_smoke_screen_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_smoke_screen_4')
-
- actor.addSkillMod('expertise_movement_buff_invis_sp_buff_invis_1', -10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_smoke_screen_4')
-
- actor.removeSkillMod('expertise_movement_buff_invis_sp_buff_invis_1', -10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_smoke_screen_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_smoke_screen_4")
return
diff --git a/scripts/expertise/expertise_sp_steup_1.py b/scripts/expertise/expertise_sp_steup_1.py
index b039c564..80eed675 100644
--- a/scripts/expertise/expertise_sp_steup_1.py
+++ b/scripts/expertise/expertise_sp_steup_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_steup_1')
-
- actor.addSkillMod('expertise_action_line_sp_stealth_melee', 5)
- actor.addSkillMod('expertise_action_line_sp_stealth_ranged', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_steup_1')
-
- actor.removeSkillMod('expertise_action_line_sp_stealth_melee', 5)
- actor.removeSkillMod('expertise_action_line_sp_stealth_ranged', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_steup_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_steup_1")
return
diff --git a/scripts/expertise/expertise_sp_steup_2.py b/scripts/expertise/expertise_sp_steup_2.py
index 9450fa6a..3a6b451b 100644
--- a/scripts/expertise/expertise_sp_steup_2.py
+++ b/scripts/expertise/expertise_sp_steup_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_steup_2')
-
- actor.addSkillMod('expertise_action_line_sp_stealth_melee', 5)
- actor.addSkillMod('expertise_action_line_sp_stealth_ranged', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_steup_2')
-
- actor.removeSkillMod('expertise_action_line_sp_stealth_melee', 5)
- actor.removeSkillMod('expertise_action_line_sp_stealth_ranged', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_steup_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_steup_2")
return
diff --git a/scripts/expertise/expertise_sp_steup_3.py b/scripts/expertise/expertise_sp_steup_3.py
index d0b36017..3ab4f758 100644
--- a/scripts/expertise/expertise_sp_steup_3.py
+++ b/scripts/expertise/expertise_sp_steup_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_steup_3')
-
- actor.addSkillMod('expertise_action_line_sp_stealth_melee', 5)
- actor.addSkillMod('expertise_action_line_sp_stealth_ranged', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_steup_3')
-
- actor.removeSkillMod('expertise_action_line_sp_stealth_melee', 5)
- actor.removeSkillMod('expertise_action_line_sp_stealth_ranged', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_steup_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_steup_3")
return
diff --git a/scripts/expertise/expertise_sp_steup_4.py b/scripts/expertise/expertise_sp_steup_4.py
index dd9ce2f4..b2eb1e65 100644
--- a/scripts/expertise/expertise_sp_steup_4.py
+++ b/scripts/expertise/expertise_sp_steup_4.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_steup_4')
-
- actor.addSkillMod('expertise_action_line_sp_stealth_melee', 5)
- actor.addSkillMod('expertise_action_line_sp_stealth_ranged', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_steup_4')
-
- actor.removeSkillMod('expertise_action_line_sp_stealth_melee', 5)
- actor.removeSkillMod('expertise_action_line_sp_stealth_ranged', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_steup_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_steup_4")
return
diff --git a/scripts/expertise/expertise_sp_undercover_1.py b/scripts/expertise/expertise_sp_undercover_1.py
index 05754013..3c67e708 100644
--- a/scripts/expertise/expertise_sp_undercover_1.py
+++ b/scripts/expertise/expertise_sp_undercover_1.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_undercover_1')
-
- actor.addSkillMod('expertise_movement_buff_invis_sp_buff_invis_1', -5)
- actor.addSkillMod('expertise_movement_buff_invis_sp_buff_stealth_1', -20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_undercover_1')
-
- actor.removeSkillMod('expertise_movement_buff_invis_sp_buff_invis_1', -5)
- actor.removeSkillMod('expertise_movement_buff_invis_sp_buff_stealth_1', -20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_undercover_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_undercover_1")
return
diff --git a/scripts/expertise/expertise_sp_undercover_2.py b/scripts/expertise/expertise_sp_undercover_2.py
index 50edd523..b6660db2 100644
--- a/scripts/expertise/expertise_sp_undercover_2.py
+++ b/scripts/expertise/expertise_sp_undercover_2.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_undercover_2')
-
- actor.addSkillMod('expertise_movement_buff_invis_sp_buff_invis_1', -5)
- actor.addSkillMod('expertise_movement_buff_invis_sp_buff_stealth_1', -20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_undercover_2')
-
- actor.removeSkillMod('expertise_movement_buff_invis_sp_buff_invis_1', -5)
- actor.removeSkillMod('expertise_movement_buff_invis_sp_buff_stealth_1', -20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_undercover_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_undercover_2")
return
diff --git a/scripts/expertise/expertise_sp_undercover_3.py b/scripts/expertise/expertise_sp_undercover_3.py
index 23d181c5..39c4394d 100644
--- a/scripts/expertise/expertise_sp_undercover_3.py
+++ b/scripts/expertise/expertise_sp_undercover_3.py
@@ -1,50 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_undercover_3')
-
- actor.addSkillMod('expertise_movement_buff_invis_sp_buff_invis_1', -5)
- actor.addSkillMod('expertise_movement_buff_invis_sp_buff_stealth_1', -20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_undercover_3')
-
- actor.removeSkillMod('expertise_movement_buff_invis_sp_buff_invis_1', -5)
- actor.removeSkillMod('expertise_movement_buff_invis_sp_buff_stealth_1', -20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_undercover_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_undercover_3")
return
diff --git a/scripts/expertise/expertise_sp_vibrogenerator_1.py b/scripts/expertise/expertise_sp_vibrogenerator_1.py
index 90cb92c6..ed2f90ea 100644
--- a/scripts/expertise/expertise_sp_vibrogenerator_1.py
+++ b/scripts/expertise/expertise_sp_vibrogenerator_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_vibrogenerator_1')
-
- actor.addSkillMod('expertise_armor_neglect', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_vibrogenerator_1')
-
- actor.removeSkillMod('expertise_armor_neglect', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_vibrogenerator_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_vibrogenerator_1")
return
diff --git a/scripts/expertise/expertise_sp_vibrogenerator_2.py b/scripts/expertise/expertise_sp_vibrogenerator_2.py
index 4d047dc5..84e4e570 100644
--- a/scripts/expertise/expertise_sp_vibrogenerator_2.py
+++ b/scripts/expertise/expertise_sp_vibrogenerator_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_vibrogenerator_2')
-
- actor.addSkillMod('expertise_armor_neglect', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_vibrogenerator_2')
-
- actor.removeSkillMod('expertise_armor_neglect', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_vibrogenerator_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_vibrogenerator_2")
return
diff --git a/scripts/expertise/expertise_sp_vibrogenerator_3.py b/scripts/expertise/expertise_sp_vibrogenerator_3.py
index 810b8b4d..592cb4d4 100644
--- a/scripts/expertise/expertise_sp_vibrogenerator_3.py
+++ b/scripts/expertise/expertise_sp_vibrogenerator_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_vibrogenerator_3')
-
- actor.addSkillMod('expertise_armor_neglect', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_vibrogenerator_3')
-
- actor.removeSkillMod('expertise_armor_neglect', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_sp_vibrogenerator_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_sp_vibrogenerator_3")
return
diff --git a/scripts/expertise/expertise_sp_without_a_trace_1.py b/scripts/expertise/expertise_sp_without_a_trace_1.py
index 35327fdf..ebe2f8f3 100644
--- a/scripts/expertise/expertise_sp_without_a_trace_1.py
+++ b/scripts/expertise/expertise_sp_without_a_trace_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.addSkill('expertise_sp_without_a_trace_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'spy_1a':
- return
-
- actor.removeSkill('expertise_sp_without_a_trace_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("sp_without_a_trace")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("sp_without_a_trace")
return
diff --git a/scripts/expertise/expertise_structure_architect_advanced_theory_1.py b/scripts/expertise/expertise_structure_architect_advanced_theory_1.py
index 762a10ca..42e72115 100644
--- a/scripts/expertise/expertise_structure_architect_advanced_theory_1.py
+++ b/scripts/expertise/expertise_structure_architect_advanced_theory_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_architect_advanced_theory_1')
-
- actor.addSkillMod('structure_experimentation', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_architect_advanced_theory_1')
-
- actor.removeSkillMod('structure_experimentation', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_architect_theory_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_architect_theory_1")
return
diff --git a/scripts/expertise/expertise_structure_architect_dexterity_1.py b/scripts/expertise/expertise_structure_architect_dexterity_1.py
index eaf875af..b3644dbd 100644
--- a/scripts/expertise/expertise_structure_architect_dexterity_1.py
+++ b/scripts/expertise/expertise_structure_architect_dexterity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_architect_dexterity_1')
-
- actor.addSkillMod('structure_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_architect_dexterity_1')
-
- actor.removeSkillMod('structure_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_architect_dexterity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_architect_dexterity_1")
return
diff --git a/scripts/expertise/expertise_structure_architect_dexterity_2.py b/scripts/expertise/expertise_structure_architect_dexterity_2.py
index e3a98a3d..d87f7a01 100644
--- a/scripts/expertise/expertise_structure_architect_dexterity_2.py
+++ b/scripts/expertise/expertise_structure_architect_dexterity_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_architect_dexterity_2')
-
- actor.addSkillMod('structure_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_architect_dexterity_2')
-
- actor.removeSkillMod('structure_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_architect_dexterity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_architect_dexterity_2")
return
diff --git a/scripts/expertise/expertise_structure_architect_dexterity_3.py b/scripts/expertise/expertise_structure_architect_dexterity_3.py
index ca3b2d31..f07fb9ae 100644
--- a/scripts/expertise/expertise_structure_architect_dexterity_3.py
+++ b/scripts/expertise/expertise_structure_architect_dexterity_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_architect_dexterity_3')
-
- actor.addSkillMod('structure_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_architect_dexterity_3')
-
- actor.removeSkillMod('structure_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_architect_dexterity_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_architect_dexterity_3")
return
diff --git a/scripts/expertise/expertise_structure_architect_dexterity_4.py b/scripts/expertise/expertise_structure_architect_dexterity_4.py
index a3d8534f..339e3773 100644
--- a/scripts/expertise/expertise_structure_architect_dexterity_4.py
+++ b/scripts/expertise/expertise_structure_architect_dexterity_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_architect_dexterity_4')
-
- actor.addSkillMod('structure_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_architect_dexterity_4')
-
- actor.removeSkillMod('structure_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_architect_dexterity_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_architect_dexterity_4")
return
diff --git a/scripts/expertise/expertise_structure_architect_hypothesis_1.py b/scripts/expertise/expertise_structure_architect_hypothesis_1.py
index b5eafa01..7c1de09a 100644
--- a/scripts/expertise/expertise_structure_architect_hypothesis_1.py
+++ b/scripts/expertise/expertise_structure_architect_hypothesis_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_architect_hypothesis_1')
-
- actor.addSkillMod('expertise_experimentation_increase_architect', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_architect_hypothesis_1')
-
- actor.removeSkillMod('expertise_experimentation_increase_architect', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_architect_hypothesis_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_architect_hypothesis_1")
return
diff --git a/scripts/expertise/expertise_structure_architect_hypothesis_2.py b/scripts/expertise/expertise_structure_architect_hypothesis_2.py
index ec83d7d4..e9acaf9b 100644
--- a/scripts/expertise/expertise_structure_architect_hypothesis_2.py
+++ b/scripts/expertise/expertise_structure_architect_hypothesis_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_architect_hypothesis_2')
-
- actor.addSkillMod('expertise_experimentation_increase_architect', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_architect_hypothesis_2')
-
- actor.removeSkillMod('expertise_experimentation_increase_architect', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_architect_hypothesis_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_architect_hypothesis_2")
return
diff --git a/scripts/expertise/expertise_structure_architect_hypothesis_3.py b/scripts/expertise/expertise_structure_architect_hypothesis_3.py
index 15ddc720..b43dc039 100644
--- a/scripts/expertise/expertise_structure_architect_hypothesis_3.py
+++ b/scripts/expertise/expertise_structure_architect_hypothesis_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_architect_hypothesis_3')
-
- actor.addSkillMod('expertise_experimentation_increase_architect', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_architect_hypothesis_3')
-
- actor.removeSkillMod('expertise_experimentation_increase_architect', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_architect_hypothesis_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_architect_hypothesis_3")
return
diff --git a/scripts/expertise/expertise_structure_architect_hypothesis_4.py b/scripts/expertise/expertise_structure_architect_hypothesis_4.py
index 00e33f1b..7a184294 100644
--- a/scripts/expertise/expertise_structure_architect_hypothesis_4.py
+++ b/scripts/expertise/expertise_structure_architect_hypothesis_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_architect_hypothesis_4')
-
- actor.addSkillMod('expertise_experimentation_increase_architect', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_architect_hypothesis_4')
-
- actor.removeSkillMod('expertise_experimentation_increase_architect', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_architect_hypothesis_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_architect_hypothesis_4")
return
diff --git a/scripts/expertise/expertise_structure_architect_insight_1.py b/scripts/expertise/expertise_structure_architect_insight_1.py
index ff19b257..9ff69aa3 100644
--- a/scripts/expertise/expertise_structure_architect_insight_1.py
+++ b/scripts/expertise/expertise_structure_architect_insight_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_architect_insight_1')
-
- actor.addSkillMod('expertise_complexity_decrease_architect', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_architect_insight_1')
-
- actor.removeSkillMod('expertise_complexity_decrease_architect', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_architect_insight_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_architect_insight_1")
return
diff --git a/scripts/expertise/expertise_structure_architect_insight_2.py b/scripts/expertise/expertise_structure_architect_insight_2.py
index e48c07f5..b5acc5e0 100644
--- a/scripts/expertise/expertise_structure_architect_insight_2.py
+++ b/scripts/expertise/expertise_structure_architect_insight_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_architect_insight_2')
-
- actor.addSkillMod('expertise_complexity_decrease_architect', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_architect_insight_2')
-
- actor.removeSkillMod('expertise_complexity_decrease_architect', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_architect_insight_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_architect_insight_2")
return
diff --git a/scripts/expertise/expertise_structure_architect_keen_understanding_1.py b/scripts/expertise/expertise_structure_architect_keen_understanding_1.py
index 1ff82037..5e63c078 100644
--- a/scripts/expertise/expertise_structure_architect_keen_understanding_1.py
+++ b/scripts/expertise/expertise_structure_architect_keen_understanding_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_architect_keen_understanding_1')
-
- actor.addSkillMod('expertise_complexity_decrease_architect', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_architect_keen_understanding_1')
-
- actor.removeSkillMod('expertise_complexity_decrease_architect', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_architect_keen_understanding_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_architect_keen_understanding_1")
return
diff --git a/scripts/expertise/expertise_structure_architect_keen_understanding_2.py b/scripts/expertise/expertise_structure_architect_keen_understanding_2.py
index 552ebd65..a35ab95e 100644
--- a/scripts/expertise/expertise_structure_architect_keen_understanding_2.py
+++ b/scripts/expertise/expertise_structure_architect_keen_understanding_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_architect_keen_understanding_2')
-
- actor.addSkillMod('expertise_complexity_decrease_architect', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_architect_keen_understanding_2')
-
- actor.removeSkillMod('expertise_complexity_decrease_architect', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_architect_keen_understanding_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_architect_keen_understanding_2")
return
diff --git a/scripts/expertise/expertise_structure_architect_schematic_1_1.py b/scripts/expertise/expertise_structure_architect_schematic_1_1.py
index 7ef6e4eb..77d60042 100644
--- a/scripts/expertise/expertise_structure_architect_schematic_1_1.py
+++ b/scripts/expertise/expertise_structure_architect_schematic_1_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_architect_schematic_1_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_architect_schematic_1_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_architect_schematic_1_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_architect_schematic_1_1")
return
diff --git a/scripts/expertise/expertise_structure_architect_schematic_2_1.py b/scripts/expertise/expertise_structure_architect_schematic_2_1.py
index 7df673d9..9db9ab48 100644
--- a/scripts/expertise/expertise_structure_architect_schematic_2_1.py
+++ b/scripts/expertise/expertise_structure_architect_schematic_2_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_architect_schematic_2_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_architect_schematic_2_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_architect_schematic_2_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_architect_schematic_2_1")
return
diff --git a/scripts/expertise/expertise_structure_artisan_advanced_theory_1.py b/scripts/expertise/expertise_structure_artisan_advanced_theory_1.py
index f2498949..59364e96 100644
--- a/scripts/expertise/expertise_structure_artisan_advanced_theory_1.py
+++ b/scripts/expertise/expertise_structure_artisan_advanced_theory_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_artisan_advanced_theory_1')
-
- actor.addSkillMod('general_experimentation', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_artisan_advanced_theory_1')
-
- actor.removeSkillMod('general_experimentation', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_artisan_advanced_theory_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_artisan_advanced_theory_1")
return
diff --git a/scripts/expertise/expertise_structure_artisan_dexterity_1.py b/scripts/expertise/expertise_structure_artisan_dexterity_1.py
index 5dd3479f..6b4364cf 100644
--- a/scripts/expertise/expertise_structure_artisan_dexterity_1.py
+++ b/scripts/expertise/expertise_structure_artisan_dexterity_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_artisan_dexterity_1')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_artisan_dexterity_1')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_artisan_dexterity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_artisan_dexterity_1")
return
diff --git a/scripts/expertise/expertise_structure_artisan_dexterity_2.py b/scripts/expertise/expertise_structure_artisan_dexterity_2.py
index 7390c520..e5bee87f 100644
--- a/scripts/expertise/expertise_structure_artisan_dexterity_2.py
+++ b/scripts/expertise/expertise_structure_artisan_dexterity_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_artisan_dexterity_2')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_artisan_dexterity_2')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_artisan_dexterity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_artisan_dexterity_2")
return
diff --git a/scripts/expertise/expertise_structure_artisan_dexterity_3.py b/scripts/expertise/expertise_structure_artisan_dexterity_3.py
index 91971842..fb2b5c62 100644
--- a/scripts/expertise/expertise_structure_artisan_dexterity_3.py
+++ b/scripts/expertise/expertise_structure_artisan_dexterity_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_artisan_dexterity_3')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_artisan_dexterity_3')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_artisan_dexterity_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_artisan_dexterity_3")
return
diff --git a/scripts/expertise/expertise_structure_artisan_dexterity_4.py b/scripts/expertise/expertise_structure_artisan_dexterity_4.py
index 4cb0041e..c4fea7ab 100644
--- a/scripts/expertise/expertise_structure_artisan_dexterity_4.py
+++ b/scripts/expertise/expertise_structure_artisan_dexterity_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_artisan_dexterity_4')
-
- actor.addSkillMod('general_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_artisan_dexterity_4')
-
- actor.removeSkillMod('general_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_artisan_dexterity_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_artisan_dexterity_4")
return
diff --git a/scripts/expertise/expertise_structure_artisan_hypothesis_1.py b/scripts/expertise/expertise_structure_artisan_hypothesis_1.py
index 18cbdb54..c5ec040c 100644
--- a/scripts/expertise/expertise_structure_artisan_hypothesis_1.py
+++ b/scripts/expertise/expertise_structure_artisan_hypothesis_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_artisan_hypothesis_1')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_artisan_hypothesis_1')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_artisan_hypothesis_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_artisan_hypothesis_1")
return
diff --git a/scripts/expertise/expertise_structure_artisan_hypothesis_2.py b/scripts/expertise/expertise_structure_artisan_hypothesis_2.py
index 1260a16f..c8803e0c 100644
--- a/scripts/expertise/expertise_structure_artisan_hypothesis_2.py
+++ b/scripts/expertise/expertise_structure_artisan_hypothesis_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_artisan_hypothesis_2')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_artisan_hypothesis_2')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_artisan_hypothesis_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_artisan_hypothesis_2")
return
diff --git a/scripts/expertise/expertise_structure_artisan_hypothesis_3.py b/scripts/expertise/expertise_structure_artisan_hypothesis_3.py
index 5101ccc2..0995112b 100644
--- a/scripts/expertise/expertise_structure_artisan_hypothesis_3.py
+++ b/scripts/expertise/expertise_structure_artisan_hypothesis_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_artisan_hypothesis_3')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_artisan_hypothesis_3')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_artisan_hypothesis_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_artisan_hypothesis_3")
return
diff --git a/scripts/expertise/expertise_structure_artisan_hypothesis_4.py b/scripts/expertise/expertise_structure_artisan_hypothesis_4.py
index ae1c642f..d5a30bc6 100644
--- a/scripts/expertise/expertise_structure_artisan_hypothesis_4.py
+++ b/scripts/expertise/expertise_structure_artisan_hypothesis_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_artisan_hypothesis_4')
-
- actor.addSkillMod('expertise_experimentation_increase_artisan', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_artisan_hypothesis_4')
-
- actor.removeSkillMod('expertise_experimentation_increase_artisan', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_artisan_hypothesis_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_artisan_hypothesis_4")
return
diff --git a/scripts/expertise/expertise_structure_resource_processing_1.py b/scripts/expertise/expertise_structure_resource_processing_1.py
index 80444cc0..38475c6d 100644
--- a/scripts/expertise/expertise_structure_resource_processing_1.py
+++ b/scripts/expertise/expertise_structure_resource_processing_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_resource_processing_1')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_resource_processing_1')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_resource_processing_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_resource_processing_1")
return
diff --git a/scripts/expertise/expertise_structure_resource_processing_2.py b/scripts/expertise/expertise_structure_resource_processing_2.py
index 89253106..79d11128 100644
--- a/scripts/expertise/expertise_structure_resource_processing_2.py
+++ b/scripts/expertise/expertise_structure_resource_processing_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_resource_processing_2')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_resource_processing_2')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_resource_processing_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_resource_processing_2")
return
diff --git a/scripts/expertise/expertise_structure_resource_refinement_1.py b/scripts/expertise/expertise_structure_resource_refinement_1.py
index 948b3822..5b55ffb2 100644
--- a/scripts/expertise/expertise_structure_resource_refinement_1.py
+++ b/scripts/expertise/expertise_structure_resource_refinement_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_resource_refinement_1')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_resource_refinement_1')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_resource_refinement_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_resource_refinement_1")
return
diff --git a/scripts/expertise/expertise_structure_resource_refinement_2.py b/scripts/expertise/expertise_structure_resource_refinement_2.py
index bc8e7478..d9347d52 100644
--- a/scripts/expertise/expertise_structure_resource_refinement_2.py
+++ b/scripts/expertise/expertise_structure_resource_refinement_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_resource_refinement_2')
-
- actor.addSkillMod('expertise_resource_quality_increase', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_resource_refinement_2')
-
- actor.removeSkillMod('expertise_resource_quality_increase', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_resource_refinement_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_resource_refinement_2")
return
diff --git a/scripts/expertise/expertise_structure_shipwright_advanced_theory_1.py b/scripts/expertise/expertise_structure_shipwright_advanced_theory_1.py
index 3ad59ca5..7077e0e4 100644
--- a/scripts/expertise/expertise_structure_shipwright_advanced_theory_1.py
+++ b/scripts/expertise/expertise_structure_shipwright_advanced_theory_1.py
@@ -1,60 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_shipwright_advanced_theory_1')
-
- actor.addSkillMod('chassis_experimentation', 10)
- actor.addSkillMod('weapon_systems_experimentation', 10)
- actor.addSkillMod('engine_experimentation', 10)
- actor.addSkillMod('booster_experimentation', 10)
- actor.addSkillMod('power_systems_experimentation', 10)
- actor.addSkillMod('shields_experimentation', 10)
- actor.addSkillMod('advanced_ship_experimentation', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_shipwright_advanced_theory_1')
-
- actor.removeSkillMod('chassis_experimentation', 10)
- actor.removeSkillMod('weapon_systems_experimentation', 10)
- actor.removeSkillMod('engine_experimentation', 10)
- actor.removeSkillMod('booster_experimentation', 10)
- actor.removeSkillMod('power_systems_experimentation', 10)
- actor.removeSkillMod('shields_experimentation', 10)
- actor.removeSkillMod('advanced_ship_experimentation', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_shipwright_advanced_theory_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_shipwright_advanced_theory_1")
return
diff --git a/scripts/expertise/expertise_structure_shipwright_dexterity_1.py b/scripts/expertise/expertise_structure_shipwright_dexterity_1.py
index 210f669b..f3bd8da5 100644
--- a/scripts/expertise/expertise_structure_shipwright_dexterity_1.py
+++ b/scripts/expertise/expertise_structure_shipwright_dexterity_1.py
@@ -1,60 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_shipwright_dexterity_1')
-
- actor.addSkillMod('chassis_assembly', 5)
- actor.addSkillMod('engine_assembly', 5)
- actor.addSkillMod('booster_assembly', 5)
- actor.addSkillMod('power_systems', 5)
- actor.addSkillMod('weapon_systems', 5)
- actor.addSkillMod('shields_assembly', 5)
- actor.addSkillMod('advanced_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_shipwright_dexterity_1')
-
- actor.removeSkillMod('chassis_assembly', 5)
- actor.removeSkillMod('engine_assembly', 5)
- actor.removeSkillMod('booster_assembly', 5)
- actor.removeSkillMod('power_systems', 5)
- actor.removeSkillMod('weapon_systems', 5)
- actor.removeSkillMod('shields_assembly', 5)
- actor.removeSkillMod('advanced_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_shipwright_dexterity_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_shipwright_dexterity_1")
return
diff --git a/scripts/expertise/expertise_structure_shipwright_dexterity_2.py b/scripts/expertise/expertise_structure_shipwright_dexterity_2.py
index b1bc4bd6..c242e7f8 100644
--- a/scripts/expertise/expertise_structure_shipwright_dexterity_2.py
+++ b/scripts/expertise/expertise_structure_shipwright_dexterity_2.py
@@ -1,60 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_shipwright_dexterity_2')
-
- actor.addSkillMod('chassis_assembly', 5)
- actor.addSkillMod('engine_assembly', 5)
- actor.addSkillMod('booster_assembly', 5)
- actor.addSkillMod('power_systems', 5)
- actor.addSkillMod('weapon_systems', 5)
- actor.addSkillMod('shields_assembly', 5)
- actor.addSkillMod('advanced_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_shipwright_dexterity_2')
-
- actor.removeSkillMod('chassis_assembly', 5)
- actor.removeSkillMod('engine_assembly', 5)
- actor.removeSkillMod('booster_assembly', 5)
- actor.removeSkillMod('power_systems', 5)
- actor.removeSkillMod('weapon_systems', 5)
- actor.removeSkillMod('shields_assembly', 5)
- actor.removeSkillMod('advanced_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_shipwright_dexterity_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_shipwright_dexterity_2")
return
diff --git a/scripts/expertise/expertise_structure_shipwright_dexterity_3.py b/scripts/expertise/expertise_structure_shipwright_dexterity_3.py
index 09592b62..7690812b 100644
--- a/scripts/expertise/expertise_structure_shipwright_dexterity_3.py
+++ b/scripts/expertise/expertise_structure_shipwright_dexterity_3.py
@@ -1,60 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_shipwright_dexterity_3')
-
- actor.addSkillMod('chassis_assembly', 5)
- actor.addSkillMod('engine_assembly', 5)
- actor.addSkillMod('booster_assembly', 5)
- actor.addSkillMod('power_systems', 5)
- actor.addSkillMod('weapon_systems', 5)
- actor.addSkillMod('shields_assembly', 5)
- actor.addSkillMod('advanced_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_shipwright_dexterity_3')
-
- actor.removeSkillMod('chassis_assembly', 5)
- actor.removeSkillMod('engine_assembly', 5)
- actor.removeSkillMod('booster_assembly', 5)
- actor.removeSkillMod('power_systems', 5)
- actor.removeSkillMod('weapon_systems', 5)
- actor.removeSkillMod('shields_assembly', 5)
- actor.removeSkillMod('advanced_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_shipwright_dexterity_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_shipwright_dexterity_3")
return
diff --git a/scripts/expertise/expertise_structure_shipwright_dexterity_4.py b/scripts/expertise/expertise_structure_shipwright_dexterity_4.py
index 242ccbd2..a63652c5 100644
--- a/scripts/expertise/expertise_structure_shipwright_dexterity_4.py
+++ b/scripts/expertise/expertise_structure_shipwright_dexterity_4.py
@@ -1,60 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_shipwright_dexterity_4')
-
- actor.addSkillMod('chassis_assembly', 5)
- actor.addSkillMod('engine_assembly', 5)
- actor.addSkillMod('booster_assembly', 5)
- actor.addSkillMod('power_systems', 5)
- actor.addSkillMod('weapon_systems', 5)
- actor.addSkillMod('shields_assembly', 5)
- actor.addSkillMod('advanced_assembly', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_shipwright_dexterity_4')
-
- actor.removeSkillMod('chassis_assembly', 5)
- actor.removeSkillMod('engine_assembly', 5)
- actor.removeSkillMod('booster_assembly', 5)
- actor.removeSkillMod('power_systems', 5)
- actor.removeSkillMod('weapon_systems', 5)
- actor.removeSkillMod('shields_assembly', 5)
- actor.removeSkillMod('advanced_assembly', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_shipwright_dexterity_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_shipwright_dexterity_4")
return
diff --git a/scripts/expertise/expertise_structure_shipwright_hypothesis_1.py b/scripts/expertise/expertise_structure_shipwright_hypothesis_1.py
index 6fc0b225..65ef4ba2 100644
--- a/scripts/expertise/expertise_structure_shipwright_hypothesis_1.py
+++ b/scripts/expertise/expertise_structure_shipwright_hypothesis_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_shipwright_hypothesis_1')
-
- actor.addSkillMod('expertise_experimentation_increase_shipwright', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_shipwright_hypothesis_1')
-
- actor.removeSkillMod('expertise_experimentation_increase_shipwright', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_shipwright_hypothesis_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_shipwright_hypothesis_1")
return
diff --git a/scripts/expertise/expertise_structure_shipwright_hypothesis_2.py b/scripts/expertise/expertise_structure_shipwright_hypothesis_2.py
index 101a7342..4ab8f864 100644
--- a/scripts/expertise/expertise_structure_shipwright_hypothesis_2.py
+++ b/scripts/expertise/expertise_structure_shipwright_hypothesis_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_shipwright_hypothesis_2')
-
- actor.addSkillMod('expertise_experimentation_increase_shipwright', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_shipwright_hypothesis_2')
-
- actor.removeSkillMod('expertise_experimentation_increase_shipwright', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_shipwright_hypothesis_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_shipwright_hypothesis_2")
return
diff --git a/scripts/expertise/expertise_structure_shipwright_hypothesis_3.py b/scripts/expertise/expertise_structure_shipwright_hypothesis_3.py
index 2c00785c..af933c60 100644
--- a/scripts/expertise/expertise_structure_shipwright_hypothesis_3.py
+++ b/scripts/expertise/expertise_structure_shipwright_hypothesis_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_shipwright_hypothesis_3')
-
- actor.addSkillMod('expertise_experimentation_increase_shipwright', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_shipwright_hypothesis_3')
-
- actor.removeSkillMod('expertise_experimentation_increase_shipwright', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_shipwright_hypothesis_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_shipwright_hypothesis_3")
return
diff --git a/scripts/expertise/expertise_structure_shipwright_hypothesis_4.py b/scripts/expertise/expertise_structure_shipwright_hypothesis_4.py
index d723697e..4b120a10 100644
--- a/scripts/expertise/expertise_structure_shipwright_hypothesis_4.py
+++ b/scripts/expertise/expertise_structure_shipwright_hypothesis_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_shipwright_hypothesis_4')
-
- actor.addSkillMod('expertise_experimentation_increase_shipwright', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_shipwright_hypothesis_4')
-
- actor.removeSkillMod('expertise_experimentation_increase_shipwright', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_shipwright_hypothesis_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_shipwright_hypothesis_4")
return
diff --git a/scripts/expertise/expertise_structure_shipwright_insight_1.py b/scripts/expertise/expertise_structure_shipwright_insight_1.py
index 82b35892..43dd055e 100644
--- a/scripts/expertise/expertise_structure_shipwright_insight_1.py
+++ b/scripts/expertise/expertise_structure_shipwright_insight_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_shipwright_insight_1')
-
- actor.addSkillMod('expertise_complexity_decrease_shipwright', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_shipwright_insight_1')
-
- actor.removeSkillMod('expertise_complexity_decrease_shipwright', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_shipwright_insight_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_shipwright_insight_1")
return
diff --git a/scripts/expertise/expertise_structure_shipwright_insight_2.py b/scripts/expertise/expertise_structure_shipwright_insight_2.py
index d50e67a5..0fe7dd52 100644
--- a/scripts/expertise/expertise_structure_shipwright_insight_2.py
+++ b/scripts/expertise/expertise_structure_shipwright_insight_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_shipwright_insight_2')
-
- actor.addSkillMod('expertise_complexity_decrease_shipwright', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_shipwright_insight_2')
-
- actor.removeSkillMod('expertise_complexity_decrease_shipwright', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_shipwright_insight_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_shipwright_insight_2")
return
diff --git a/scripts/expertise/expertise_structure_shipwright_keen_understanding_1.py b/scripts/expertise/expertise_structure_shipwright_keen_understanding_1.py
index 06d07813..211217c1 100644
--- a/scripts/expertise/expertise_structure_shipwright_keen_understanding_1.py
+++ b/scripts/expertise/expertise_structure_shipwright_keen_understanding_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_shipwright_keen_understanding_1')
-
- actor.addSkillMod('expertise_complexity_decrease_shipwright', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_shipwright_keen_understanding_1')
-
- actor.removeSkillMod('expertise_complexity_decrease_shipwright', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_shipwright_keen_understanding_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_shipwright_keen_understanding_1")
return
diff --git a/scripts/expertise/expertise_structure_shipwright_keen_understanding_2.py b/scripts/expertise/expertise_structure_shipwright_keen_understanding_2.py
index bd0f235a..c11a18a0 100644
--- a/scripts/expertise/expertise_structure_shipwright_keen_understanding_2.py
+++ b/scripts/expertise/expertise_structure_shipwright_keen_understanding_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_shipwright_keen_understanding_2')
-
- actor.addSkillMod('expertise_complexity_decrease_shipwright', 2)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_shipwright_keen_understanding_2')
-
- actor.removeSkillMod('expertise_complexity_decrease_shipwright', 2)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_shipwright_keen_understanding_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_shipwright_keen_understanding_2")
return
diff --git a/scripts/expertise/expertise_structure_shipwright_schematic_1_1.py b/scripts/expertise/expertise_structure_shipwright_schematic_1_1.py
index 7e8de7a2..2cce7bef 100644
--- a/scripts/expertise/expertise_structure_shipwright_schematic_1_1.py
+++ b/scripts/expertise/expertise_structure_shipwright_schematic_1_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_shipwright_schematic_1_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_shipwright_schematic_1_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_shipwright_schmematic_1_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_shipwright_schmematic_1_1")
return
diff --git a/scripts/expertise/expertise_structure_shipwright_schematic_2_1.py b/scripts/expertise/expertise_structure_shipwright_schematic_2_1.py
index 71c2d9b5..b23f6f2c 100644
--- a/scripts/expertise/expertise_structure_shipwright_schematic_2_1.py
+++ b/scripts/expertise/expertise_structure_shipwright_schematic_2_1.py
@@ -1,46 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.addSkill('expertise_structure_shipwright_schematic_2_1')
-
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_struct_1a':
- return
-
- actor.removeSkill('expertise_structure_shipwright_schematic_2_1')
-
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_structure_shipwright_schmematic_2_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_structure_shipwright_schmematic_2_1")
return
diff --git a/scripts/expertise/expertise_trader_business_accounting_1.py b/scripts/expertise/expertise_trader_business_accounting_1.py
index 79324ca3..115fc5cd 100644
--- a/scripts/expertise/expertise_trader_business_accounting_1.py
+++ b/scripts/expertise/expertise_trader_business_accounting_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_business_accounting_1')
-
- actor.addSkillMod('expertise_vendor_cost_decrease', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_business_accounting_1')
-
- actor.removeSkillMod('expertise_vendor_cost_decrease', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_business_accounting_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_business_accounting_1")
return
diff --git a/scripts/expertise/expertise_trader_business_accounting_2.py b/scripts/expertise/expertise_trader_business_accounting_2.py
index 86469f30..24e5d569 100644
--- a/scripts/expertise/expertise_trader_business_accounting_2.py
+++ b/scripts/expertise/expertise_trader_business_accounting_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_business_accounting_2')
-
- actor.addSkillMod('expertise_vendor_cost_decrease', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_business_accounting_2')
-
- actor.removeSkillMod('expertise_vendor_cost_decrease', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_business_accounting_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_business_accounting_2")
return
diff --git a/scripts/expertise/expertise_trader_business_accounting_3.py b/scripts/expertise/expertise_trader_business_accounting_3.py
index cc43a91d..d0d619c7 100644
--- a/scripts/expertise/expertise_trader_business_accounting_3.py
+++ b/scripts/expertise/expertise_trader_business_accounting_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_business_accounting_3')
-
- actor.addSkillMod('expertise_vendor_cost_decrease', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_business_accounting_3')
-
- actor.removeSkillMod('expertise_vendor_cost_decrease', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_business_accounting_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_business_accounting_3")
return
diff --git a/scripts/expertise/expertise_trader_business_accounting_4.py b/scripts/expertise/expertise_trader_business_accounting_4.py
index 0c751506..62d4ef7a 100644
--- a/scripts/expertise/expertise_trader_business_accounting_4.py
+++ b/scripts/expertise/expertise_trader_business_accounting_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_business_accounting_4')
-
- actor.addSkillMod('expertise_vendor_cost_decrease', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_business_accounting_4')
-
- actor.removeSkillMod('expertise_vendor_cost_decrease', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_business_accounting_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_business_accounting_4")
return
diff --git a/scripts/expertise/expertise_trader_factory_energy_1.py b/scripts/expertise/expertise_trader_factory_energy_1.py
index cd7525fc..0c42837e 100644
--- a/scripts/expertise/expertise_trader_factory_energy_1.py
+++ b/scripts/expertise/expertise_trader_factory_energy_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_factory_energy_1')
-
- actor.addSkillMod('expertise_factory_energy_decrease', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_factory_energy_1')
-
- actor.removeSkillMod('expertise_factory_energy_decrease', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_factory_energy_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_factory_energy_1")
return
diff --git a/scripts/expertise/expertise_trader_factory_energy_2.py b/scripts/expertise/expertise_trader_factory_energy_2.py
index ab07aa02..5a89f344 100644
--- a/scripts/expertise/expertise_trader_factory_energy_2.py
+++ b/scripts/expertise/expertise_trader_factory_energy_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_factory_energy_2')
-
- actor.addSkillMod('expertise_factory_energy_decrease', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_factory_energy_2')
-
- actor.removeSkillMod('expertise_factory_energy_decrease', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_factory_energy_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_factory_energy_2")
return
diff --git a/scripts/expertise/expertise_trader_factory_energy_3.py b/scripts/expertise/expertise_trader_factory_energy_3.py
index 04bac30c..998dd932 100644
--- a/scripts/expertise/expertise_trader_factory_energy_3.py
+++ b/scripts/expertise/expertise_trader_factory_energy_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_factory_energy_3')
-
- actor.addSkillMod('expertise_factory_energy_decrease', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_factory_energy_3')
-
- actor.removeSkillMod('expertise_factory_energy_decrease', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_factory_energy_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_factory_energy_3")
return
diff --git a/scripts/expertise/expertise_trader_factory_energy_4.py b/scripts/expertise/expertise_trader_factory_energy_4.py
index b2012ebc..dbed8294 100644
--- a/scripts/expertise/expertise_trader_factory_energy_4.py
+++ b/scripts/expertise/expertise_trader_factory_energy_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_factory_energy_4')
-
- actor.addSkillMod('expertise_factory_energy_decrease', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_factory_energy_4')
-
- actor.removeSkillMod('expertise_factory_energy_decrease', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_factory_energy_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_factory_energy_4")
return
diff --git a/scripts/expertise/expertise_trader_factory_maintenance_1.py b/scripts/expertise/expertise_trader_factory_maintenance_1.py
index 539c8406..cc4ea7c8 100644
--- a/scripts/expertise/expertise_trader_factory_maintenance_1.py
+++ b/scripts/expertise/expertise_trader_factory_maintenance_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_factory_maintenance_1')
-
- actor.addSkillMod('expertise_factory_maintenance_decrease', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_factory_maintenance_1')
-
- actor.removeSkillMod('expertise_factory_maintenance_decrease', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_factory_maintenance_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_factory_maintenance_1")
return
diff --git a/scripts/expertise/expertise_trader_factory_maintenance_2.py b/scripts/expertise/expertise_trader_factory_maintenance_2.py
index 917acca1..701595a4 100644
--- a/scripts/expertise/expertise_trader_factory_maintenance_2.py
+++ b/scripts/expertise/expertise_trader_factory_maintenance_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_factory_maintenance_2')
-
- actor.addSkillMod('expertise_factory_maintenance_decrease', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_factory_maintenance_2')
-
- actor.removeSkillMod('expertise_factory_maintenance_decrease', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_factory_maintenance_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_factory_maintenance_2")
return
diff --git a/scripts/expertise/expertise_trader_factory_maintenance_3.py b/scripts/expertise/expertise_trader_factory_maintenance_3.py
index 58fdaa1d..f192b2e5 100644
--- a/scripts/expertise/expertise_trader_factory_maintenance_3.py
+++ b/scripts/expertise/expertise_trader_factory_maintenance_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_factory_maintenance_3')
-
- actor.addSkillMod('expertise_factory_maintenance_decrease', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_factory_maintenance_3')
-
- actor.removeSkillMod('expertise_factory_maintenance_decrease', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_factory_maintenance_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_factory_maintenance_3")
return
diff --git a/scripts/expertise/expertise_trader_factory_maintenance_4.py b/scripts/expertise/expertise_trader_factory_maintenance_4.py
index 51f4dff6..2af47dac 100644
--- a/scripts/expertise/expertise_trader_factory_maintenance_4.py
+++ b/scripts/expertise/expertise_trader_factory_maintenance_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_factory_maintenance_4')
-
- actor.addSkillMod('expertise_factory_maintenance_decrease', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_factory_maintenance_4')
-
- actor.removeSkillMod('expertise_factory_maintenance_decrease', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_factory_maintenance_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_factory_maintenance_4")
return
diff --git a/scripts/expertise/expertise_trader_factory_production_1.py b/scripts/expertise/expertise_trader_factory_production_1.py
index 9f82bcae..1d1f755b 100644
--- a/scripts/expertise/expertise_trader_factory_production_1.py
+++ b/scripts/expertise/expertise_trader_factory_production_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_factory_production_1')
-
- actor.addSkillMod('factory_speed', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_factory_production_1')
-
- actor.removeSkillMod('factory_speed', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_factory_production_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_factory_production_1")
return
diff --git a/scripts/expertise/expertise_trader_factory_production_2.py b/scripts/expertise/expertise_trader_factory_production_2.py
index 97a69abe..8feb2585 100644
--- a/scripts/expertise/expertise_trader_factory_production_2.py
+++ b/scripts/expertise/expertise_trader_factory_production_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_factory_production_2')
-
- actor.addSkillMod('factory_speed', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_factory_production_2')
-
- actor.removeSkillMod('factory_speed', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_factory_production_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_factory_production_2")
return
diff --git a/scripts/expertise/expertise_trader_harvester_collection_1.py b/scripts/expertise/expertise_trader_harvester_collection_1.py
index f509b4ce..3b7b2f6e 100644
--- a/scripts/expertise/expertise_trader_harvester_collection_1.py
+++ b/scripts/expertise/expertise_trader_harvester_collection_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_harvester_collection_1')
-
- actor.addSkillMod('expertise_harvester_collection_increase', 20)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_harvester_collection_1')
-
- actor.removeSkillMod('expertise_harvester_collection_increase', 20)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_harvester_collection_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_harvester_collection_1")
return
diff --git a/scripts/expertise/expertise_trader_harvester_collection_2.py b/scripts/expertise/expertise_trader_harvester_collection_2.py
index fb287890..1959a0fb 100644
--- a/scripts/expertise/expertise_trader_harvester_collection_2.py
+++ b/scripts/expertise/expertise_trader_harvester_collection_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_harvester_collection_2')
-
- actor.addSkillMod('expertise_harvester_collection_increase', 10)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_harvester_collection_2')
-
- actor.removeSkillMod('expertise_harvester_collection_increase', 10)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_harvester_collection_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_harvester_collection_2")
return
diff --git a/scripts/expertise/expertise_trader_harvester_energy_1.py b/scripts/expertise/expertise_trader_harvester_energy_1.py
index b0a7f738..ef79a694 100644
--- a/scripts/expertise/expertise_trader_harvester_energy_1.py
+++ b/scripts/expertise/expertise_trader_harvester_energy_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_harvester_energy_1')
-
- actor.addSkillMod('expertise_harvester_energy_decrease', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_harvester_energy_1')
-
- actor.removeSkillMod('expertise_harvester_energy_decrease', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_harvester_energy_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_harvester_energy_1")
return
diff --git a/scripts/expertise/expertise_trader_harvester_energy_2.py b/scripts/expertise/expertise_trader_harvester_energy_2.py
index d6822bed..6ae294a9 100644
--- a/scripts/expertise/expertise_trader_harvester_energy_2.py
+++ b/scripts/expertise/expertise_trader_harvester_energy_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_harvester_energy_2')
-
- actor.addSkillMod('expertise_harvester_energy_decrease', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_harvester_energy_2')
-
- actor.removeSkillMod('expertise_harvester_energy_decrease', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_harvester_energy_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_harvester_energy_2")
return
diff --git a/scripts/expertise/expertise_trader_harvester_energy_3.py b/scripts/expertise/expertise_trader_harvester_energy_3.py
index 35e85782..247b53c3 100644
--- a/scripts/expertise/expertise_trader_harvester_energy_3.py
+++ b/scripts/expertise/expertise_trader_harvester_energy_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_harvester_energy_3')
-
- actor.addSkillMod('expertise_harvester_energy_decrease', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_harvester_energy_3')
-
- actor.removeSkillMod('expertise_harvester_energy_decrease', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_harvester_energy_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_harvester_energy_3")
return
diff --git a/scripts/expertise/expertise_trader_harvester_energy_4.py b/scripts/expertise/expertise_trader_harvester_energy_4.py
index f7132f84..8d6225be 100644
--- a/scripts/expertise/expertise_trader_harvester_energy_4.py
+++ b/scripts/expertise/expertise_trader_harvester_energy_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_harvester_energy_4')
-
- actor.addSkillMod('expertise_harvester_energy_decrease', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_harvester_energy_4')
-
- actor.removeSkillMod('expertise_harvester_energy_decrease', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_harvester_energy_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_harvester_energy_4")
return
diff --git a/scripts/expertise/expertise_trader_harvester_maintenance_1.py b/scripts/expertise/expertise_trader_harvester_maintenance_1.py
index 0dbf85ca..da891720 100644
--- a/scripts/expertise/expertise_trader_harvester_maintenance_1.py
+++ b/scripts/expertise/expertise_trader_harvester_maintenance_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_harvester_maintenance_1')
-
- actor.addSkillMod('expertise_harvester_maintenance_decrease', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_harvester_maintenance_1')
-
- actor.removeSkillMod('expertise_harvester_maintenance_decrease', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_harvester_maintenance_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_harvester_maintenance_1")
return
diff --git a/scripts/expertise/expertise_trader_harvester_maintenance_2.py b/scripts/expertise/expertise_trader_harvester_maintenance_2.py
index e581d20d..fd1f96cd 100644
--- a/scripts/expertise/expertise_trader_harvester_maintenance_2.py
+++ b/scripts/expertise/expertise_trader_harvester_maintenance_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_harvester_maintenance_2')
-
- actor.addSkillMod('expertise_harvester_maintenance_decrease', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_harvester_maintenance_2')
-
- actor.removeSkillMod('expertise_harvester_maintenance_decrease', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_harvester_maintenance_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_harvester_maintenance_2")
return
diff --git a/scripts/expertise/expertise_trader_harvester_maintenance_3.py b/scripts/expertise/expertise_trader_harvester_maintenance_3.py
index 85c77180..d1d62f39 100644
--- a/scripts/expertise/expertise_trader_harvester_maintenance_3.py
+++ b/scripts/expertise/expertise_trader_harvester_maintenance_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_harvester_maintenance_3')
-
- actor.addSkillMod('expertise_harvester_maintenance_decrease', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_harvester_maintenance_3')
-
- actor.removeSkillMod('expertise_harvester_maintenance_decrease', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_harvester_maintenance_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_harvester_maintenance_3")
return
diff --git a/scripts/expertise/expertise_trader_harvester_maintenance_4.py b/scripts/expertise/expertise_trader_harvester_maintenance_4.py
index e04f5f73..54e4b04e 100644
--- a/scripts/expertise/expertise_trader_harvester_maintenance_4.py
+++ b/scripts/expertise/expertise_trader_harvester_maintenance_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_harvester_maintenance_4')
-
- actor.addSkillMod('expertise_harvester_maintenance_decrease', 4)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_harvester_maintenance_4')
-
- actor.removeSkillMod('expertise_harvester_maintenance_decrease', 4)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_harvester_maintenance_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_harvester_maintenance_4")
return
diff --git a/scripts/expertise/expertise_trader_harvester_storage_1.py b/scripts/expertise/expertise_trader_harvester_storage_1.py
index ad6c85ee..a1a9c7c8 100644
--- a/scripts/expertise/expertise_trader_harvester_storage_1.py
+++ b/scripts/expertise/expertise_trader_harvester_storage_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_harvester_storage_1')
-
- actor.addSkillMod('expertise_havester_storage_increase', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_harvester_storage_1')
-
- actor.removeSkillMod('expertise_havester_storage_increase', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_harvester_storage_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_harvester_storage_1")
return
diff --git a/scripts/expertise/expertise_trader_harvester_storage_2.py b/scripts/expertise/expertise_trader_harvester_storage_2.py
index 9ac213e9..4f4dc914 100644
--- a/scripts/expertise/expertise_trader_harvester_storage_2.py
+++ b/scripts/expertise/expertise_trader_harvester_storage_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_harvester_storage_2')
-
- actor.addSkillMod('expertise_havester_storage_increase', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_harvester_storage_2')
-
- actor.removeSkillMod('expertise_havester_storage_increase', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_harvester_storage_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_harvester_storage_2")
return
diff --git a/scripts/expertise/expertise_trader_harvester_storage_3.py b/scripts/expertise/expertise_trader_harvester_storage_3.py
index 1c2abe57..d0c04a3d 100644
--- a/scripts/expertise/expertise_trader_harvester_storage_3.py
+++ b/scripts/expertise/expertise_trader_harvester_storage_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_harvester_storage_3')
-
- actor.addSkillMod('expertise_havester_storage_increase', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_harvester_storage_3')
-
- actor.removeSkillMod('expertise_havester_storage_increase', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_harvester_storage_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_harvester_storage_3")
return
diff --git a/scripts/expertise/expertise_trader_harvester_storage_4.py b/scripts/expertise/expertise_trader_harvester_storage_4.py
index 9abc452b..6e2b769b 100644
--- a/scripts/expertise/expertise_trader_harvester_storage_4.py
+++ b/scripts/expertise/expertise_trader_harvester_storage_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_harvester_storage_4')
-
- actor.addSkillMod('expertise_havester_storage_increase', 3)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_harvester_storage_4')
-
- actor.removeSkillMod('expertise_havester_storage_increase', 3)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_harvester_storage_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_harvester_storage_4")
return
diff --git a/scripts/expertise/expertise_trader_personnel_management_1.py b/scripts/expertise/expertise_trader_personnel_management_1.py
index 9e618df1..e44aba53 100644
--- a/scripts/expertise/expertise_trader_personnel_management_1.py
+++ b/scripts/expertise/expertise_trader_personnel_management_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_personnel_management_1')
-
- actor.addSkillMod('manage_vendor', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_personnel_management_1')
-
- actor.removeSkillMod('manage_vendor', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_personnel_management_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_personnel_management_1")
return
diff --git a/scripts/expertise/expertise_trader_personnel_management_2.py b/scripts/expertise/expertise_trader_personnel_management_2.py
index 465e9b8e..064d6415 100644
--- a/scripts/expertise/expertise_trader_personnel_management_2.py
+++ b/scripts/expertise/expertise_trader_personnel_management_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_personnel_management_2')
-
- actor.addSkillMod('manage_vendor', 1)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_personnel_management_2')
-
- actor.removeSkillMod('manage_vendor', 1)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_personnel_management_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_personnel_management_2")
return
diff --git a/scripts/expertise/expertise_trader_reverse_engineering_1.py b/scripts/expertise/expertise_trader_reverse_engineering_1.py
index 6c6a1599..26f209bc 100644
--- a/scripts/expertise/expertise_trader_reverse_engineering_1.py
+++ b/scripts/expertise/expertise_trader_reverse_engineering_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_reverse_engineering_1')
-
- actor.addSkillMod('expertise_reverse_engineering_bonus', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_reverse_engineering_1')
-
- actor.removeSkillMod('expertise_reverse_engineering_bonus', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_reverse_engineering_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_reverse_engineering_1")
return
diff --git a/scripts/expertise/expertise_trader_reverse_engineering_2.py b/scripts/expertise/expertise_trader_reverse_engineering_2.py
index a0716403..2192e020 100644
--- a/scripts/expertise/expertise_trader_reverse_engineering_2.py
+++ b/scripts/expertise/expertise_trader_reverse_engineering_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_reverse_engineering_2')
-
- actor.addSkillMod('expertise_reverse_engineering_bonus', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_reverse_engineering_2')
-
- actor.removeSkillMod('expertise_reverse_engineering_bonus', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_reverse_engineering_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_reverse_engineering_2")
return
diff --git a/scripts/expertise/expertise_trader_sampling_collection_1.py b/scripts/expertise/expertise_trader_sampling_collection_1.py
index cb6861b2..4935bf9d 100644
--- a/scripts/expertise/expertise_trader_sampling_collection_1.py
+++ b/scripts/expertise/expertise_trader_sampling_collection_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_sampling_collection_1')
-
- actor.addSkillMod('expertise_resource_sampling_increase', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_sampling_collection_1')
-
- actor.removeSkillMod('expertise_resource_sampling_increase', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_sampling_collection_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_sampling_collection_1")
return
diff --git a/scripts/expertise/expertise_trader_sampling_collection_2.py b/scripts/expertise/expertise_trader_sampling_collection_2.py
index f1c55a3d..1fa225fc 100644
--- a/scripts/expertise/expertise_trader_sampling_collection_2.py
+++ b/scripts/expertise/expertise_trader_sampling_collection_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_sampling_collection_2')
-
- actor.addSkillMod('expertise_resource_sampling_increase', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_sampling_collection_2')
-
- actor.removeSkillMod('expertise_resource_sampling_increase', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_sampling_collection_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_sampling_collection_2")
return
diff --git a/scripts/expertise/expertise_trader_sampling_collection_3.py b/scripts/expertise/expertise_trader_sampling_collection_3.py
index b6a31585..9a7a1174 100644
--- a/scripts/expertise/expertise_trader_sampling_collection_3.py
+++ b/scripts/expertise/expertise_trader_sampling_collection_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_sampling_collection_3')
-
- actor.addSkillMod('expertise_resource_sampling_increase', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_sampling_collection_3')
-
- actor.removeSkillMod('expertise_resource_sampling_increase', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_sampling_collection_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_sampling_collection_3")
return
diff --git a/scripts/expertise/expertise_trader_sampling_collection_4.py b/scripts/expertise/expertise_trader_sampling_collection_4.py
index 08805c30..158ca5da 100644
--- a/scripts/expertise/expertise_trader_sampling_collection_4.py
+++ b/scripts/expertise/expertise_trader_sampling_collection_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_sampling_collection_4')
-
- actor.addSkillMod('expertise_resource_sampling_increase', 25)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_sampling_collection_4')
-
- actor.removeSkillMod('expertise_resource_sampling_increase', 25)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_sampling_collection_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_sampling_collection_4")
return
diff --git a/scripts/expertise/expertise_trader_sampling_efficiency_1.py b/scripts/expertise/expertise_trader_sampling_efficiency_1.py
index 0722f5bb..2f4c90f2 100644
--- a/scripts/expertise/expertise_trader_sampling_efficiency_1.py
+++ b/scripts/expertise/expertise_trader_sampling_efficiency_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_sampling_efficiency_1')
-
- actor.addSkillMod('expertise_resource_sampling_time_decrease', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_sampling_efficiency_1')
-
- actor.removeSkillMod('expertise_resource_sampling_time_decrease', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_sampling_efficiency_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_sampling_efficiency_1")
return
diff --git a/scripts/expertise/expertise_trader_sampling_efficiency_2.py b/scripts/expertise/expertise_trader_sampling_efficiency_2.py
index c9043c3f..f197eff0 100644
--- a/scripts/expertise/expertise_trader_sampling_efficiency_2.py
+++ b/scripts/expertise/expertise_trader_sampling_efficiency_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_sampling_efficiency_2')
-
- actor.addSkillMod('expertise_resource_sampling_time_decrease', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_sampling_efficiency_2')
-
- actor.removeSkillMod('expertise_resource_sampling_time_decrease', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_sampling_efficiency_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_sampling_efficiency_2")
return
diff --git a/scripts/expertise/expertise_trader_sampling_efficiency_3.py b/scripts/expertise/expertise_trader_sampling_efficiency_3.py
index 2d3d621c..cf2e5c0c 100644
--- a/scripts/expertise/expertise_trader_sampling_efficiency_3.py
+++ b/scripts/expertise/expertise_trader_sampling_efficiency_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_sampling_efficiency_3')
-
- actor.addSkillMod('expertise_resource_sampling_time_decrease', 5)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_sampling_efficiency_3')
-
- actor.removeSkillMod('expertise_resource_sampling_time_decrease', 5)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_sampling_efficiency_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_sampling_efficiency_3")
return
diff --git a/scripts/expertise/expertise_trader_warehousing_1.py b/scripts/expertise/expertise_trader_warehousing_1.py
index c865daf6..9ca8b894 100644
--- a/scripts/expertise/expertise_trader_warehousing_1.py
+++ b/scripts/expertise/expertise_trader_warehousing_1.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_warehousing_1')
-
- actor.addSkillMod('vendor_item_limit', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_warehousing_1')
-
- actor.removeSkillMod('vendor_item_limit', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_trader_warehousing_1")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_trader_warehousing_1")
return
diff --git a/scripts/expertise/expertise_trader_warehousing_2.py b/scripts/expertise/expertise_trader_warehousing_2.py
index 99f6db9d..5541c71e 100644
--- a/scripts/expertise/expertise_trader_warehousing_2.py
+++ b/scripts/expertise/expertise_trader_warehousing_2.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_warehousing_2')
-
- actor.addSkillMod('vendor_item_limit', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_warehousing_2')
-
- actor.removeSkillMod('vendor_item_limit', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_trader_warehousing_2")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_trader_warehousing_2")
return
diff --git a/scripts/expertise/expertise_trader_warehousing_3.py b/scripts/expertise/expertise_trader_warehousing_3.py
index 19d00373..eb1dc350 100644
--- a/scripts/expertise/expertise_trader_warehousing_3.py
+++ b/scripts/expertise/expertise_trader_warehousing_3.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_warehousing_3')
-
- actor.addSkillMod('vendor_item_limit', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_warehousing_3')
-
- actor.removeSkillMod('vendor_item_limit', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_trader_warehousing_3")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_trader_warehousing_3")
return
diff --git a/scripts/expertise/expertise_trader_warehousing_4.py b/scripts/expertise/expertise_trader_warehousing_4.py
index cb2f936c..96495edd 100644
--- a/scripts/expertise/expertise_trader_warehousing_4.py
+++ b/scripts/expertise/expertise_trader_warehousing_4.py
@@ -1,48 +1,9 @@
import sys
-def addExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.addSkill('expertise_trader_warehousing_4')
-
- actor.addSkillMod('vendor_item_limit', 50)
-
- addAbilities(core, actor, player)
-
- return
-
-def removeExpertisePoint(core, actor):
-
- player = actor.getSlottedObject('ghost')
-
- if not player:
- return
-
- if not player.getProfession() == 'trader_1a':
- return
-
- actor.removeSkill('expertise_trader_warehousing_4')
-
- actor.removeSkillMod('vendor_item_limit', 50)
-
- removeAbilities(core, actor, player)
-
- return
-
-# this checks what abilities the player gets by level, need to also call this on level-up
def addAbilities(core, actor, player):
-
-
+ actor.addAbility("expertise_trader_trader_warehousing_4")
return
def removeAbilities(core, actor, player):
-
-
+ actor.removeAbility("expertise_trader_trader_warehousing_4")
return
diff --git a/scripts/faction/aakuans.py b/scripts/faction/aakuans.py
new file mode 100644
index 00000000..a8fc0c39
--- /dev/null
+++ b/scripts/faction/aakuans.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'fed_dub' or enemy == 'binayre' or enemy == 'liberation_party':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/afarathu.py b/scripts/faction/afarathu.py
new file mode 100644
index 00000000..80a24805
--- /dev/null
+++ b/scripts/faction/afarathu.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'corsec':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/alkhara.py b/scripts/faction/alkhara.py
new file mode 100644
index 00000000..3553adcd
--- /dev/null
+++ b/scripts/faction/alkhara.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'tusken_raider':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/bandit.py b/scripts/faction/bandit.py
new file mode 100644
index 00000000..bd97f757
--- /dev/null
+++ b/scripts/faction/bandit.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'townsperson':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/beldonnas_league.py b/scripts/faction/beldonnas_league.py
new file mode 100644
index 00000000..c15dab6d
--- /dev/null
+++ b/scripts/faction/beldonnas_league.py
@@ -0,0 +1,11 @@
+import sys
+
+def isAlly(ally):
+ if ally == 'corsec':
+ return 1
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'followers_of_lord_nyax' or enemy == 'lost_aqualish':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/binayre.py b/scripts/faction/binayre.py
new file mode 100644
index 00000000..5eb7703b
--- /dev/null
+++ b/scripts/faction/binayre.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'fed_dub' or enemy == 'aakuans' or enemy == 'corsec':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/bloodrazor.py b/scripts/faction/bloodrazor.py
new file mode 100644
index 00000000..78220da0
--- /dev/null
+++ b/scripts/faction/bloodrazor.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'canyon_corsair' or enemy == 'nym':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/borvo.py b/scripts/faction/borvo.py
new file mode 100644
index 00000000..1dfa01f8
--- /dev/null
+++ b/scripts/faction/borvo.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'gungan' or enemy == 'trade_federation' or enemy == 'jabba':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/canyon_corsair.py b/scripts/faction/canyon_corsair.py
new file mode 100644
index 00000000..f978debe
--- /dev/null
+++ b/scripts/faction/canyon_corsair.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'bloodrazor' or enemy == 'nym':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/cobral.py b/scripts/faction/cobral.py
new file mode 100644
index 00000000..139fe6a1
--- /dev/null
+++ b/scripts/faction/cobral.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'restuss':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/cor_swoop.py b/scripts/faction/cor_swoop.py
new file mode 100644
index 00000000..7d2ffab5
--- /dev/null
+++ b/scripts/faction/cor_swoop.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'smashball':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/corsec.py b/scripts/faction/corsec.py
new file mode 100644
index 00000000..30ca26bf
--- /dev/null
+++ b/scripts/faction/corsec.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'afarathu' or enemy == 'followers_of_lord_nyax' or enemy == 'beldonnas_league' or enemy == 'monumenter' or enemy == 'rogue_corsec' or enemy == 'lost_aqualish':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/dantari_raiders.py b/scripts/faction/dantari_raiders.py
new file mode 100644
index 00000000..f1dd456b
--- /dev/null
+++ b/scripts/faction/dantari_raiders.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'kunga_tribe' or enemy == 'mokk_tribe' or enemy == 'janta_tribe':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/desert_demon.py b/scripts/faction/desert_demon.py
new file mode 100644
index 00000000..9dd1a4d4
--- /dev/null
+++ b/scripts/faction/desert_demon.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'swoop':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/donkuwah_tribe.py b/scripts/faction/donkuwah_tribe.py
new file mode 100644
index 00000000..6db0ca51
--- /dev/null
+++ b/scripts/faction/donkuwah_tribe.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'gondula_tribe' or enemy == 'panshee_tribe':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/drall.py b/scripts/faction/drall.py
new file mode 100644
index 00000000..5059caaf
--- /dev/null
+++ b/scripts/faction/drall.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'corsec' or enemy == 'fed_dub':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/endor_marauder.py b/scripts/faction/endor_marauder.py
new file mode 100644
index 00000000..6db0ca51
--- /dev/null
+++ b/scripts/faction/endor_marauder.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'gondula_tribe' or enemy == 'panshee_tribe':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/fed_dub.py b/scripts/faction/fed_dub.py
new file mode 100644
index 00000000..20a018fb
--- /dev/null
+++ b/scripts/faction/fed_dub.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'liberation_party' or enemy == 'binayre' or enemy == 'lost_aqualish' or enemy == 'drall':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/flail.py b/scripts/faction/flail.py
new file mode 100644
index 00000000..37a3ff1d
--- /dev/null
+++ b/scripts/faction/flail.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'hidden_daggers':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/followers_of_lord_nyax.py b/scripts/faction/followers_of_lord_nyax.py
new file mode 100644
index 00000000..35c07b91
--- /dev/null
+++ b/scripts/faction/followers_of_lord_nyax.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'corsec' or enemy == 'beldonnas_league':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/forest_kerritamba.py b/scripts/faction/forest_kerritamba.py
new file mode 100644
index 00000000..1213cf20
--- /dev/null
+++ b/scripts/faction/forest_kerritamba.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'forest_outcast':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/forest_outcast.py b/scripts/faction/forest_outcast.py
new file mode 100644
index 00000000..05faa8d3
--- /dev/null
+++ b/scripts/faction/forest_outcast.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'forest_kerritamba':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/fs_villager.py b/scripts/faction/fs_villager.py
new file mode 100644
index 00000000..0fd5d988
--- /dev/null
+++ b/scripts/faction/fs_villager.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'sith_shadow':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/garyn.py b/scripts/faction/garyn.py
new file mode 100644
index 00000000..139fe6a1
--- /dev/null
+++ b/scripts/faction/garyn.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'restuss':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/gondula_tribe.py b/scripts/faction/gondula_tribe.py
new file mode 100644
index 00000000..c0078e6a
--- /dev/null
+++ b/scripts/faction/gondula_tribe.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'donkuwah_tribe' or enemy == 'korga_tribe' or enemy == 'panshee_tribe' or enemy == 'pubam' or enemy == 'endor_marauder':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/gungan.py b/scripts/faction/gungan.py
new file mode 100644
index 00000000..1f9355e5
--- /dev/null
+++ b/scripts/faction/gungan.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'plasma_thief' or enemy == 'swamp_rat' or enemy == 'borvo':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/hidden_daggers.py b/scripts/faction/hidden_daggers.py
new file mode 100644
index 00000000..34c20129
--- /dev/null
+++ b/scripts/faction/hidden_daggers.py
@@ -0,0 +1,11 @@
+import sys
+
+def isAlly(ally):
+ if ally == 'rogue_corsec':
+ return 1
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'corsec' or enemy == 'beldonnas_league' or enemy == 'flail':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/hutt.py b/scripts/faction/hutt.py
new file mode 100644
index 00000000..0d468932
--- /dev/null
+++ b/scripts/faction/hutt.py
@@ -0,0 +1,11 @@
+import sys
+
+def isAlly(ally):
+ if ally == 'panshee_tribe':
+ return 1
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'naboo_security_force' or enemy == 'nym' or enemy == 'imperial' or enemy == 'jabba' or enemy == 'borvo' or enemy == 'corsec' or enemy == 'narmle':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/imperial.py b/scripts/faction/imperial.py
new file mode 100644
index 00000000..b5bc8cc0
--- /dev/null
+++ b/scripts/faction/imperial.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'rebel':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/jabba.py b/scripts/faction/jabba.py
new file mode 100644
index 00000000..5840595b
--- /dev/null
+++ b/scripts/faction/jabba.py
@@ -0,0 +1,11 @@
+import sys
+
+def isAlly(ally):
+ if ally == 'hutt':
+ return 1
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'valarian' or enemy == 'borvo':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/janta_tribe.py b/scripts/faction/janta_tribe.py
new file mode 100644
index 00000000..b446a0a0
--- /dev/null
+++ b/scripts/faction/janta_tribe.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'kunga_tribe' or enemy == 'dantari_raiders':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/jawa.py b/scripts/faction/jawa.py
new file mode 100644
index 00000000..3553adcd
--- /dev/null
+++ b/scripts/faction/jawa.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'tusken_raider':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/kobola.py b/scripts/faction/kobola.py
new file mode 100644
index 00000000..8befaec5
--- /dev/null
+++ b/scripts/faction/kobola.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'narmle' or enemy == 'spice_collective':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/korga_tribe.py b/scripts/faction/korga_tribe.py
new file mode 100644
index 00000000..6db0ca51
--- /dev/null
+++ b/scripts/faction/korga_tribe.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'gondula_tribe' or enemy == 'panshee_tribe':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/kunga_tribe.py b/scripts/faction/kunga_tribe.py
new file mode 100644
index 00000000..52e241cb
--- /dev/null
+++ b/scripts/faction/kunga_tribe.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'mokk_tribe' or enemy == 'dantari_raiders':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/liberation_party.py b/scripts/faction/liberation_party.py
new file mode 100644
index 00000000..2fff2b6f
--- /dev/null
+++ b/scripts/faction/liberation_party.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'fed_dub' or enemy == 'corsec':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/lok_mercenaries.py b/scripts/faction/lok_mercenaries.py
new file mode 100644
index 00000000..ebf10bf9
--- /dev/null
+++ b/scripts/faction/lok_mercenaries.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'bloodrazor' or enemy == 'canyon_corsair':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/lost_aqualish.py b/scripts/faction/lost_aqualish.py
new file mode 100644
index 00000000..9aef6e55
--- /dev/null
+++ b/scripts/faction/lost_aqualish.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'beldonnas_league' or enemy == 'fed_dub' or enemy == 'corsec':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/meatlump.py b/scripts/faction/meatlump.py
new file mode 100644
index 00000000..3e432825
--- /dev/null
+++ b/scripts/faction/meatlump.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'corsec' or enemy == 'rogue_corsec' or enemy == 'beldonnas_league':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/mokk_tribe.py b/scripts/faction/mokk_tribe.py
new file mode 100644
index 00000000..93e05b64
--- /dev/null
+++ b/scripts/faction/mokk_tribe.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'janta_tribe' or enemy == 'dantari_raiders':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/monumenter.py b/scripts/faction/monumenter.py
new file mode 100644
index 00000000..35c07b91
--- /dev/null
+++ b/scripts/faction/monumenter.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'corsec' or enemy == 'beldonnas_league':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/mtn_clan.py b/scripts/faction/mtn_clan.py
new file mode 100644
index 00000000..e2b7c145
--- /dev/null
+++ b/scripts/faction/mtn_clan.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'nightsister':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/naboo.py b/scripts/faction/naboo.py
new file mode 100644
index 00000000..22519151
--- /dev/null
+++ b/scripts/faction/naboo.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'borvo':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/naboo_pirate.py b/scripts/faction/naboo_pirate.py
new file mode 100644
index 00000000..d409c4ff
--- /dev/null
+++ b/scripts/faction/naboo_pirate.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'naboo_security_force':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/naboo_security_force.py b/scripts/faction/naboo_security_force.py
new file mode 100644
index 00000000..ec32a708
--- /dev/null
+++ b/scripts/faction/naboo_security_force.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'borvo' or enemy == 'naboo_pirate' or enemy == 'plasma_thief' or enemy == 'swamp_rat' or enemy == 'trade_federation':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/narmle.py b/scripts/faction/narmle.py
new file mode 100644
index 00000000..3188e87c
--- /dev/null
+++ b/scripts/faction/narmle.py
@@ -0,0 +1,11 @@
+import sys
+
+def isAlly(ally):
+ if ally == 'restuss':
+ return 1
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'narmle' or enemy == 'spice_collective' or enemy == 'kobola':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/nightsister.py b/scripts/faction/nightsister.py
new file mode 100644
index 00000000..cf1f8c4e
--- /dev/null
+++ b/scripts/faction/nightsister.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'mtn_clan' or enemy == 'imperial':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/nym.py b/scripts/faction/nym.py
new file mode 100644
index 00000000..ebf10bf9
--- /dev/null
+++ b/scripts/faction/nym.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'bloodrazor' or enemy == 'canyon_corsair':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/olag_greck.py b/scripts/faction/olag_greck.py
new file mode 100644
index 00000000..35c07b91
--- /dev/null
+++ b/scripts/faction/olag_greck.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'corsec' or enemy == 'beldonnas_league':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/panshee_tribe.py b/scripts/faction/panshee_tribe.py
new file mode 100644
index 00000000..6ea96a0d
--- /dev/null
+++ b/scripts/faction/panshee_tribe.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'donkuwah_tribe' or enemy == 'korga_tribe' or enemy == 'gondula_tribe' or enemy == 'pubam' or enemy == 'endor_marauder':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/pirate.py b/scripts/faction/pirate.py
new file mode 100644
index 00000000..a8fc0c39
--- /dev/null
+++ b/scripts/faction/pirate.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'fed_dub' or enemy == 'binayre' or enemy == 'liberation_party':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/plasma_thief.py b/scripts/faction/plasma_thief.py
new file mode 100644
index 00000000..89a851e9
--- /dev/null
+++ b/scripts/faction/plasma_thief.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'gungan':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/pubam.py b/scripts/faction/pubam.py
new file mode 100644
index 00000000..6db0ca51
--- /dev/null
+++ b/scripts/faction/pubam.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'gondula_tribe' or enemy == 'panshee_tribe':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/rebel.py b/scripts/faction/rebel.py
new file mode 100644
index 00000000..0d685a6a
--- /dev/null
+++ b/scripts/faction/rebel.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'imperial':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/restuss.py b/scripts/faction/restuss.py
new file mode 100644
index 00000000..9ce8318a
--- /dev/null
+++ b/scripts/faction/restuss.py
@@ -0,0 +1,11 @@
+import sys
+
+def isAlly(ally):
+ if ally == 'narmle':
+ return 1
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'garyn' or enemy == 'cobral':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/rogue_corsec.py b/scripts/faction/rogue_corsec.py
new file mode 100644
index 00000000..38fd4f3a
--- /dev/null
+++ b/scripts/faction/rogue_corsec.py
@@ -0,0 +1,11 @@
+import sys
+
+def isAlly(ally):
+ if ally == 'hidden_daggers':
+ return 1
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'corsec':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/rorgungan.py b/scripts/faction/rorgungan.py
new file mode 100644
index 00000000..f39573c6
--- /dev/null
+++ b/scripts/faction/rorgungan.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'spice_collective':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/sif.py b/scripts/faction/sif.py
new file mode 100644
index 00000000..04d90a0e
--- /dev/null
+++ b/scripts/faction/sif.py
@@ -0,0 +1,11 @@
+import sys
+
+def isAlly(ally):
+ if ally == 'hutt':
+ return 1
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'rebel' or enemy == 'imperial':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/sith_shadow.py b/scripts/faction/sith_shadow.py
new file mode 100644
index 00000000..e89c90da
--- /dev/null
+++ b/scripts/faction/sith_shadow.py
@@ -0,0 +1,11 @@
+import sys
+
+def isAlly(ally):
+ if ally == 'rebel' or ally == 'imperial':
+ return 1
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'fs_villager':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/smashball.py b/scripts/faction/smashball.py
new file mode 100644
index 00000000..89e21659
--- /dev/null
+++ b/scripts/faction/smashball.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'corsec' or enemy == 'cor_swoop':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/spice_collective.py b/scripts/faction/spice_collective.py
new file mode 100644
index 00000000..a95f585e
--- /dev/null
+++ b/scripts/faction/spice_collective.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'narmle' or enemy == 'rorgungan' or enemy == 'kobola':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/spider_nightsister.py b/scripts/faction/spider_nightsister.py
new file mode 100644
index 00000000..90a4f892
--- /dev/null
+++ b/scripts/faction/spider_nightsister.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'mtn_clan':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/swamp_rat.py b/scripts/faction/swamp_rat.py
new file mode 100644
index 00000000..89a851e9
--- /dev/null
+++ b/scripts/faction/swamp_rat.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'gungan':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/swoop.py b/scripts/faction/swoop.py
new file mode 100644
index 00000000..24e9984a
--- /dev/null
+++ b/scripts/faction/swoop.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'desert_demon':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/thug.py b/scripts/faction/thug.py
new file mode 100644
index 00000000..bd97f757
--- /dev/null
+++ b/scripts/faction/thug.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'townsperson':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/townsperson.py b/scripts/faction/townsperson.py
new file mode 100644
index 00000000..e747a256
--- /dev/null
+++ b/scripts/faction/townsperson.py
@@ -0,0 +1,11 @@
+import sys
+
+def isAlly(ally):
+ if ally == 'rebel' or ally == 'imperial':
+ return 1
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'thug' or enemy == 'bandit':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/trade_federation.py b/scripts/faction/trade_federation.py
new file mode 100644
index 00000000..74674464
--- /dev/null
+++ b/scripts/faction/trade_federation.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'borvo' or enemy == 'naboo_security_force':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/tusken_raider.py b/scripts/faction/tusken_raider.py
new file mode 100644
index 00000000..4a81e25b
--- /dev/null
+++ b/scripts/faction/tusken_raider.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'jawa' or enemy == 'alkhara':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/valarian.py b/scripts/faction/valarian.py
new file mode 100644
index 00000000..9d5ef701
--- /dev/null
+++ b/scripts/faction/valarian.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'jabba':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/faction/yavin_scavenger.py b/scripts/faction/yavin_scavenger.py
new file mode 100644
index 00000000..0c95933c
--- /dev/null
+++ b/scripts/faction/yavin_scavenger.py
@@ -0,0 +1,9 @@
+import sys
+
+def isAlly(ally):
+ return 0
+
+def isEnemy(enemy):
+ if enemy == 'hutt' or enemy == 'jabba':
+ return 1
+ return 0
\ No newline at end of file
diff --git a/scripts/houses/player_cityhall_corellia_style_01.py b/scripts/houses/player_cityhall_corellia_style_01.py
new file mode 100644
index 00000000..ff396cb0
--- /dev/null
+++ b/scripts/houses/player_cityhall_corellia_style_01.py
@@ -0,0 +1,16 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/city_deed/shared_cityhall_corellia_deed.iff", "object/building/player/city/shared_cityhall_corellia.iff", 0)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(1, 2, 3))
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.setDefaultItemLimit(400)
+ houseTemplate.setBaseMaintenanceRate(308)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_cityhall_naboo_style_01.py b/scripts/houses/player_cityhall_naboo_style_01.py
new file mode 100644
index 00000000..8bb52c69
--- /dev/null
+++ b/scripts/houses/player_cityhall_naboo_style_01.py
@@ -0,0 +1,16 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/city_deed/shared_cityhall_naboo_deed.iff", "object/building/player/city/shared_cityhall_naboo.iff", 0)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(1, 2, 3))
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.setDefaultItemLimit(400)
+ houseTemplate.setBaseMaintenanceRate(308)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_cityhall_tatooine_style_01.py b/scripts/houses/player_cityhall_tatooine_style_01.py
new file mode 100644
index 00000000..766ed7cf
--- /dev/null
+++ b/scripts/houses/player_cityhall_tatooine_style_01.py
@@ -0,0 +1,16 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/city_deed/shared_cityhall_tatooine_deed.iff", "object/building/player/city/shared_cityhall_tatooine.iff", 0)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(1, 2, 3))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(400)
+ houseTemplate.setBaseMaintenanceRate(308)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_garden_tatooine_sml_01.py b/scripts/houses/player_garden_tatooine_sml_01.py
new file mode 100644
index 00000000..ed3b2981
--- /dev/null
+++ b/scripts/houses/player_garden_tatooine_sml_01.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/city_deed/shared_garden_tatooine_sml_01_deed.iff", "object/building/player/city/shared_garden_tatooine_sml_01.iff", 0)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(1, 2, 3))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(0)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_guildhall_corellia_style_01.py b/scripts/houses/player_guildhall_corellia_style_01.py
new file mode 100644
index 00000000..31cb89f8
--- /dev/null
+++ b/scripts/houses/player_guildhall_corellia_style_01.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/guild_deed/shared_corellia_guild_deed.iff", "object/building/player/shared_player_guildhall_corellia_style_01.iff", 5)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(6), float(3), float(18.4)))
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.setDefaultItemLimit(400)
+ houseTemplate.setBaseMaintenanceRate(100)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_guildhall_generic_style_01.py b/scripts/houses/player_guildhall_generic_style_01.py
new file mode 100644
index 00000000..a60c94d6
--- /dev/null
+++ b/scripts/houses/player_guildhall_generic_style_01.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/guild_deed/shared_generic_guild_deed.iff", "object/building/player/shared_player_guildhall_generic_style_01.iff", 5)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(6), float(3), float(18.4)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(400)
+ houseTemplate.setBaseMaintenanceRate(100)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_guildhall_naboo_style_01.py b/scripts/houses/player_guildhall_naboo_style_01.py
new file mode 100644
index 00000000..c9a2777e
--- /dev/null
+++ b/scripts/houses/player_guildhall_naboo_style_01.py
@@ -0,0 +1,16 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/guild_deed/shared_naboo_guild_deed.iff", "object/building/player/shared_player_guildhall_naboo_style_01.iff", 5)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(6), float(3), float(18.4)))
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.setDefaultItemLimit(400)
+ houseTemplate.setBaseMaintenanceRate(100)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_guildhall_tatooine_style_01.py b/scripts/houses/player_guildhall_tatooine_style_01.py
new file mode 100644
index 00000000..05a70c0c
--- /dev/null
+++ b/scripts/houses/player_guildhall_tatooine_style_01.py
@@ -0,0 +1,16 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/guild_deed/shared_tatooine_guild_deed.iff", "object/building/player/shared_player_guildhall_tatooine_style_01.iff", 5)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(6), float(3), float(18.4)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(400)
+ houseTemplate.setBaseMaintenanceRate(100)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_guildhall_tatooine_style_02.py b/scripts/houses/player_guildhall_tatooine_style_02.py
new file mode 100644
index 00000000..451bb05a
--- /dev/null
+++ b/scripts/houses/player_guildhall_tatooine_style_02.py
@@ -0,0 +1,16 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/guild_deed/shared_tatooine_guild_style_02_deed.iff", "object/building/player/shared_player_guildhall_tatooine_style_02.iff", 5)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(5.5), float(4), float(12.7)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(400)
+ houseTemplate.setBaseMaintenanceRate(100)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_atat.py b/scripts/houses/player_house_atat.py
new file mode 100644
index 00000000..1ff4e466
--- /dev/null
+++ b/scripts/houses/player_house_atat.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/tcg/series5/shared_structure_deed_player_house_atat.iff", "object/building/player/shared_player_house_atat.iff", 3)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-3.8), float(5.86), float(15.1)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(350)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_corellia_large_style_01.py b/scripts/houses/player_house_corellia_large_style_01.py
new file mode 100644
index 00000000..9c1382ce
--- /dev/null
+++ b/scripts/houses/player_house_corellia_large_style_01.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_corellia_house_large_deed.iff", "object/building/player/shared_player_house_corellia_large_style_01.iff", 5)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(6), float(3), float(13.4)))
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.setDefaultItemLimit(500)
+ houseTemplate.setBaseMaintenanceRate(26)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_corellia_large_style_02.py b/scripts/houses/player_house_corellia_large_style_02.py
new file mode 100644
index 00000000..7bc5f2da
--- /dev/null
+++ b/scripts/houses/player_house_corellia_large_style_02.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_corellia_house_large_style_02_deed.iff", "object/building/player/shared_player_house_generic_large_style_02.iff", 5)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-13.4), float(3), float(9.1)))
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.setDefaultItemLimit(500)
+ houseTemplate.setBaseMaintenanceRate(26)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_corellia_medium_style_01.py b/scripts/houses/player_house_corellia_medium_style_01.py
new file mode 100644
index 00000000..48167fda
--- /dev/null
+++ b/scripts/houses/player_house_corellia_medium_style_01.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_corellia_house_medium_deed.iff", "object/building/player/shared_player_house_corellia_medium_style_01.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(5.3),float(2.26),float(7.7)))
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(18)
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_corellia_medium_style_02.py b/scripts/houses/player_house_corellia_medium_style_02.py
new file mode 100644
index 00000000..41559ba0
--- /dev/null
+++ b/scripts/houses/player_house_corellia_medium_style_02.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_corellia_house_medium_style_02_deed.iff", "object/building/player/shared_player_house_corellia_medium_style_02.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(5.3), float(2.26), float(7.7)))
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(18)
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_corellia_small_style_01.py b/scripts/houses/player_house_corellia_small_style_01.py
new file mode 100644
index 00000000..96de8802
--- /dev/null
+++ b/scripts/houses/player_house_corellia_small_style_01.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_corellia_house_small_deed.iff", "object/building/player/shared_player_house_corellia_small_style_01.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-7.39), float(2.36), float(2)))
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_corellia_small_style_01_floorplan_02.py b/scripts/houses/player_house_corellia_small_style_01_floorplan_02.py
new file mode 100644
index 00000000..bf670367
--- /dev/null
+++ b/scripts/houses/player_house_corellia_small_style_01_floorplan_02.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_corellia_house_small_floor_02_deed.iff", "object/building/player/shared_player_house_corellia_small_style_01_floorplan_02.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-7.39), float(2.36), float(2)))
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_corellia_small_style_02.py b/scripts/houses/player_house_corellia_small_style_02.py
new file mode 100644
index 00000000..5baf48fd
--- /dev/null
+++ b/scripts/houses/player_house_corellia_small_style_02.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_corellia_house_small_style_02_deed.iff", "object/building/player/shared_player_house_corellia_small_style_02.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-1.9), float(2.86), float(8.35)))
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_corellia_small_style_02_floorplan_02.py b/scripts/houses/player_house_corellia_small_style_02_floorplan_02.py
new file mode 100644
index 00000000..914fa313
--- /dev/null
+++ b/scripts/houses/player_house_corellia_small_style_02_floorplan_02.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_corellia_house_small_style_02_floor_02_deed.iff", "object/building/player/shared_player_house_corellia_small_style_02_floorplan_02.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-1.9), float(2.86), float(8.35)))
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_generic_large_style_01.py b/scripts/houses/player_house_generic_large_style_01.py
new file mode 100644
index 00000000..aa933d9d
--- /dev/null
+++ b/scripts/houses/player_house_generic_large_style_01.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_generic_house_large_style_02_deed.iff", "object/building/player/shared_player_house_generic_large_style_02.iff", 5)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(6), float(3), float(13.4)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(500)
+ houseTemplate.setBaseMaintenanceRate(26)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_generic_large_style_02.py b/scripts/houses/player_house_generic_large_style_02.py
new file mode 100644
index 00000000..a64b27dc
--- /dev/null
+++ b/scripts/houses/player_house_generic_large_style_02.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_generic_house_large_deed.iff", "object/building/player/shared_player_house_generic_large_style_01.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-13.4), float(3), float(9.1)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(500)
+ houseTemplate.setBaseMaintenanceRate(26)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_generic_large_window_s01.py b/scripts/houses/player_house_generic_large_window_s01.py
new file mode 100644
index 00000000..031f8296
--- /dev/null
+++ b/scripts/houses/player_house_generic_large_window_s01.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_generic_house_large_window_s01_deed.iff", "object/building/player/shared_player_house_generic_large_window_s01.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-13.7), float(3), float(9.1)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(500)
+ houseTemplate.setBaseMaintenanceRate(26)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_generic_large_window_s02.py b/scripts/houses/player_house_generic_large_window_s02.py
new file mode 100644
index 00000000..d5919f4d
--- /dev/null
+++ b/scripts/houses/player_house_generic_large_window_s02.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_generic_house_large_window_s02_deed.iff", "object/building/player/shared_player_house_generic_large_window_s02.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(10.4), float(3), float(-11)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(500)
+ houseTemplate.setBaseMaintenanceRate(26)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_generic_medium_style_01.py b/scripts/houses/player_house_generic_medium_style_01.py
new file mode 100644
index 00000000..3d0beb4e
--- /dev/null
+++ b/scripts/houses/player_house_generic_medium_style_01.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_generic_house_medium_deed.iff", "object/building/player/shared_player_house_generic_medium_style_01.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(5.3),float(2.26),float(7.7)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(18)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_generic_medium_style_02.py b/scripts/houses/player_house_generic_medium_style_02.py
new file mode 100644
index 00000000..b8aa1bf6
--- /dev/null
+++ b/scripts/houses/player_house_generic_medium_style_02.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_generic_house_medium_style_02_deed.iff", "object/building/player/shared_player_house_generic_medium_style_02.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(5.3), float(2.26), float(7.7)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(18)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_generic_medium_windowed.py b/scripts/houses/player_house_generic_medium_windowed.py
new file mode 100644
index 00000000..9ddc528a
--- /dev/null
+++ b/scripts/houses/player_house_generic_medium_windowed.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_generic_house_medium_windowed_deed.iff", "object/building/player/shared_player_house_generic_medium_windowed.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(5.5), float(2.26), float(7.8)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(18)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_generic_medium_windowed_s02.py b/scripts/houses/player_house_generic_medium_windowed_s02.py
new file mode 100644
index 00000000..692f620b
--- /dev/null
+++ b/scripts/houses/player_house_generic_medium_windowed_s02.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_generic_house_medium_windowed_s02_deed.iff", "object/building/player/shared_player_house_generic_medium_windowed_s02.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(5.5), float(2.26), float(7.8)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(18)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_generic_small_style_01.py b/scripts/houses/player_house_generic_small_style_01.py
new file mode 100644
index 00000000..3c225c31
--- /dev/null
+++ b/scripts/houses/player_house_generic_small_style_01.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_generic_house_small_deed.iff", "object/building/player/shared_player_house_generic_small_style_01.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-7.39), float(2.36), float(2)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_generic_small_style_01_floorplan_02.py b/scripts/houses/player_house_generic_small_style_01_floorplan_02.py
new file mode 100644
index 00000000..e06a6316
--- /dev/null
+++ b/scripts/houses/player_house_generic_small_style_01_floorplan_02.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_generic_house_small_floor_02_deed.iff", "object/building/player/shared_player_house_generic_small_style_01_floorplan_02.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-7.39), float(2.36), float(2)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_generic_small_style_02.py b/scripts/houses/player_house_generic_small_style_02.py
new file mode 100644
index 00000000..c32a0b84
--- /dev/null
+++ b/scripts/houses/player_house_generic_small_style_02.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_generic_house_small_style_02_deed.iff", "object/building/player/shared_player_house_generic_small_style_02.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-1.9), float(2.86), float(8.35)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_generic_small_style_02_floorplan_02.py b/scripts/houses/player_house_generic_small_style_02_floorplan_02.py
new file mode 100644
index 00000000..a2ffe757
--- /dev/null
+++ b/scripts/houses/player_house_generic_small_style_02_floorplan_02.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_generic_house_small_style_02_floor_02_deed.iff", "object/building/player/shared_player_house_generic_small_style_02_floorplan_02.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-1.9), float(2.86), float(8.35)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_generic_small_window_style_03.py b/scripts/houses/player_house_generic_small_window_style_03.py
new file mode 100644
index 00000000..9adf8ff0
--- /dev/null
+++ b/scripts/houses/player_house_generic_small_window_style_03.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_generic_house_small_window_style_03_deed.iff", "object/building/player/shared_player_house_generic_small_window_style_03.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-6.6), float(2.36), float(6.3)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_generic_small_windowed.py b/scripts/houses/player_house_generic_small_windowed.py
new file mode 100644
index 00000000..71439b6a
--- /dev/null
+++ b/scripts/houses/player_house_generic_small_windowed.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_generic_house_small_window_deed.iff", "object/building/player/shared_player_house_generic_small_windowed.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-7.39), float(2.36), float(2)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_hangar.py b/scripts/houses/player_house_hangar.py
new file mode 100644
index 00000000..01373883
--- /dev/null
+++ b/scripts/houses/player_house_hangar.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/tcg/series5/shared_structure_deed_player_house_hangar.iff", "object/building/player/shared_player_house_hangar.iff", 3)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(9.2), float(2.86), float(0.8)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(350)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_jabbas_sail_barge.py b/scripts/houses/player_house_jabbas_sail_barge.py
new file mode 100644
index 00000000..c39e9c25
--- /dev/null
+++ b/scripts/houses/player_house_jabbas_sail_barge.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_jabbas_sail_barge_deed.iff", "object/building/player/shared_player_house_jabbas_sail_barge.iff", 3)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(0), float(2.86), float(-3.5)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(350)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_jedi_meditation_room.py b/scripts/houses/player_house_jedi_meditation_room.py
new file mode 100644
index 00000000..6ed97065
--- /dev/null
+++ b/scripts/houses/player_house_jedi_meditation_room.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/tcg/series3/shared_structure_deed_jedi_meditation_room_deed.iff", "object/building/player/shared_player_house_jedi_meditation_room.iff", 3)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(0), float(2.86), float(-3.5)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(350)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_mustafar_lg.py b/scripts/houses/player_house_mustafar_lg.py
new file mode 100644
index 00000000..891c9e09
--- /dev/null
+++ b/scripts/houses/player_house_mustafar_lg.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_mustafar_house_lg.iff", "object/building/player/shared_player_house_mustafar_lg.iff", 5)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(1.5), float(2.86), float(13.7)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_naboo_large_style_01.py b/scripts/houses/player_house_naboo_large_style_01.py
new file mode 100644
index 00000000..a75ee9c9
--- /dev/null
+++ b/scripts/houses/player_house_naboo_large_style_01.py
@@ -0,0 +1,16 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_naboo_house_large_deed.iff", "object/building/player/shared_player_house_naboo_large_style_01.iff", 5)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-7), float(3), float(-15.5)))
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.setDefaultItemLimit(500)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_naboo_medium_style_01.py b/scripts/houses/player_house_naboo_medium_style_01.py
new file mode 100644
index 00000000..c5cf6211
--- /dev/null
+++ b/scripts/houses/player_house_naboo_medium_style_01.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_naboo_house_medium_deed.iff", "object/building/player/shared_player_house_naboo_medium_style_01.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-2.2),float(3),float(-11.5)))
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(18)
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_naboo_small_style_01.py b/scripts/houses/player_house_naboo_small_style_01.py
new file mode 100644
index 00000000..7fdd3716
--- /dev/null
+++ b/scripts/houses/player_house_naboo_small_style_01.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_naboo_house_small_deed.iff", "object/building/player/shared_player_house_naboo_small_style_01.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-1.7),float(3),float(8.2)))
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(18)
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_naboo_small_style_02.py b/scripts/houses/player_house_naboo_small_style_02.py
new file mode 100644
index 00000000..05f46d81
--- /dev/null
+++ b/scripts/houses/player_house_naboo_small_style_02.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_naboo_house_small_style_02_deed.iff", "object/building/player/shared_player_house_naboo_small_style_02.iff", 1)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(8.4),float(3),float(7.2)))
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.setDefaultItemLimit(100)
+ houseTemplate.setBaseMaintenanceRate(18)
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_naboo_small_window_style_01.py b/scripts/houses/player_house_naboo_small_window_style_01.py
new file mode 100644
index 00000000..375af434
--- /dev/null
+++ b/scripts/houses/player_house_naboo_small_window_style_01.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_naboo_house_small_window_deed.iff", "object/building/player/shared_player_house_naboo_small_window_style_01.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-1.7),float(3),float(8.2)))
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(18)
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_sandcrawler.py b/scripts/houses/player_house_sandcrawler.py
new file mode 100644
index 00000000..3d33b10f
--- /dev/null
+++ b/scripts/houses/player_house_sandcrawler.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/saga_system/rewards/shared_structure_deed_player_house_sandcrawler.iff", "object/building/player/shared_player_house_sandcrawler.iff", 5)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-8.75), float(3.86), float(1)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(350)
+ houseTemplate.setBaseMaintenanceRate(26)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_sith_meditation_room.py b/scripts/houses/player_house_sith_meditation_room.py
new file mode 100644
index 00000000..e1e6a892
--- /dev/null
+++ b/scripts/houses/player_house_sith_meditation_room.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/tcg/series3/shared_structure_deed_sith_meditation_room_deed.iff", "object/building/player/shared_player_house_sith_meditation_room.iff", 3)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(3), float(2.86), float(5.7)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(350)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_tatooine_large_style_01.py b/scripts/houses/player_house_tatooine_large_style_01.py
new file mode 100644
index 00000000..37a9b894
--- /dev/null
+++ b/scripts/houses/player_house_tatooine_large_style_01.py
@@ -0,0 +1,16 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_tatooine_house_large_deed.iff", "object/building/player/shared_player_house_tatooine_large_style_01.iff", 5)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-3), float(3), float(15.8)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.setDefaultItemLimit(500)
+ houseTemplate.setBaseMaintenanceRate(26)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_tatooine_medium_style_01.py b/scripts/houses/player_house_tatooine_medium_style_01.py
new file mode 100644
index 00000000..959cbb7e
--- /dev/null
+++ b/scripts/houses/player_house_tatooine_medium_style_01.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_tatooine_house_medium_deed.iff", "object/building/player/shared_player_house_tatooine_medium_style_01.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(4.3),float(2.26),float(12.5)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(18)
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_tatooine_small_style_01.py b/scripts/houses/player_house_tatooine_small_style_01.py
new file mode 100644
index 00000000..1e2579c2
--- /dev/null
+++ b/scripts/houses/player_house_tatooine_small_style_01.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_tatooine_house_small_deed.iff", "object/building/player/shared_player_house_tatooine_small_style_01.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-1.7),float(3),float(7.9)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_tatooine_small_style_02.py b/scripts/houses/player_house_tatooine_small_style_02.py
new file mode 100644
index 00000000..8c953386
--- /dev/null
+++ b/scripts/houses/player_house_tatooine_small_style_02.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_tatooine_house_small_style_02_deed.iff", "object/building/player/shared_player_house_tatooine_small_style_02.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-1.7),float(3),float(8.2)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_tatooine_small_window_style_01.py b/scripts/houses/player_house_tatooine_small_window_style_01.py
new file mode 100644
index 00000000..1e2579c2
--- /dev/null
+++ b/scripts/houses/player_house_tatooine_small_window_style_01.py
@@ -0,0 +1,15 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_tatooine_house_small_deed.iff", "object/building/player/shared_player_house_tatooine_small_style_01.iff", 2)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(-1.7),float(3),float(7.9)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_house_tcg_8_bespin_house.py b/scripts/houses/player_house_tcg_8_bespin_house.py
new file mode 100644
index 00000000..2f37c85a
--- /dev/null
+++ b/scripts/houses/player_house_tcg_8_bespin_house.py
@@ -0,0 +1,20 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_player_house_tcg_8_bespin_house_deed.iff", "object/building/player/shared_player_house_tcg_8_bespin_house.iff", 3)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(0), float(2.86), float(-3.5)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(350)
+ houseTemplate.setBaseMaintenanceRate(8)
+
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_merchant_tent_style_01.py b/scripts/houses/player_merchant_tent_style_01.py
new file mode 100644
index 00000000..684cbcb6
--- /dev/null
+++ b/scripts/houses/player_merchant_tent_style_01.py
@@ -0,0 +1,19 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_merchant_tent_style_01_deed.iff", "object/building/player/shared_player_merchant_tent_style_01.iff", 1)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(3.5),float(-0.3),float(3.5)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_merchant_tent_style_02.py b/scripts/houses/player_merchant_tent_style_02.py
new file mode 100644
index 00000000..96668f8d
--- /dev/null
+++ b/scripts/houses/player_merchant_tent_style_02.py
@@ -0,0 +1,19 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_merchant_tent_style_02_deed.iff", "object/building/player/shared_player_merchant_tent_style_02.iff", 1)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(3.5),float(-0.3),float(3.5)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_merchant_tent_style_03.py b/scripts/houses/player_merchant_tent_style_03.py
new file mode 100644
index 00000000..abfa4196
--- /dev/null
+++ b/scripts/houses/player_merchant_tent_style_03.py
@@ -0,0 +1,19 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/player_house_deed/shared_merchant_tent_style_03_deed.iff", "object/building/player/shared_player_merchant_tent_style_03.iff", 1)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(3.5),float(-0.3),float(3.5)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.addPlaceablePlanet("corellia")
+ houseTemplate.addPlaceablePlanet("naboo")
+ houseTemplate.addPlaceablePlanet("talus")
+ houseTemplate.addPlaceablePlanet("rori")
+ houseTemplate.addPlaceablePlanet("dantooine")
+ houseTemplate.addPlaceablePlanet("lok")
+ houseTemplate.setDefaultItemLimit(200)
+ houseTemplate.setBaseMaintenanceRate(8)
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/houses/player_shuttleport_tatooine.py b/scripts/houses/player_shuttleport_tatooine.py
new file mode 100644
index 00000000..4d7e480f
--- /dev/null
+++ b/scripts/houses/player_shuttleport_tatooine.py
@@ -0,0 +1,12 @@
+import sys
+from services.housing import HouseTemplate
+from engine.resources.scene import Point3D
+
+def setup(housingTemplates):
+ houseTemplate = HouseTemplate("object/tangible/deed/city_deed/shared_shuttleport_tatooine_deed.iff", "object/building/tatooine/shared_shuttleport_tatooine.iff", 1)
+
+ houseTemplate.addBuildingSign("object/tangible/sign/player/shared_house_address.iff", Point3D(float(3.5),float(-0.3),float(3.5)))
+ houseTemplate.addPlaceablePlanet("tatooine")
+ houseTemplate.setDefaultItemLimit(0)
+ housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/instances/heroic_exar_kun.py b/scripts/instances/heroic_exar_kun.py
new file mode 100644
index 00000000..d961fee0
--- /dev/null
+++ b/scripts/instances/heroic_exar_kun.py
@@ -0,0 +1,53 @@
+import sys
+import services.InstanceService.Instance
+
+def getTerrain():
+ return 'terrain/dungeon1.trn'
+
+def getBuilding():
+ return 'object/building/heroic/shared_exar_kun_tomb.iff'
+
+def getCellId():
+ return 1
+
+def getSpawnPosition(position):
+ position.x = float(-11.918457)
+ position.y = float(0.601063)
+ position.z = float(-125.692871)
+ return
+
+def getDuration():
+ return 120
+
+# NK lockout time was 30 minutes. Most instances were 0 and got reset at 12AM PTC.
+def getLockoutTime():
+ return 0
+
+def getExitTerrain():
+ return 'terrain/yavin4.trn'
+
+def getExitPosition(position):
+ position.x = float(5097)
+ position.y = float(0)
+ position.z = float(5537)
+ return
+
+# Called on instance creation to spawn npcs and objects.
+def setup(core, instance):
+ return
+
+# Called when there is a new participant added to the instance.
+def add(core, instance, actor):
+ return
+
+# Called when a participant is removed from the instance.
+def remove(core, instance, actor):
+ return
+
+# Any operations that need to be carried out regularly
+def run(core, instance):
+ return
+
+# Called on instance destruction to destroy the instance.
+def destroy(core, instance):
+ return
\ No newline at end of file
diff --git a/scripts/instances/heroic_star_destroyer.py b/scripts/instances/heroic_star_destroyer.py
new file mode 100644
index 00000000..2109ea39
--- /dev/null
+++ b/scripts/instances/heroic_star_destroyer.py
@@ -0,0 +1,53 @@
+import sys
+import services.InstanceService.Instance
+
+def getTerrain():
+ return 'terrain/dungeon1.trn'
+
+def getBuilding():
+ return 'object/building/general/shared_space_dungeon_star_destroyer.iff'
+
+def getCellId():
+ return 36
+
+def getSpawnPosition(position):
+ position.x = float(0)
+ position.y = float(173.834625)
+ position.z = float(30)
+ return
+
+def getDuration():
+ return 120
+
+# NK lockout time was 30 minutes. Most instances were 0 and got reset at 12AM PTC.
+def getLockoutTime():
+ return 0
+
+def getExitTerrain():
+ return 'terrain/corellia.trn'
+
+def getExitPosition(position):
+ position.x = float(-131)
+ position.y = float(0)
+ position.z = float(-4723)
+ return
+
+# Called on instance creation to spawn npcs and objects.
+def setup(core, instance):
+ return
+
+# Called when there is a new participant added to the instance.
+def add(core, instance, actor):
+ return
+
+# Called when a participant is removed from the instance.
+def remove(core, instance, actor):
+ return
+
+# Any operations that need to be carried out regularly
+def run(core, instance):
+ return
+
+# Called on instance destruction to destroy the instance.
+def destroy(core, instance):
+ return
\ No newline at end of file
diff --git a/scripts/loot/lootItems/armor/bone/bone_armor_bicep_left.py b/scripts/loot/lootItems/armor/bone/bone_armor_bicep_left.py
new file mode 100644
index 00000000..fe66e1ab
--- /dev/null
+++ b/scripts/loot/lootItems/armor/bone/bone_armor_bicep_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/bone/shared_armor_bone_s01_bicep_l.iff']
+
+#def customItemName():
+
+# return 'Bone Armor Bicep Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/bone/bone_armor_bicep_right.py b/scripts/loot/lootItems/armor/bone/bone_armor_bicep_right.py
new file mode 100644
index 00000000..09b6ad68
--- /dev/null
+++ b/scripts/loot/lootItems/armor/bone/bone_armor_bicep_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/bone/shared_armor_bone_s01_bicep_r.iff']
+
+def customItemName():
+
+ return 'Bone Armor Bicep Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/bone/bone_armor_boots.py b/scripts/loot/lootItems/armor/bone/bone_armor_boots.py
new file mode 100644
index 00000000..da526052
--- /dev/null
+++ b/scripts/loot/lootItems/armor/bone/bone_armor_boots.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/bone/shared_armor_bone_s01_boots.iff']
+
+def customItemName():
+
+ return 'Bone Armor Boots'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/bone/bone_armor_bracer_left.py b/scripts/loot/lootItems/armor/bone/bone_armor_bracer_left.py
new file mode 100644
index 00000000..75e01372
--- /dev/null
+++ b/scripts/loot/lootItems/armor/bone/bone_armor_bracer_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/bone/shared_armor_bone_s01_bracer_l.iff']
+
+def customItemName():
+
+ return 'Bone Armor Bracer Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/bone/bone_armor_bracer_right.py b/scripts/loot/lootItems/armor/bone/bone_armor_bracer_right.py
new file mode 100644
index 00000000..a7049c68
--- /dev/null
+++ b/scripts/loot/lootItems/armor/bone/bone_armor_bracer_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/bone/shared_armor_bone_s01_bracer_r.iff']
+
+def customItemName():
+
+ return 'Bone Armor Bracer Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/bone/bone_armor_chestplate.py b/scripts/loot/lootItems/armor/bone/bone_armor_chestplate.py
new file mode 100644
index 00000000..dd41276b
--- /dev/null
+++ b/scripts/loot/lootItems/armor/bone/bone_armor_chestplate.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/bone/shared_armor_bone_s01_chest_plate.iff']
+
+def customItemName():
+
+ return 'Bone Armor Chestplate'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/bone/bone_armor_gloves.py b/scripts/loot/lootItems/armor/bone/bone_armor_gloves.py
new file mode 100644
index 00000000..a4730f12
--- /dev/null
+++ b/scripts/loot/lootItems/armor/bone/bone_armor_gloves.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/bone/shared_armor_bone_s01_gloves.iff']
+
+def customItemName():
+
+ return 'Bone Armor Gloves'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/bone/bone_armor_helmet.py b/scripts/loot/lootItems/armor/bone/bone_armor_helmet.py
new file mode 100644
index 00000000..88cab026
--- /dev/null
+++ b/scripts/loot/lootItems/armor/bone/bone_armor_helmet.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/bone/shared_armor_bone_s01_helmet.iff']
+
+def customItemName():
+
+ return 'Bone Armor Helmet'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/bone/bone_armor_leggings.py b/scripts/loot/lootItems/armor/bone/bone_armor_leggings.py
new file mode 100644
index 00000000..2c3f2671
--- /dev/null
+++ b/scripts/loot/lootItems/armor/bone/bone_armor_leggings.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/bone/shared_armor_bone_s01_leggings.iff']
+
+def customItemName():
+
+ return 'Bone Armor Leggings'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/chitin/chitin_armor_bicep_left.py b/scripts/loot/lootItems/armor/chitin/chitin_armor_bicep_left.py
new file mode 100644
index 00000000..d70540c8
--- /dev/null
+++ b/scripts/loot/lootItems/armor/chitin/chitin_armor_bicep_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/chitin/shared_armor_chitin_s01_bicep_l.iff']
+
+def customItemName():
+
+ return 'Chitin Armor Bicep Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/chitin/chitin_armor_bicep_right.py b/scripts/loot/lootItems/armor/chitin/chitin_armor_bicep_right.py
new file mode 100644
index 00000000..76a9ff3d
--- /dev/null
+++ b/scripts/loot/lootItems/armor/chitin/chitin_armor_bicep_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/chitin/shared_armor_chitin_s01_bicep_r.iff']
+
+def customItemName():
+
+ return 'Chitin Armor Bicep Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/chitin/chitin_armor_boots.py b/scripts/loot/lootItems/armor/chitin/chitin_armor_boots.py
new file mode 100644
index 00000000..127dd61d
--- /dev/null
+++ b/scripts/loot/lootItems/armor/chitin/chitin_armor_boots.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/chitin/shared_armor_chitin_s01_boots.iff']
+
+def customItemName():
+
+ return 'Chitin Armor Boots'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/chitin/chitin_armor_bracer_left.py b/scripts/loot/lootItems/armor/chitin/chitin_armor_bracer_left.py
new file mode 100644
index 00000000..70f1135c
--- /dev/null
+++ b/scripts/loot/lootItems/armor/chitin/chitin_armor_bracer_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/chitin/shared_armor_chitin_s01_bracer_l.iff']
+
+def customItemName():
+
+ return 'Chitin Armor Bracer Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/chitin/chitin_armor_bracer_right.py b/scripts/loot/lootItems/armor/chitin/chitin_armor_bracer_right.py
new file mode 100644
index 00000000..5ae0a4f3
--- /dev/null
+++ b/scripts/loot/lootItems/armor/chitin/chitin_armor_bracer_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/chitin/shared_armor_chitin_s01_bracer_r.iff']
+
+def customItemName():
+
+ return 'Chitin Armor Bracer Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/chitin/chitin_armor_chestplate.py b/scripts/loot/lootItems/armor/chitin/chitin_armor_chestplate.py
new file mode 100644
index 00000000..29450398
--- /dev/null
+++ b/scripts/loot/lootItems/armor/chitin/chitin_armor_chestplate.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/chitin/shared_armor_chitin_s01_chest_plate.iff']
+
+def customItemName():
+
+ return 'Chitin Armor Chestplate'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/chitin/chitin_armor_gloves.py b/scripts/loot/lootItems/armor/chitin/chitin_armor_gloves.py
new file mode 100644
index 00000000..30701432
--- /dev/null
+++ b/scripts/loot/lootItems/armor/chitin/chitin_armor_gloves.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/chitin/shared_armor_chitin_s01_gloves.iff']
+
+def customItemName():
+
+ return 'Chitin Armor Gloves'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/chitin/chitin_armor_helmet.py b/scripts/loot/lootItems/armor/chitin/chitin_armor_helmet.py
new file mode 100644
index 00000000..16fea8fd
--- /dev/null
+++ b/scripts/loot/lootItems/armor/chitin/chitin_armor_helmet.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/chitin/shared_armor_chitin_s01_helmet.iff']
+
+def customItemName():
+
+ return 'Chitin Armor Helmet'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/chitin/chitin_armor_leggings.py b/scripts/loot/lootItems/armor/chitin/chitin_armor_leggings.py
new file mode 100644
index 00000000..f98f26c2
--- /dev/null
+++ b/scripts/loot/lootItems/armor/chitin/chitin_armor_leggings.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/chitin/shared_armor_chitin_s01_leggings.iff']
+
+def customItemName():
+
+ return 'Chitin Armor Leggings'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/composite/composite_armor_bicep_left.py b/scripts/loot/lootItems/armor/composite/composite_armor_bicep_left.py
new file mode 100644
index 00000000..d5089e38
--- /dev/null
+++ b/scripts/loot/lootItems/armor/composite/composite_armor_bicep_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff']
+
+def customItemName():
+
+ return 'Composite Armor Left Bicep'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/composite/composite_armor_bicep_right.py b/scripts/loot/lootItems/armor/composite/composite_armor_bicep_right.py
new file mode 100644
index 00000000..5e04243e
--- /dev/null
+++ b/scripts/loot/lootItems/armor/composite/composite_armor_bicep_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/composite/shared_armor_composite_bicep_r.iff']
+
+def customItemName():
+
+ return 'Composite Armor Right Bicep'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/composite/composite_armor_boots.py b/scripts/loot/lootItems/armor/composite/composite_armor_boots.py
new file mode 100644
index 00000000..9ae88c3a
--- /dev/null
+++ b/scripts/loot/lootItems/armor/composite/composite_armor_boots.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/composite/shared_armor_composite_boots.iff']
+
+def customItemName():
+
+ return 'Composite Armor Boots'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/composite/composite_armor_bracer_left.py b/scripts/loot/lootItems/armor/composite/composite_armor_bracer_left.py
new file mode 100644
index 00000000..7d805114
--- /dev/null
+++ b/scripts/loot/lootItems/armor/composite/composite_armor_bracer_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/composite/shared_armor_composite_bracer_l.iff']
+
+def customItemName():
+
+ return 'Composite Armor Bracer Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/composite/composite_armor_bracer_right.py b/scripts/loot/lootItems/armor/composite/composite_armor_bracer_right.py
new file mode 100644
index 00000000..deb22a6c
--- /dev/null
+++ b/scripts/loot/lootItems/armor/composite/composite_armor_bracer_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/composite/shared_armor_composite_bracer_r.iff']
+
+def customItemName():
+
+ return 'Composite Armor Bracer Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/composite/composite_armor_chestplate.py b/scripts/loot/lootItems/armor/composite/composite_armor_chestplate.py
new file mode 100644
index 00000000..b569da42
--- /dev/null
+++ b/scripts/loot/lootItems/armor/composite/composite_armor_chestplate.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/composite/shared_armor_composite_chest_plate.iff']
+
+def customItemName():
+
+ return 'Composite Armor Chestplate'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/composite/composite_armor_gloves.py b/scripts/loot/lootItems/armor/composite/composite_armor_gloves.py
new file mode 100644
index 00000000..91d2be4c
--- /dev/null
+++ b/scripts/loot/lootItems/armor/composite/composite_armor_gloves.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/composite/shared_armor_composite_gloves.iff']
+
+def customItemName():
+
+ return 'Composite Armor Gloves'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/composite/composite_armor_helmet.py b/scripts/loot/lootItems/armor/composite/composite_armor_helmet.py
new file mode 100644
index 00000000..d5fe36de
--- /dev/null
+++ b/scripts/loot/lootItems/armor/composite/composite_armor_helmet.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/composite/shared_armor_composite_helmet.iff']
+
+def customItemName():
+
+ return 'Composite Armor Helmet'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/composite/composite_armor_leggings.py b/scripts/loot/lootItems/armor/composite/composite_armor_leggings.py
new file mode 100644
index 00000000..a48864a4
--- /dev/null
+++ b/scripts/loot/lootItems/armor/composite/composite_armor_leggings.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/composite/shared_armor_composite_leggings.iff']
+
+def customItemName():
+
+ return 'Composite Armor Leggings'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_bicep_left.py b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_bicep_left.py
new file mode 100644
index 00000000..06abafbd
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_bicep_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_defender/shared_ith_armor_s01_bicep_l.iff']
+
+def customItemName():
+
+ return 'Ithorian Defender Armor Bicep Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_bicep_right.py b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_bicep_right.py
new file mode 100644
index 00000000..3a226c23
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_bicep_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_defender/shared_ith_armor_s01_bicep_r.iff']
+
+def customItemName():
+
+ return 'Ithorian Defender Armor Bicep Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_boots.py b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_boots.py
new file mode 100644
index 00000000..bccf5133
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_boots.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_defender/shared_ith_armor_s01_boots.iff']
+
+def customItemName():
+
+ return 'Ithorian Defender Armor Boots'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_bracer_left.py b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_bracer_left.py
new file mode 100644
index 00000000..607baa7f
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_bracer_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_defender/shared_ith_armor_s01_bracer_l.iff']
+
+def customItemName():
+
+ return 'Ithorian Defender Armor Bracer Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_bracer_right.py b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_bracer_right.py
new file mode 100644
index 00000000..63cb0e4b
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_bracer_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_defender/shared_ith_armor_s01_bracer_r.iff']
+
+def customItemName():
+
+ return 'Ithorian Defender Armor Bracer Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_chestplate.py b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_chestplate.py
new file mode 100644
index 00000000..0c0d699b
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_chestplate.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_defender/shared_ith_armor_s01_chest_plate.iff']
+
+def customItemName():
+
+ return 'Ithorian Defender Armor Chestplate'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_gloves.py b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_gloves.py
new file mode 100644
index 00000000..0804e505
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_gloves.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_defender/shared_ith_armor_s01_gloves.iff']
+
+def customItemName():
+
+ return 'Ithorian Defender Armor Gloves'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_helmet.py b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_helmet.py
new file mode 100644
index 00000000..7828a56b
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_helmet.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_defender/shared_ith_armor_s01_helmet.iff']
+
+def customItemName():
+
+ return 'Ithorian Defender Armor Helmet'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_leggings.py b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_leggings.py
new file mode 100644
index 00000000..f95cff3f
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_defender/ithorian_defender_armor_leggings.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_defender/shared_ith_armor_s01_leggings.iff']
+
+def customItemName():
+
+ return 'Ithorian Defender Armor Leggings'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_bicep_left.py b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_bicep_left.py
new file mode 100644
index 00000000..eedb6c9b
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_bicep_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_guardian/shared_ith_armor_s02_bicep_l.iff']
+
+def customItemName():
+
+ return 'Ithorian Guardian Armor Bicep Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_bicep_right.py b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_bicep_right.py
new file mode 100644
index 00000000..b0edd6d9
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_bicep_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_guardian/shared_ith_armor_s02_bicep_r.iff']
+
+def customItemName():
+
+ return 'Ithorian Guardian Armor Bicep Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_boots.py b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_boots.py
new file mode 100644
index 00000000..fe01888d
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_boots.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_guardian/shared_ith_armor_s02_boots.iff']
+
+def customItemName():
+
+ return 'Ithorian Guardian Armor Boots'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_bracer_left.py b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_bracer_left.py
new file mode 100644
index 00000000..3f72841a
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_bracer_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_guardian/shared_ith_armor_s02_bracer_l.iff']
+
+def customItemName():
+
+ return 'Ithorian Guardian Armor Bracer Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_bracer_right.py b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_bracer_right.py
new file mode 100644
index 00000000..9072b494
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_bracer_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_guardian/shared_ith_armor_s02_bracer_r.iff']
+
+def customItemName():
+
+ return 'Ithorian Guardian Armor Bracer Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_chestplate.py b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_chestplate.py
new file mode 100644
index 00000000..6ec13a5e
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_chestplate.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_guardian/shared_ith_armor_s02_chest_plate.iff']
+
+def customItemName():
+
+ return 'Ithorian Guardian Armor Chestplate'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_gloves.py b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_gloves.py
new file mode 100644
index 00000000..2b413665
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_gloves.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_guardian/shared_ith_armor_s02_gloves.iff']
+
+def customItemName():
+
+ return 'Ithorian Guardian Armor Gloves'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_helmet.py b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_helmet.py
new file mode 100644
index 00000000..418501a6
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_helmet.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_guardian/shared_ith_armor_s02_helmet.iff']
+
+def customItemName():
+
+ return 'Ithorian Guardian Armor Helmet'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_leggings.py b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_leggings.py
new file mode 100644
index 00000000..bcc43166
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_guardian/ithorian_guardian_armor_leggings.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_guardian/shared_ith_armor_s02_leggings.iff']
+
+def customItemName():
+
+ return 'Ithorian Guardian Armor Leggings'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_bicep_left.py b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_bicep_left.py
new file mode 100644
index 00000000..0963cfc9
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_bicep_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_l.iff']
+
+def customItemName():
+
+ return 'Ithorian Sentinel Armor Bicep Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_bicep_right.py b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_bicep_right.py
new file mode 100644
index 00000000..acd5473f
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_bicep_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_r.iff']
+
+def customItemName():
+
+ return 'Ithorian Sentinel Armor Bicep Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_boots.py b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_boots.py
new file mode 100644
index 00000000..8e14d51b
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_boots.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_boots.iff']
+
+def customItemName():
+
+ return 'Ithorian Sentinel Armor Boots'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_bracer_left.py b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_bracer_left.py
new file mode 100644
index 00000000..fd73de77
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_bracer_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_l.iff']
+
+def customItemName():
+
+ return 'Ithorian Sentinel Armor Bracer Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_bracer_right.py b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_bracer_right.py
new file mode 100644
index 00000000..dba70a3c
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_bracer_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_r.iff']
+
+def customItemName():
+
+ return 'Ithorian Sentinel Armor Bracer Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_chestplate.py b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_chestplate.py
new file mode 100644
index 00000000..2bde059c
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_chestplate.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_chest_plate.iff']
+
+def customItemName():
+
+ return 'Ithorian Sentinel Armor Chestplate'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_gloves.py b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_gloves.py
new file mode 100644
index 00000000..5dce5bc1
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_gloves.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_gloves.iff']
+
+def customItemName():
+
+ return 'Ithorian Sentinel Armor Gloves'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_helmet.py b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_helmet.py
new file mode 100644
index 00000000..efc9a054
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_helmet.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_helmet.iff']
+
+def customItemName():
+
+ return 'Ithorian Sentinel Armor Helmet'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_leggings.py b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_leggings.py
new file mode 100644
index 00000000..b4f3eafc
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ithorian_sentinel/ithorian_sentinel_armor_leggings.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_leggings.iff']
+
+def customItemName():
+
+ return 'Ithorian Sentinel Armor Leggings'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_armor_bicep_left.py b/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_armor_bicep_left.py
new file mode 100644
index 00000000..2f6e2b95
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_armor_bicep_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_black_mtn/shared_armor_kashyyykian_black_mtn_bicep_l.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Black Mountain Bicep Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_armor_bicep_right.py b/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_armor_bicep_right.py
new file mode 100644
index 00000000..8cec0f7d
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_armor_bicep_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_black_mtn/shared_armor_kashyyykian_black_mtn_bicep_r.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Black Mountain Bicep Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_armor_bracer_left.py b/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_armor_bracer_left.py
new file mode 100644
index 00000000..64ee47c3
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_armor_bracer_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_black_mtn/shared_armor_kashyyykian_black_mtn_bracer_l.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Black Mountain Bracer Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_armor_bracer_right.py b/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_armor_bracer_right.py
new file mode 100644
index 00000000..c17c1c47
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_armor_bracer_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_black_mtn/shared_armor_kashyyykian_black_mtn_bracer_r.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Black Mountain Bracer Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_armor_chestplate.py b/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_armor_chestplate.py
new file mode 100644
index 00000000..618d2a57
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_armor_chestplate.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_black_mtn/shared_armor_kashyyykian_black_mtn_chestplate.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Black Mountain Chestplate'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_leggings.py b/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_leggings.py
new file mode 100644
index 00000000..0118c616
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_black_mtn/kashyyykian_black_mtn_leggings.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_black_mtn/shared_armor_kashyyykian_black_mtn_leggings.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Black Mountain Leggings'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_bicep_left.py b/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_bicep_left.py
new file mode 100644
index 00000000..6f2e204e
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_bicep_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_ceremonial/shared_armor_kashyyykian_ceremonial_bicep_l.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Ceremonial Bicep Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_bicep_right.py b/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_bicep_right.py
new file mode 100644
index 00000000..b8e67983
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_bicep_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_ceremonial/shared_armor_kashyyykian_ceremonial_bicep_r.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Ceremonial Bicep Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_bracer_left.py b/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_bracer_left.py
new file mode 100644
index 00000000..3e27ce7f
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_bracer_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_ceremonial/shared_armor_kashyyykian_ceremonial_bracer_l.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Ceremonial Bracer Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_bracer_right.py b/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_bracer_right.py
new file mode 100644
index 00000000..fa389235
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_bracer_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_ceremonial/shared_armor_kashyyykian_ceremonial_bracer_r.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Ceremonial Bracer Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_chestplate.py b/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_chestplate.py
new file mode 100644
index 00000000..de3f29d8
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_chestplate.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_ceremonial/shared_armor_kashyyykian_ceremonial_chestplate.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Ceremonial Chestplate'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_leggings.py b/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_leggings.py
new file mode 100644
index 00000000..5ffea758
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_ceremonial/kashyyykian_ceremonial_leggings.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_ceremonial/shared_armor_kashyyykian_ceremonial_leggings.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Ceremonial Leggings'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_bicep_left.py b/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_bicep_left.py
new file mode 100644
index 00000000..02717dc3
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_bicep_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_l.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Hunting Bicep Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_bicep_right.py b/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_bicep_right.py
new file mode 100644
index 00000000..70aba08f
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_bicep_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_r.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Hunting Bicep Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_bracer_left.py b/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_bracer_left.py
new file mode 100644
index 00000000..601c880d
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_bracer_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_l.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Hunting Bracer Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_bracer_right.py b/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_bracer_right.py
new file mode 100644
index 00000000..b00a3420
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_bracer_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_r.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Hunting Bracer Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_chestplate.py b/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_chestplate.py
new file mode 100644
index 00000000..692bca15
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_chestplate.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_chest_plate.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Hunting Chestplate'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_leggings.py b/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_leggings.py
new file mode 100644
index 00000000..ff7c10c1
--- /dev/null
+++ b/scripts/loot/lootItems/armor/kashyyykian_hunting/kashyyykian_hunting_leggings.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_leggings.iff']
+
+def customItemName():
+
+ return 'Kashyyykian Hunting Leggings'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/marauder/marauder_armor_bicep_left.py b/scripts/loot/lootItems/armor/marauder/marauder_armor_bicep_left.py
new file mode 100644
index 00000000..5311bb2a
--- /dev/null
+++ b/scripts/loot/lootItems/armor/marauder/marauder_armor_bicep_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/marauder/shared_armor_marauder_s01_bicep_l.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s02_bicep_l.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s03_bicep_l.iff']
+
+def customItemName():
+
+ return 'Marauder Armor Bicep Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/marauder/marauder_armor_bicep_right.py b/scripts/loot/lootItems/armor/marauder/marauder_armor_bicep_right.py
new file mode 100644
index 00000000..ec4725e9
--- /dev/null
+++ b/scripts/loot/lootItems/armor/marauder/marauder_armor_bicep_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/marauder/shared_armor_marauder_s01_bicep_r.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s02_bicep_r.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s03_bicep_r.iff']
+
+def customItemName():
+
+ return 'Marauder Armor Bicep Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/marauder/marauder_armor_boots.py b/scripts/loot/lootItems/armor/marauder/marauder_armor_boots.py
new file mode 100644
index 00000000..ad6e208c
--- /dev/null
+++ b/scripts/loot/lootItems/armor/marauder/marauder_armor_boots.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/marauder/shared_armor_marauder_s01_boots.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s02_boots.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s03_boots.iff']
+
+def customItemName():
+
+ return 'Marauder Armor Boots'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/marauder/marauder_armor_bracer_left.py b/scripts/loot/lootItems/armor/marauder/marauder_armor_bracer_left.py
new file mode 100644
index 00000000..13e8df13
--- /dev/null
+++ b/scripts/loot/lootItems/armor/marauder/marauder_armor_bracer_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/marauder/shared_armor_marauder_s01_bracer_l.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s02_bracer_l.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s03_bracer_l.iff']
+
+def customItemName():
+
+ return 'Marauder Armor Bracer Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/marauder/marauder_armor_bracer_right.py b/scripts/loot/lootItems/armor/marauder/marauder_armor_bracer_right.py
new file mode 100644
index 00000000..7d7938f0
--- /dev/null
+++ b/scripts/loot/lootItems/armor/marauder/marauder_armor_bracer_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/marauder/shared_armor_marauder_s01_bracer_r.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s02_bracer_r.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s03_bracer_r.iff']
+
+def customItemName():
+
+ return 'Marauder Armor Bracer Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/marauder/marauder_armor_chestplate.py b/scripts/loot/lootItems/armor/marauder/marauder_armor_chestplate.py
new file mode 100644
index 00000000..2372a663
--- /dev/null
+++ b/scripts/loot/lootItems/armor/marauder/marauder_armor_chestplate.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/marauder/shared_armor_marauder_s01_chest_plate.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s02_chest_plate.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s03_chest_plate.iff']
+
+def customItemName():
+
+ return 'Marauder Armor Chestplate'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/marauder/marauder_armor_gloves.py b/scripts/loot/lootItems/armor/marauder/marauder_armor_gloves.py
new file mode 100644
index 00000000..abb7b2a4
--- /dev/null
+++ b/scripts/loot/lootItems/armor/marauder/marauder_armor_gloves.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/marauder/shared_armor_marauder_s01_gloves.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s02_gloves.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s03_gloves.iff']
+
+def customItemName():
+
+ return 'Marauder Armor Gloves'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/marauder/marauder_armor_helmet.py b/scripts/loot/lootItems/armor/marauder/marauder_armor_helmet.py
new file mode 100644
index 00000000..0e8674f7
--- /dev/null
+++ b/scripts/loot/lootItems/armor/marauder/marauder_armor_helmet.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/marauder/shared_armor_marauder_s01_helmet.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s02_helmet.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s03_helmet.iff']
+
+def customItemName():
+
+ return 'Marauder Armor Helmet'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/marauder/marauder_armor_leggings.py b/scripts/loot/lootItems/armor/marauder/marauder_armor_leggings.py
new file mode 100644
index 00000000..8e613148
--- /dev/null
+++ b/scripts/loot/lootItems/armor/marauder/marauder_armor_leggings.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/marauder/shared_armor_marauder_s01_leggings.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s02_leggings.iff','object/tangible/wearables/armor/marauder/shared_armor_marauder_s03_leggings.iff']
+
+def customItemName():
+
+ return 'Marauder Armor Leggings'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/padded/padded_armor_bicep_left.py b/scripts/loot/lootItems/armor/padded/padded_armor_bicep_left.py
new file mode 100644
index 00000000..c2f93b24
--- /dev/null
+++ b/scripts/loot/lootItems/armor/padded/padded_armor_bicep_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/padded/shared_armor_padded_s01_bicep_l.iff']
+
+def customItemName():
+
+ return 'Padded Armor Bicep Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/padded/padded_armor_bicep_right.py b/scripts/loot/lootItems/armor/padded/padded_armor_bicep_right.py
new file mode 100644
index 00000000..30d77a43
--- /dev/null
+++ b/scripts/loot/lootItems/armor/padded/padded_armor_bicep_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/padded/shared_armor_padded_s01_bicep_r.iff']
+
+def customItemName():
+
+ return 'Padded Armor Bicep Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/padded/padded_armor_boots.py b/scripts/loot/lootItems/armor/padded/padded_armor_boots.py
new file mode 100644
index 00000000..407c80a0
--- /dev/null
+++ b/scripts/loot/lootItems/armor/padded/padded_armor_boots.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/padded/shared_armor_padded_s01_boots.iff']
+
+def customItemName():
+
+ return 'Padded Armor Boots'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/padded/padded_armor_bracer_left.py b/scripts/loot/lootItems/armor/padded/padded_armor_bracer_left.py
new file mode 100644
index 00000000..2eb2c45c
--- /dev/null
+++ b/scripts/loot/lootItems/armor/padded/padded_armor_bracer_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/padded/shared_armor_padded_s01_bracer_l.iff']
+
+def customItemName():
+
+ return 'Padded Armor Bracer Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/padded/padded_armor_bracer_right.py b/scripts/loot/lootItems/armor/padded/padded_armor_bracer_right.py
new file mode 100644
index 00000000..182131bf
--- /dev/null
+++ b/scripts/loot/lootItems/armor/padded/padded_armor_bracer_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/padded/shared_armor_padded_s01_bracer_r.iff']
+
+def customItemName():
+
+ return 'Padded Armor Bracer Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/padded/padded_armor_chestplate.py b/scripts/loot/lootItems/armor/padded/padded_armor_chestplate.py
new file mode 100644
index 00000000..7b3c84d5
--- /dev/null
+++ b/scripts/loot/lootItems/armor/padded/padded_armor_chestplate.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/padded/shared_armor_padded_s01_chest_plate.iff']
+
+def customItemName():
+
+ return 'Padded Armor Chestplate'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/padded/padded_armor_gloves.py b/scripts/loot/lootItems/armor/padded/padded_armor_gloves.py
new file mode 100644
index 00000000..bf324908
--- /dev/null
+++ b/scripts/loot/lootItems/armor/padded/padded_armor_gloves.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/padded/shared_armor_padded_s01_gloves.iff']
+
+def customItemName():
+
+ return 'Padded Armor Gloves'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/padded/padded_armor_helmet.py b/scripts/loot/lootItems/armor/padded/padded_armor_helmet.py
new file mode 100644
index 00000000..575e5b98
--- /dev/null
+++ b/scripts/loot/lootItems/armor/padded/padded_armor_helmet.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/padded/shared_armor_padded_s01_helmet.iff']
+
+def customItemName():
+
+ return 'Padded Armor Helmet'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/padded/padded_armor_leggings.py b/scripts/loot/lootItems/armor/padded/padded_armor_leggings.py
new file mode 100644
index 00000000..c6c299d5
--- /dev/null
+++ b/scripts/loot/lootItems/armor/padded/padded_armor_leggings.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/padded/shared_armor_padded_s01_leggings.iff']
+
+def customItemName():
+
+ return 'Padded Armor Leggings'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/tantel/tantel_armor_bicep_left.py b/scripts/loot/lootItems/armor/tantel/tantel_armor_bicep_left.py
new file mode 100644
index 00000000..4705777e
--- /dev/null
+++ b/scripts/loot/lootItems/armor/tantel/tantel_armor_bicep_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_bicep_l.iff']
+
+def customItemName():
+
+ return 'Tantel Armor Bicep Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/tantel/tantel_armor_bicep_right.py b/scripts/loot/lootItems/armor/tantel/tantel_armor_bicep_right.py
new file mode 100644
index 00000000..6da6c94b
--- /dev/null
+++ b/scripts/loot/lootItems/armor/tantel/tantel_armor_bicep_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_bicep_r.iff']
+
+def customItemName():
+
+ return 'Tantel Armor Bicep Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/tantel/tantel_armor_boots.py b/scripts/loot/lootItems/armor/tantel/tantel_armor_boots.py
new file mode 100644
index 00000000..3f4374f5
--- /dev/null
+++ b/scripts/loot/lootItems/armor/tantel/tantel_armor_boots.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_boots.iff']
+
+def customItemName():
+
+ return 'Tantel Armor Boots'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/tantel/tantel_armor_bracer_left.py b/scripts/loot/lootItems/armor/tantel/tantel_armor_bracer_left.py
new file mode 100644
index 00000000..70c573f3
--- /dev/null
+++ b/scripts/loot/lootItems/armor/tantel/tantel_armor_bracer_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_bracer_l.iff']
+
+def customItemName():
+
+ return 'Tantel Armor Bracer Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/tantel/tantel_armor_bracer_right.py b/scripts/loot/lootItems/armor/tantel/tantel_armor_bracer_right.py
new file mode 100644
index 00000000..ff47d129
--- /dev/null
+++ b/scripts/loot/lootItems/armor/tantel/tantel_armor_bracer_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_bracer_r.iff']
+
+def customItemName():
+
+ return 'Tantel Armor Bracer Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/tantel/tantel_armor_chestplate.py b/scripts/loot/lootItems/armor/tantel/tantel_armor_chestplate.py
new file mode 100644
index 00000000..d6babe12
--- /dev/null
+++ b/scripts/loot/lootItems/armor/tantel/tantel_armor_chestplate.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_chest_plate.iff']
+
+def customItemName():
+
+ return 'Tantel Armor Chestplate'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/tantel/tantel_armor_gloves.py b/scripts/loot/lootItems/armor/tantel/tantel_armor_gloves.py
new file mode 100644
index 00000000..4bfcb2ca
--- /dev/null
+++ b/scripts/loot/lootItems/armor/tantel/tantel_armor_gloves.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_gloves.iff']
+
+def customItemName():
+
+ return 'Tantel Armor Gloves'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/tantel/tantel_armor_helmet.py b/scripts/loot/lootItems/armor/tantel/tantel_armor_helmet.py
new file mode 100644
index 00000000..211b9735
--- /dev/null
+++ b/scripts/loot/lootItems/armor/tantel/tantel_armor_helmet.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_helmet.iff']
+
+def customItemName():
+
+ return 'Tantel Armor Helmet'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/tantel/tantel_armor_leggings.py b/scripts/loot/lootItems/armor/tantel/tantel_armor_leggings.py
new file mode 100644
index 00000000..8550f9a9
--- /dev/null
+++ b/scripts/loot/lootItems/armor/tantel/tantel_armor_leggings.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_leggings.iff']
+
+def customItemName():
+
+ return 'Tantel Armor Leggings'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ubese/ubese_armor_bandolier.py b/scripts/loot/lootItems/armor/ubese/ubese_armor_bandolier.py
new file mode 100644
index 00000000..40c275b0
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ubese/ubese_armor_bandolier.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ubese/shared_armor_ubese_bandolier.iff']
+
+def customItemName():
+
+ return 'Ubese Armor Bandolier'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ubese/ubese_armor_boots.py b/scripts/loot/lootItems/armor/ubese/ubese_armor_boots.py
new file mode 100644
index 00000000..eb3b46d6
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ubese/ubese_armor_boots.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ubese/shared_armor_ubese_boots.iff']
+
+def customItemName():
+
+ return 'Ubese Armor Boots'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/ubese/ubese_armor_bracer_left.py b/scripts/loot/lootItems/armor/ubese/ubese_armor_bracer_left.py
new file mode 100644
index 00000000..6f2d6dd4
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ubese/ubese_armor_bracer_left.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ubese/shared_armor_ubese_bracer_l.iff']
+
+def customItemName():
+
+ return 'Ubese Armor Bracer Left'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ubese/ubese_armor_bracer_right.py b/scripts/loot/lootItems/armor/ubese/ubese_armor_bracer_right.py
new file mode 100644
index 00000000..a1fbed28
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ubese/ubese_armor_bracer_right.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ubese/shared_armor_ubese_bracer_r.iff']
+
+def customItemName():
+
+ return 'Ubese Armor Bracer Right'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ubese/ubese_armor_gloves.py b/scripts/loot/lootItems/armor/ubese/ubese_armor_gloves.py
new file mode 100644
index 00000000..3a4063c9
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ubese/ubese_armor_gloves.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ubese/shared_armor_ubese_gloves.iff']
+
+def customItemName():
+
+ return 'test'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/armor/ubese/ubese_armor_helmet.py b/scripts/loot/lootItems/armor/ubese/ubese_armor_helmet.py
new file mode 100644
index 00000000..ff18ad4a
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ubese/ubese_armor_helmet.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ubese/shared_armor_ubese_helmet.iff']
+
+def customItemName():
+
+ return 'Ubese Armor Helmet'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ubese/ubese_armor_jacket.py b/scripts/loot/lootItems/armor/ubese/ubese_armor_jacket.py
new file mode 100644
index 00000000..98a7fedd
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ubese/ubese_armor_jacket.py
@@ -0,0 +1,31 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ubese/shared_armor_ubese_jacket.iff']
+
+def customItemName():
+
+ return 'Ubese Armor Jacket'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ stats = ['armor_efficiency_kinetic','5000','6800']
+ stats += ['armor_efficiency_energy','3000','4800']
+ stats += ['special_protection_heat','4000','5800']
+ stats += ['special_protection_cold','4000','5800']
+ stats += ['special_protection_acid','4000','5800']
+ stats += ['special_protection_electricity','4000','5800']
+
+ return stats
diff --git a/scripts/loot/lootItems/armor/ubese/ubese_armor_shirt.py b/scripts/loot/lootItems/armor/ubese/ubese_armor_shirt.py
new file mode 100644
index 00000000..edbe2572
--- /dev/null
+++ b/scripts/loot/lootItems/armor/ubese/ubese_armor_shirt.py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/ubese/shared_armor_ubese_shirt.iff']
+
+def customItemName():
+
+ return 'Ubese Armor Shirt'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def itemStats():
+
+ return []
diff --git a/scripts/loot/lootItems/chroniclerelics/chronicle_relic_fragment.py b/scripts/loot/lootItems/chroniclerelics/chronicle_relic_fragment.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootItems/clothing/robes/apprentice_robe.py b/scripts/loot/lootItems/clothing/robes/apprentice_robe.py
new file mode 100644
index 00000000..a717ac1b
--- /dev/null
+++ b/scripts/loot/lootItems/clothing/robes/apprentice_robe.py
@@ -0,0 +1,7 @@
+def itemTemplate():
+
+ return ['object/tangible/wearables/robe/shared_robe_jedi_light_s02.iff']
+
+def customItemName():
+
+ return 'Apprentice Robe'
diff --git a/scripts/loot/lootItems/clothing/suits/reinforced_jumpsuit.py b/scripts/loot/lootItems/clothing/suits/reinforced_jumpsuit.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootItems/clothing/suits/traders_flightsuit.py b/scripts/loot/lootItems/clothing/suits/traders_flightsuit.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootItems/clothing/tusken/tusken_raider_bandolier.py b/scripts/loot/lootItems/clothing/tusken/tusken_raider_bandolier.py
new file mode 100644
index 00000000..163a87ea
--- /dev/null
+++ b/scripts/loot/lootItems/clothing/tusken/tusken_raider_bandolier.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/bandolier/shared_bandolier_tusken_raider_s01.iff','object/tangible/wearables/bandolier/shared_bandolier_tusken_raider_s02.iff','object/tangible/wearables/bandolier/shared_bandolier_tusken_raider_s03.iff']
+
+def customItemName():
+
+ return 'Tusken Raider Bandolier'
diff --git a/scripts/loot/lootItems/clothing/tusken/tusken_raider_boots.py b/scripts/loot/lootItems/clothing/tusken/tusken_raider_boots.py
new file mode 100644
index 00000000..81cb35af
--- /dev/null
+++ b/scripts/loot/lootItems/clothing/tusken/tusken_raider_boots.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/boots/shared_boots_tusken_raider.iff']
+
+def customItemName():
+
+ return 'Tusken Raider Boots'
diff --git a/scripts/loot/lootItems/clothing/tusken/tusken_raider_dress.py b/scripts/loot/lootItems/clothing/tusken/tusken_raider_dress.py
new file mode 100644
index 00000000..c697642b
--- /dev/null
+++ b/scripts/loot/lootItems/clothing/tusken/tusken_raider_dress.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/robe/shared_robe_tusken_raider_s01.iff','object/tangible/wearables/robe/shared_robe_tusken_raider_s02.iff']
+
+def customItemName():
+
+ return 'Tusken Raider Dress'
diff --git a/scripts/loot/lootItems/clothing/tusken/tusken_raider_gloves.py b/scripts/loot/lootItems/clothing/tusken/tusken_raider_gloves.py
new file mode 100644
index 00000000..a942a1d3
--- /dev/null
+++ b/scripts/loot/lootItems/clothing/tusken/tusken_raider_gloves.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/gloves/shared_gloves_tusken_raider.iff']
+
+def customItemName():
+
+ return 'Tusken Raider Gloves'
diff --git a/scripts/loot/lootItems/clothing/tusken/tusken_raider_helmet.py b/scripts/loot/lootItems/clothing/tusken/tusken_raider_helmet.py
new file mode 100644
index 00000000..d4e539d4
--- /dev/null
+++ b/scripts/loot/lootItems/clothing/tusken/tusken_raider_helmet.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/helmet/shared_helmet_tusken_raider_s01.iff','object/tangible/wearables/helmet/shared_helmet_tusken_raider_s02.iff']
+
+def customItemName():
+
+ return 'Tusken Raider Helmet'
diff --git a/scripts/loot/lootItems/colorcrystal.py b/scripts/loot/lootItems/colorcrystal.py
new file mode 100644
index 00000000..1458e1be
--- /dev/null
+++ b/scripts/loot/lootItems/colorcrystal.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff']
diff --git a/scripts/loot/lootItems/creatureloot/antenna.py b/scripts/loot/lootItems/creatureloot/antenna.py
new file mode 100644
index 00000000..62113b2d
--- /dev/null
+++ b/scripts/loot/lootItems/creatureloot/antenna.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/generic/shared_generic_antennae.iff']
+
+def customItemName():
+
+ return 'Antenna'
diff --git a/scripts/loot/lootItems/creatureloot/brain.py b/scripts/loot/lootItems/creatureloot/brain.py
new file mode 100644
index 00000000..107add91
--- /dev/null
+++ b/scripts/loot/lootItems/creatureloot/brain.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/generic/shared_brain_s01.iff']
+
+def customItemName():
+
+ return 'Brain'
\ No newline at end of file
diff --git a/scripts/loot/lootItems/creatureloot/eye.py b/scripts/loot/lootItems/creatureloot/eye.py
new file mode 100644
index 00000000..076ce324
--- /dev/null
+++ b/scripts/loot/lootItems/creatureloot/eye.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/generic/shared_generic_eye.iff']
+
+def customItemName():
+
+ return 'Eye'
diff --git a/scripts/loot/lootItems/creatureloot/gland.py b/scripts/loot/lootItems/creatureloot/gland.py
new file mode 100644
index 00000000..ccf78284
--- /dev/null
+++ b/scripts/loot/lootItems/creatureloot/gland.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/generic/shared_lungs_gland.iff']
+
+def customItemName():
+
+ return 'Gland'
\ No newline at end of file
diff --git a/scripts/loot/lootItems/creatureloot/heart.py b/scripts/loot/lootItems/creatureloot/heart.py
new file mode 100644
index 00000000..8232f7a7
--- /dev/null
+++ b/scripts/loot/lootItems/creatureloot/heart.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/generic/shared_generic_heart.iff']
+
+def customItemName():
+
+ return 'Heart'
diff --git a/scripts/loot/lootItems/creatureloot/stomach.py b/scripts/loot/lootItems/creatureloot/stomach.py
new file mode 100644
index 00000000..47042a7d
--- /dev/null
+++ b/scripts/loot/lootItems/creatureloot/stomach.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/generic/shared_generic_stomach.iff']
+
+def customItemName():
+
+ return 'Stomach'
diff --git a/scripts/loot/lootItems/exceptionallootchest/advertisement_rodian.py b/scripts/loot/lootItems/exceptionallootchest/advertisement_rodian.py
new file mode 100644
index 00000000..195e2ca5
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/advertisement_rodian.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_rodian_f_ad_01.iff']
diff --git a/scripts/loot/lootItems/exceptionallootchest/bacta_tank.py b/scripts/loot/lootItems/exceptionallootchest/bacta_tank.py
new file mode 100644
index 00000000..46704737
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/bacta_tank.py
@@ -0,0 +1,5 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/generic_usable/shared_bacta_tank.iff']
+
diff --git a/scripts/loot/lootItems/exceptionallootchest/cunning_of_tyranus.py b/scripts/loot/lootItems/exceptionallootchest/cunning_of_tyranus.py
new file mode 100644
index 00000000..fe363b99
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/cunning_of_tyranus.py
@@ -0,0 +1,23 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff']
+
+def customItemName():
+
+ return "Cunning Of Tyranus"
+
+def customColor1():
+
+ return 0
+
+def lootDescriptor():
+
+ return 'rarecolorcrystal'
+
+def itemStats():
+
+ stats = ['elemtype','heat','heat']
+ stats +=['elemdamage','6','6']
+
+ return stats
diff --git a/scripts/loot/lootItems/exceptionallootchest/dna_storage_device.py b/scripts/loot/lootItems/exceptionallootchest/dna_storage_device.py
new file mode 100644
index 00000000..43ca2f4a
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/dna_storage_device.py
@@ -0,0 +1,5 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/beast/barn_lite/shared_beast_dna_storage_device.iff']
+
diff --git a/scripts/loot/lootItems/exceptionallootchest/dusk_in_kachirho.py b/scripts/loot/lootItems/exceptionallootchest/dusk_in_kachirho.py
new file mode 100644
index 00000000..577bde9b
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/dusk_in_kachirho.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/veteran_reward/one_year_anniversary/shared_painting_10.iff']
diff --git a/scripts/loot/lootItems/exceptionallootchest/emperors_senate_office_chair.py b/scripts/loot/lootItems/exceptionallootchest/emperors_senate_office_chair.py
new file mode 100644
index 00000000..d52cedd2
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/emperors_senate_office_chair.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/house_cleanup/shared_emperor_chair.iff']
diff --git a/scripts/loot/lootItems/exceptionallootchest/fighter.py b/scripts/loot/lootItems/exceptionallootchest/fighter.py
new file mode 100644
index 00000000..b30a875a
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/fighter.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_rodian_m.iff']
diff --git a/scripts/loot/lootItems/exceptionallootchest/gungan_statue_style_1_schematic.py b/scripts/loot/lootItems/exceptionallootchest/gungan_statue_style_1_schematic.py
new file mode 100644
index 00000000..a6ba0c1b
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/gungan_statue_style_1_schematic.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/draft_schematic/furniture/shared_furniture_statue_gungan_statue_s01.iff']
diff --git a/scripts/loot/lootItems/exceptionallootchest/gungan_statue_style_2_schematic.py b/scripts/loot/lootItems/exceptionallootchest/gungan_statue_style_2_schematic.py
new file mode 100644
index 00000000..f71c1747
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/gungan_statue_style_2_schematic.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/draft_schematic/furniture/shared_furniture_statue_gungan_statue_s02.iff']
diff --git a/scripts/loot/lootItems/exceptionallootchest/gungan_statue_style_3_schematic.py b/scripts/loot/lootItems/exceptionallootchest/gungan_statue_style_3_schematic.py
new file mode 100644
index 00000000..65ea76df
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/gungan_statue_style_3_schematic.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/draft_schematic/furniture/shared_furniture_statue_gungan_statue_s03.iff']
diff --git a/scripts/loot/lootItems/exceptionallootchest/gungan_statue_style_4_schematic.py b/scripts/loot/lootItems/exceptionallootchest/gungan_statue_style_4_schematic.py
new file mode 100644
index 00000000..479dcb1c
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/gungan_statue_style_4_schematic.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/draft_schematic/furniture/shared_furniture_statue_gungan_statue_s04.iff']
diff --git a/scripts/loot/lootItems/exceptionallootchest/holo_entertainment_table.py b/scripts/loot/lootItems/exceptionallootchest/holo_entertainment_table.py
new file mode 100644
index 00000000..bfe4cd74
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/holo_entertainment_table.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/event_perk/shared_lifeday_holo_table.iff']
diff --git a/scripts/loot/lootItems/exceptionallootchest/jedi_master_cloak.py b/scripts/loot/lootItems/exceptionallootchest/jedi_master_cloak.py
new file mode 100644
index 00000000..f8b19b7f
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/jedi_master_cloak.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/robe/shared_robe_s05_h1.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/exceptionallootchest/legendary_e5_carbine.py b/scripts/loot/lootItems/exceptionallootchest/legendary_e5_carbine.py
new file mode 100644
index 00000000..7550577b
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/legendary_e5_carbine.py
@@ -0,0 +1,37 @@
+
+def itemTemplate():
+
+ return ['object/weapon/ranged/carbine/shared_carbine_e5_legend.iff']
+
+def customItemName():
+
+ return 'Legendary E5 Carbine'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def requiredCL():
+
+ return 88
+
+def itemStats():
+
+ stats = ['mindamage','400','450']
+ stats += ['maxdamage','850','900']
+ stats += ['attackspeed','0.6','0.6']
+ stats += ['maxrange','0','50']
+ stats += ['damagetype','energy','energy']
+ stats += ['elemtype','@obj_attr_n:elemental_electricity','@obj_attr_n:elemental_electricity']
+ stats += ['elemdamage','23','23']
+ stats += ['weapontype','1','1']
+
+ return stats
diff --git a/scripts/loot/lootItems/exceptionallootchest/legendary_fwg5_pistol.py b/scripts/loot/lootItems/exceptionallootchest/legendary_fwg5_pistol.py
new file mode 100644
index 00000000..81e1e8b5
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/legendary_fwg5_pistol.py
@@ -0,0 +1,37 @@
+
+def itemTemplate():
+
+ return ['object/weapon/ranged/pistol/shared_pistol_fwg5_legendary.iff']
+
+def customItemName():
+
+ return 'Legendary FWG5 Pistol'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def requiredCL():
+
+ return 88
+
+def itemStats():
+
+ stats = ['mindamage','250','270']
+ stats += ['maxdamage','500','530']
+ stats += ['attackspeed','0.4','0.4']
+ stats += ['maxrange','0','35']
+ stats += ['damagetype','energy','energy']
+ stats += ['elemtype','@obj_attr_n:elemental_heat','@obj_attr_n:elemental_heat']
+ stats += ['elemdamage','35','35']
+ stats += ['weapontype','2','2']
+
+ return stats
diff --git a/scripts/loot/lootItems/exceptionallootchest/legendary_nightsister_energy_lance.py b/scripts/loot/lootItems/exceptionallootchest/legendary_nightsister_energy_lance.py
new file mode 100644
index 00000000..58756024
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/legendary_nightsister_energy_lance.py
@@ -0,0 +1,37 @@
+
+def itemTemplate():
+
+ return ['object/weapon/melee/polearm/shared_lance_nightsister_legendary.iff']
+
+def customItemName():
+
+ return 'Legendary Nightsister Energy Lance'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def requiredCL():
+
+ return 88
+
+def itemStats():
+
+ stats = ['mindamage','750','800']
+ stats += ['maxdamage','1100','1200']
+ stats += ['attackspeed','1.0','1.0']
+ stats += ['maxrange','0','5']
+ stats += ['damagetype','energy','energy']
+ stats += ['elemtype','@obj_attr_n:elemental_electricity','@obj_attr_n:elemental_electricity']
+ stats += ['elemdamage','50','50']
+ stats += ['weapontype','7','7']
+
+ return stats
diff --git a/scripts/loot/lootItems/exceptionallootchest/legendary_power_hammer.py b/scripts/loot/lootItems/exceptionallootchest/legendary_power_hammer.py
new file mode 100644
index 00000000..3224b384
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/legendary_power_hammer.py
@@ -0,0 +1,37 @@
+
+def itemTemplate():
+
+ return ['object/weapon/melee/2h_sword/shared_quest_2h_sword_battleaxe.iff']
+
+def customItemName():
+
+ return 'Legendary Power Hammer'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def requiredCL():
+
+ return 88
+
+def itemStats():
+
+ stats = ['mindamage','850','900']
+ stats += ['maxdamage','1250','1350']
+ stats += ['attackspeed','1.0','1.0']
+ stats += ['maxrange','0','5']
+ stats += ['damagetype','energy','energy']
+ stats += ['elemtype','@obj_attr_n:elemental_acid','@obj_attr_n:elemental_acid']
+ stats += ['elemdamage','20','20']
+ stats += ['weapontype','5','5']
+
+ return stats
diff --git a/scripts/loot/lootItems/exceptionallootchest/legendary_stun_baton.py b/scripts/loot/lootItems/exceptionallootchest/legendary_stun_baton.py
new file mode 100644
index 00000000..cbc9cb70
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/legendary_stun_baton.py
@@ -0,0 +1,37 @@
+
+def itemTemplate():
+
+ return ['object/weapon/melee/baton/shared_baton_stun_legendary.iff']
+
+def customItemName():
+
+ return 'Legendary Stun Baton'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def requiredCL():
+
+ return 88
+
+def itemStats():
+
+ stats = ['mindamage','550','600']
+ stats += ['maxdamage','1250','1300']
+ stats += ['attackspeed','1.0','1.0']
+ stats += ['maxrange','0','5']
+ stats += ['damagetype','energy','energy']
+ stats += ['elemtype','@obj_attr_n:elemental_electricity','@obj_attr_n:elemental_electricity']
+ stats += ['elemdamage','75','75']
+ stats += ['weapontype','5','5']
+
+ return stats
diff --git a/scripts/loot/lootItems/exceptionallootchest/legendary_t21_rifle.py b/scripts/loot/lootItems/exceptionallootchest/legendary_t21_rifle.py
new file mode 100644
index 00000000..66a8dd30
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/legendary_t21_rifle.py
@@ -0,0 +1,37 @@
+
+def itemTemplate():
+
+ return ['object/weapon/ranged/rifle/shared_rifle_t21_legendary.iff']
+
+def customItemName():
+
+ return 'Legendary T21 Rifle'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def requiredCL():
+
+ return 88
+
+def itemStats():
+
+ stats = ['mindamage','500','550']
+ stats += ['maxdamage','1050','1100']
+ stats += ['attackspeed','0.8','0.8']
+ stats += ['maxrange','0','64']
+ stats += ['damagetype','energy','energy']
+ stats += ['elemtype','@obj_attr_n:elemental_acid','@obj_attr_n:elemental_acid']
+ stats += ['elemdamage','30','30']
+ stats += ['weapontype','0','0']
+
+ return stats
diff --git a/scripts/loot/lootItems/exceptionallootchest/poster_block_turret_schematic.py b/scripts/loot/lootItems/exceptionallootchest/poster_block_turret_schematic.py
new file mode 100644
index 00000000..140bfe20
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/poster_block_turret_schematic.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_schematic_weapon_s03.iff']
diff --git a/scripts/loot/lootItems/exceptionallootchest/prayer_mobile.py b/scripts/loot/lootItems/exceptionallootchest/prayer_mobile.py
new file mode 100644
index 00000000..4009eb8a
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/prayer_mobile.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/ep3_rewards/shared_wke_prayer_mobile.iff']
diff --git a/scripts/loot/lootItems/exceptionallootchest/shard_of_ferocity.py b/scripts/loot/lootItems/exceptionallootchest/shard_of_ferocity.py
new file mode 100644
index 00000000..26186612
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/shard_of_ferocity.py
@@ -0,0 +1,26 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff']
+
+def customItemName():
+
+ return "Shard Of Ferocity"
+
+def biolink():
+
+ return 1
+
+def lootDescriptor():
+
+ return 'rarebuffitem'
+
+def itemStats():
+
+ stats =['proc_name','towCrystalUberCombat','towCrystalUberCombat']
+ stats +=['effectname','Ferocity','Ferocity']
+ stats +=['duration','180','180']
+ stats +=['cooldown','3600','3600']
+
+ return stats
+
diff --git a/scripts/loot/lootItems/exceptionallootchest/shard_of_retaliation.py b/scripts/loot/lootItems/exceptionallootchest/shard_of_retaliation.py
new file mode 100644
index 00000000..4bb1e5bc
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/shard_of_retaliation.py
@@ -0,0 +1,25 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff'] # correct iff not found
+
+def customItemName():
+
+ return "Shard Of Retaliation"
+
+def biolink():
+
+ return 1
+
+def lootDescriptor():
+
+ return 'rarebuffitem'
+
+def itemStats():
+
+ stats =['proc_name','towCrystalUberDs','towCrystalUberDs']
+ stats +=['effectname','towCrystalUberDs','towCrystalUberDs']
+ stats +=['duration','180','180']
+ stats +=['cooldown','3600','3600']
+
+ return stats
\ No newline at end of file
diff --git a/scripts/loot/lootItems/exceptionallootchest/sith_buff_holocron.py b/scripts/loot/lootItems/exceptionallootchest/sith_buff_holocron.py
new file mode 100644
index 00000000..65658e9b
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/sith_buff_holocron.py
@@ -0,0 +1,25 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_sith_holocron_01.iff']
+
+def customItemName():
+
+ return 'Sith Holocron'
+
+def biolink():
+
+ return 1
+
+def lootDescriptor():
+
+ return 'rarebuffitem'
+
+def itemStats():
+
+ stats =['proc_name','towCrystalABImmune','towCrystalABImmune']
+ stats +=['effectname','Forbidden Knowledge I','Forbidden Knowledge I']
+ stats +=['duration','180','180']
+ stats +=['cooldown','3600','3600']
+
+ return stats
\ No newline at end of file
diff --git a/scripts/loot/lootItems/exceptionallootchest/sith_relic.py b/scripts/loot/lootItems/exceptionallootchest/sith_relic.py
new file mode 100644
index 00000000..007516fd
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/sith_relic.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/mustafar/shared_sith_relic_01.iff']
diff --git a/scripts/loot/lootItems/exceptionallootchest/war_phoenix.py b/scripts/loot/lootItems/exceptionallootchest/war_phoenix.py
new file mode 100644
index 00000000..74e2a65c
--- /dev/null
+++ b/scripts/loot/lootItems/exceptionallootchest/war_phoenix.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_house_cleanup_rebel.iff']
diff --git a/scripts/loot/lootItems/holocrons/jedi_holocron_1_5.py b/scripts/loot/lootItems/holocrons/jedi_holocron_1_5.py
new file mode 100644
index 00000000..4b4c5f4a
--- /dev/null
+++ b/scripts/loot/lootItems/holocrons/jedi_holocron_1_5.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_jedi_holocron_01.iff']
+
+def customItemName():
+
+ return 'Strange Jedi HoloCron 1/5'
diff --git a/scripts/loot/lootItems/holocrons/jedi_holocron_2_5.py b/scripts/loot/lootItems/holocrons/jedi_holocron_2_5.py
new file mode 100644
index 00000000..1f48a31a
--- /dev/null
+++ b/scripts/loot/lootItems/holocrons/jedi_holocron_2_5.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_jedi_holocron_02.iff']
+
+def customItemName():
+
+ return 'Strange Jedi HoloCron 2/5'
diff --git a/scripts/loot/lootItems/holocrons/jedi_holocron_3_5.py b/scripts/loot/lootItems/holocrons/jedi_holocron_3_5.py
new file mode 100644
index 00000000..c356c65a
--- /dev/null
+++ b/scripts/loot/lootItems/holocrons/jedi_holocron_3_5.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_jedi_holocron_03.iff']
+
+def customItemName():
+
+ return 'Strange Jedi HoloCron 3/5'
diff --git a/scripts/loot/lootItems/holocrons/jedi_holocron_4_5.py b/scripts/loot/lootItems/holocrons/jedi_holocron_4_5.py
new file mode 100644
index 00000000..e9d35cb3
--- /dev/null
+++ b/scripts/loot/lootItems/holocrons/jedi_holocron_4_5.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_jedi_holocron_04.iff']
+
+def customItemName():
+
+ return 'Strange Jedi HoloCron 4/5'
diff --git a/scripts/loot/lootItems/holocrons/jedi_holocron_5_5.py b/scripts/loot/lootItems/holocrons/jedi_holocron_5_5.py
new file mode 100644
index 00000000..a6b896c5
--- /dev/null
+++ b/scripts/loot/lootItems/holocrons/jedi_holocron_5_5.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_jedi_holocron_05.iff']
+
+def customItemName():
+
+ return 'Strange Jedi HoloCron 5/5'
diff --git a/scripts/loot/lootItems/holocrons/sith_holocron_1_5.py b/scripts/loot/lootItems/holocrons/sith_holocron_1_5.py
new file mode 100644
index 00000000..eba59f0f
--- /dev/null
+++ b/scripts/loot/lootItems/holocrons/sith_holocron_1_5.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_sith_holocron_01.iff']
+
+def customItemName():
+
+ return 'Strange Sith HoloCron 1/5'
diff --git a/scripts/loot/lootItems/holocrons/sith_holocron_2_5.py b/scripts/loot/lootItems/holocrons/sith_holocron_2_5.py
new file mode 100644
index 00000000..d0a7caf2
--- /dev/null
+++ b/scripts/loot/lootItems/holocrons/sith_holocron_2_5.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_sith_holocron_02.iff']
+
+def customItemName():
+
+ return 'Strange Sith HoloCron 2/5'
diff --git a/scripts/loot/lootItems/holocrons/sith_holocron_3_5.py b/scripts/loot/lootItems/holocrons/sith_holocron_3_5.py
new file mode 100644
index 00000000..56a4a56e
--- /dev/null
+++ b/scripts/loot/lootItems/holocrons/sith_holocron_3_5.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_sith_holocron_03.iff']
+
+def customItemName():
+
+ return 'Strange Sith HoloCron 3/5'
diff --git a/scripts/loot/lootItems/holocrons/sith_holocron_4_5.py b/scripts/loot/lootItems/holocrons/sith_holocron_4_5.py
new file mode 100644
index 00000000..281e947d
--- /dev/null
+++ b/scripts/loot/lootItems/holocrons/sith_holocron_4_5.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_sith_holocron_04.iff']
+
+def customItemName():
+
+ return 'Strange Sith HoloCron 4/5'
diff --git a/scripts/loot/lootItems/holocrons/sith_holocron_5_5.py b/scripts/loot/lootItems/holocrons/sith_holocron_5_5.py
new file mode 100644
index 00000000..acc7671e
--- /dev/null
+++ b/scripts/loot/lootItems/holocrons/sith_holocron_5_5.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_sith_holocron_01.iff']
+
+def customItemName():
+
+ return 'Strange Sith HoloCron 5/5'
diff --git a/scripts/loot/lootItems/junk/armor_repair_device.py b/scripts/loot/lootItems/junk/armor_repair_device.py
new file mode 100644
index 00000000..079cd72a
--- /dev/null
+++ b/scripts/loot/lootItems/junk/armor_repair_device.py
@@ -0,0 +1,21 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_armor_repair_device_generic.iff']
+
+def customItemName():
+
+ return 'Armor Repair Device'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 28
+
+def junkType():
+
+ return 0
+
diff --git a/scripts/loot/lootItems/junk/chassis_blueprint.py b/scripts/loot/lootItems/junk/chassis_blueprint.py
new file mode 100644
index 00000000..2848f501
--- /dev/null
+++ b/scripts/loot/lootItems/junk/chassis_blueprint.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/generic_usable/shared_chassis_blueprint_usuable.iff']
+
+def customItemName():
+
+ return 'Chassis Blueprint'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 21
+
+def junkType():
+
+ return 0
\ No newline at end of file
diff --git a/scripts/loot/lootItems/junk/comlink.py b/scripts/loot/lootItems/junk/comlink.py
new file mode 100644
index 00000000..afc926dd
--- /dev/null
+++ b/scripts/loot/lootItems/junk/comlink.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_comlink_civilian_generic.iff']
+
+def customItemName():
+
+ return 'Comlink'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 15
+
+def junkType():
+
+ return 0
\ No newline at end of file
diff --git a/scripts/loot/lootItems/junk/damaged_datapad.py b/scripts/loot/lootItems/junk/damaged_datapad.py
new file mode 100644
index 00000000..8bb43fba
--- /dev/null
+++ b/scripts/loot/lootItems/junk/damaged_datapad.py
@@ -0,0 +1,21 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/misc/shared_damaged_datapad.iff']
+
+def customItemName():
+
+ return 'Damaged Datapad'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 8
+
+def junkType():
+
+ return 0
+
diff --git a/scripts/loot/lootItems/junk/ear_jewel.py b/scripts/loot/lootItems/junk/ear_jewel.py
new file mode 100644
index 00000000..6093adae
--- /dev/null
+++ b/scripts/loot/lootItems/junk/ear_jewel.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['/object/tangible/loot/npc_loot/shared_jewelry_ear_s02.iff']
+
+def customItemName():
+
+ return 'Ear jewel'
\ No newline at end of file
diff --git a/scripts/loot/lootItems/junk/explosive_dud.py b/scripts/loot/lootItems/junk/explosive_dud.py
new file mode 100644
index 00000000..1fdcf7c3
--- /dev/null
+++ b/scripts/loot/lootItems/junk/explosive_dud.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_firework_generic.iff']
+
+def customItemName():
+
+ return 'Explosive Dud'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 10
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/hyperdrive_unit.py b/scripts/loot/lootItems/junk/hyperdrive_unit.py
new file mode 100644
index 00000000..8ce2372d
--- /dev/null
+++ b/scripts/loot/lootItems/junk/hyperdrive_unit.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/misc/shared_hyperdrive_part_s01.iff']
+
+def customItemName():
+
+ return 'Hyperdrive Unit'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 34
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/id_chip.py b/scripts/loot/lootItems/junk/id_chip.py
new file mode 100644
index 00000000..38cb1161
--- /dev/null
+++ b/scripts/loot/lootItems/junk/id_chip.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_id_chip_generic.iff']
+
+def customItemName():
+
+ return 'ID Chip'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 14
+
+def junkType():
+
+ return 0
\ No newline at end of file
diff --git a/scripts/loot/lootItems/junk/impulse_detector.py b/scripts/loot/lootItems/junk/impulse_detector.py
new file mode 100644
index 00000000..6da7301b
--- /dev/null
+++ b/scripts/loot/lootItems/junk/impulse_detector.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_impulse_detector_01_generic.iff']
+
+def customItemName():
+
+ return 'Impulse Detector'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 17
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/laser_trap.py b/scripts/loot/lootItems/junk/laser_trap.py
new file mode 100644
index 00000000..fd8840b9
--- /dev/null
+++ b/scripts/loot/lootItems/junk/laser_trap.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_laser_trap_generic.iff']
+
+def customItemName():
+
+ return 'Laser Trap'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 22
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/launcher_tube.py b/scripts/loot/lootItems/junk/launcher_tube.py
new file mode 100644
index 00000000..8f6d60a2
--- /dev/null
+++ b/scripts/loot/lootItems/junk/launcher_tube.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_launcher_tube_generic.iff']
+
+def customItemName():
+
+ return 'Launcher Tube'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 16
+
+def junkType():
+
+ return 0
\ No newline at end of file
diff --git a/scripts/loot/lootItems/junk/ledger.py b/scripts/loot/lootItems/junk/ledger.py
new file mode 100644
index 00000000..ba93e09b
--- /dev/null
+++ b/scripts/loot/lootItems/junk/ledger.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_ledger_generic.iff']
+
+def customItemName():
+
+ return 'Ledger'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 13
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/magseal_detector.py b/scripts/loot/lootItems/junk/magseal_detector.py
new file mode 100644
index 00000000..e98ebf36
--- /dev/null
+++ b/scripts/loot/lootItems/junk/magseal_detector.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_magseal_detector_generic.iff']
+
+def customItemName():
+
+ return 'MagSeal Detector'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 15
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/medical_console.py b/scripts/loot/lootItems/junk/medical_console.py
new file mode 100644
index 00000000..d393fe32
--- /dev/null
+++ b/scripts/loot/lootItems/junk/medical_console.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_medical_console_generic.iff']
+
+def customItemName():
+
+ return 'Medical Console'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 24
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/medical_device.py b/scripts/loot/lootItems/junk/medical_device.py
new file mode 100644
index 00000000..8511594b
--- /dev/null
+++ b/scripts/loot/lootItems/junk/medical_device.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_medical_device_generic.iff']
+
+def customItemName():
+
+ return 'Medical Device'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 17
+
+def junkType():
+
+ return 0
\ No newline at end of file
diff --git a/scripts/loot/lootItems/junk/motor.py b/scripts/loot/lootItems/junk/motor.py
new file mode 100644
index 00000000..0e72d464
--- /dev/null
+++ b/scripts/loot/lootItems/junk/motor.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_small_motor_generic.iff']
+
+def customItemName():
+
+ return 'Motor'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 13
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/power_output_analyzer.py b/scripts/loot/lootItems/junk/power_output_analyzer.py
new file mode 100644
index 00000000..16114969
--- /dev/null
+++ b/scripts/loot/lootItems/junk/power_output_analyzer.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_power_output_analyzer_generic.iff']
+
+def customItemName():
+
+ return 'Power Output Analyzer'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 21
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/red_wiring.py b/scripts/loot/lootItems/junk/red_wiring.py
new file mode 100644
index 00000000..fbefb228
--- /dev/null
+++ b/scripts/loot/lootItems/junk/red_wiring.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_red_wiring_generic.iff']
+
+def customItemName():
+
+ return 'Red Wiring'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 12
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/shield_module.py b/scripts/loot/lootItems/junk/shield_module.py
new file mode 100644
index 00000000..db0fb690
--- /dev/null
+++ b/scripts/loot/lootItems/junk/shield_module.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_shield_module_generic.iff']
+
+def customItemName():
+
+ return 'Shield Module'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 20
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/software_module.py b/scripts/loot/lootItems/junk/software_module.py
new file mode 100644
index 00000000..58cc91ef
--- /dev/null
+++ b/scripts/loot/lootItems/junk/software_module.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_software_module_generic.iff']
+
+def customItemName():
+
+ return 'Software Module'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 12
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/survival_gear.py b/scripts/loot/lootItems/junk/survival_gear.py
new file mode 100644
index 00000000..efdaebfb
--- /dev/null
+++ b/scripts/loot/lootItems/junk/survival_gear.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_survival_equipment_generic.iff']
+
+def customItemName():
+
+ return 'Survival Gear'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 11
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/underpowered_survey_pad.py b/scripts/loot/lootItems/junk/underpowered_survey_pad.py
new file mode 100644
index 00000000..27fac34c
--- /dev/null
+++ b/scripts/loot/lootItems/junk/underpowered_survey_pad.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_survey_pad_adv_generic.iff']
+
+def customItemName():
+
+ return 'Underpowered Survey Pad'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 13
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/unidentified_serum_vial.py b/scripts/loot/lootItems/junk/unidentified_serum_vial.py
new file mode 100644
index 00000000..d9b5590e
--- /dev/null
+++ b/scripts/loot/lootItems/junk/unidentified_serum_vial.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_serum_vial_generic.iff']
+
+def customItemName():
+
+ return 'Unidentified Serum Vial'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 14
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/used_notebook.py b/scripts/loot/lootItems/junk/used_notebook.py
new file mode 100644
index 00000000..6d117330
--- /dev/null
+++ b/scripts/loot/lootItems/junk/used_notebook.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_notebook_generic.iff']
+
+def customItemName():
+
+ return 'Used Notebook'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 12
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/weak_droid_battery.py b/scripts/loot/lootItems/junk/weak_droid_battery.py
new file mode 100644
index 00000000..8647f305
--- /dev/null
+++ b/scripts/loot/lootItems/junk/weak_droid_battery.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/generic/shared_battery_useable_generic.iff']
+
+def customItemName():
+
+ return 'Weak Droid Battery'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 9
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/junk/worklight_generic.py b/scripts/loot/lootItems/junk/worklight_generic.py
new file mode 100644
index 00000000..3b3bed9a
--- /dev/null
+++ b/scripts/loot/lootItems/junk/worklight_generic.py
@@ -0,0 +1,20 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/npc_loot/shared_worklight_generic.iff']
+
+def customItemName():
+
+ return 'Generic Worklight'
+
+def stackable():
+
+ return 1
+
+def junkDealerPrice():
+
+ return 10
+
+def junkType():
+
+ return 0
diff --git a/scripts/loot/lootItems/kraytpearl_ancient_flawless.py b/scripts/loot/lootItems/kraytpearl_ancient_flawless.py
new file mode 100644
index 00000000..89e55d04
--- /dev/null
+++ b/scripts/loot/lootItems/kraytpearl_ancient_flawless.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_krayt_dragon_pearl.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/kraytpearl_cracked.py b/scripts/loot/lootItems/kraytpearl_cracked.py
new file mode 100644
index 00000000..89e55d04
--- /dev/null
+++ b/scripts/loot/lootItems/kraytpearl_cracked.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_krayt_dragon_pearl.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/kraytpearl_fair.py b/scripts/loot/lootItems/kraytpearl_fair.py
new file mode 100644
index 00000000..bf16c0ec
--- /dev/null
+++ b/scripts/loot/lootItems/kraytpearl_fair.py
@@ -0,0 +1,12 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_krayt_dragon_pearl.iff']
+
+def customItemName():
+
+ return ''
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/kraytpearl_flawless.py b/scripts/loot/lootItems/kraytpearl_flawless.py
new file mode 100644
index 00000000..89e55d04
--- /dev/null
+++ b/scripts/loot/lootItems/kraytpearl_flawless.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_krayt_dragon_pearl.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/kraytpearl_good.py b/scripts/loot/lootItems/kraytpearl_good.py
new file mode 100644
index 00000000..89e55d04
--- /dev/null
+++ b/scripts/loot/lootItems/kraytpearl_good.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_krayt_dragon_pearl.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/kraytpearl_poor.py b/scripts/loot/lootItems/kraytpearl_poor.py
new file mode 100644
index 00000000..89e55d04
--- /dev/null
+++ b/scripts/loot/lootItems/kraytpearl_poor.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_krayt_dragon_pearl.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/kraytpearl_premium.py b/scripts/loot/lootItems/kraytpearl_premium.py
new file mode 100644
index 00000000..89e55d04
--- /dev/null
+++ b/scripts/loot/lootItems/kraytpearl_premium.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_krayt_dragon_pearl.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/kraytpearl_quality.py b/scripts/loot/lootItems/kraytpearl_quality.py
new file mode 100644
index 00000000..89e55d04
--- /dev/null
+++ b/scripts/loot/lootItems/kraytpearl_quality.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_krayt_dragon_pearl.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/kraytpearl_scratched.py b/scripts/loot/lootItems/kraytpearl_scratched.py
new file mode 100644
index 00000000..89e55d04
--- /dev/null
+++ b/scripts/loot/lootItems/kraytpearl_scratched.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_krayt_dragon_pearl.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/kraytpearl_select.py b/scripts/loot/lootItems/kraytpearl_select.py
new file mode 100644
index 00000000..89e55d04
--- /dev/null
+++ b/scripts/loot/lootItems/kraytpearl_select.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_krayt_dragon_pearl.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/legendarylootchest/biological_focus_crystal.py b/scripts/loot/lootItems/legendarylootchest/biological_focus_crystal.py
new file mode 100644
index 00000000..f86494d1
--- /dev/null
+++ b/scripts/loot/lootItems/legendarylootchest/biological_focus_crystal.py
@@ -0,0 +1,29 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/quest/force_sensitive/shared_fs_crystal_health.iff'] # needs correct iff still
+
+def customItemName():
+
+ return "Biological Focus Crystal"
+
+def requiredLevelForEffect():
+
+ return 80
+
+def biolink():
+
+ return 1
+
+def lootDescriptor():
+
+ return 'rarebuffitem'
+
+def itemStats():
+
+ stats =['proc_name','forceCrystalHealth','forceCrystalHealth']
+ stats +=['effectname','Extended Constitution','Extended Constitution']
+ stats +=['duration','10800','10800']
+ stats +=['cooldown','86400','86400']
+
+ return stats
diff --git a/scripts/loot/lootItems/legendarylootchest/concentrated_bacta_tank.py b/scripts/loot/lootItems/legendarylootchest/concentrated_bacta_tank.py
new file mode 100644
index 00000000..e79e3e71
--- /dev/null
+++ b/scripts/loot/lootItems/legendarylootchest/concentrated_bacta_tank.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/static/item/shared_item_medic_bacta_tank_advanced.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/legendarylootchest/dna_storage_device_kowakian.py b/scripts/loot/lootItems/legendarylootchest/dna_storage_device_kowakian.py
new file mode 100644
index 00000000..43ca2f4a
--- /dev/null
+++ b/scripts/loot/lootItems/legendarylootchest/dna_storage_device_kowakian.py
@@ -0,0 +1,5 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/beast/barn_lite/shared_beast_dna_storage_device.iff']
+
diff --git a/scripts/loot/lootItems/legendarylootchest/dug_costume_instructions.py b/scripts/loot/lootItems/legendarylootchest/dug_costume_instructions.py
new file mode 100644
index 00000000..72f76e42
--- /dev/null
+++ b/scripts/loot/lootItems/legendarylootchest/dug_costume_instructions.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/costume_kit/shared_costume_deed.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/legendarylootchest/mercenaries_despair.py b/scripts/loot/lootItems/legendarylootchest/mercenaries_despair.py
new file mode 100644
index 00000000..edd13966
--- /dev/null
+++ b/scripts/loot/lootItems/legendarylootchest/mercenaries_despair.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_zabrak_f.iff']
+
+def STFparams():
+
+ return ['static_item_n','item_painting_zabrak_female','static_item_d','item_painting_zabrak_female']
diff --git a/scripts/loot/lootItems/legendarylootchest/mercenaries_lament.py b/scripts/loot/lootItems/legendarylootchest/mercenaries_lament.py
new file mode 100644
index 00000000..b68db0ae
--- /dev/null
+++ b/scripts/loot/lootItems/legendarylootchest/mercenaries_lament.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_zabrak_m.iff']
+
+def STFparams():
+
+ return ['static_item_n','item_painting_zabrak_male','static_item_d','item_painting_zabrak_male']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/legendarylootchest/nightsister_melee_armguard.py b/scripts/loot/lootItems/legendarylootchest/nightsister_melee_armguard.py
new file mode 100644
index 00000000..7c8d6cf8
--- /dev/null
+++ b/scripts/loot/lootItems/legendarylootchest/nightsister_melee_armguard.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/armor/nightsister/shared_armor_nightsister_bicep_r_s01.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/legendarylootchest/rare_painting.py b/scripts/loot/lootItems/legendarylootchest/rare_painting.py
new file mode 100644
index 00000000..25acee8a
--- /dev/null
+++ b/scripts/loot/lootItems/legendarylootchest/rare_painting.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_bestine_quest_painting.iff']
diff --git a/scripts/loot/lootItems/legendarylootchest/sunriders_destiny.py b/scripts/loot/lootItems/legendarylootchest/sunriders_destiny.py
new file mode 100644
index 00000000..b17aca6b
--- /dev/null
+++ b/scripts/loot/lootItems/legendarylootchest/sunriders_destiny.py
@@ -0,0 +1,23 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff']
+
+def customItemName():
+
+ return "Sunrider's Destiny"
+
+def customColor1():
+
+ return 29
+
+def lootDescriptor():
+
+ return 'rarecolorcrystal'
+
+def itemStats():
+
+ stats = ['elemtype','heat','heat']
+ stats +=['elemdamage','6','6']
+
+ return stats
diff --git a/scripts/loot/lootItems/legendarylootchest/synapse_focus_crystal.py b/scripts/loot/lootItems/legendarylootchest/synapse_focus_crystal.py
new file mode 100644
index 00000000..94e070ed
--- /dev/null
+++ b/scripts/loot/lootItems/legendarylootchest/synapse_focus_crystal.py
@@ -0,0 +1,29 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/quest/force_sensitive/shared_fs_crystal_force.iff'] # needs correct iff still
+
+def customItemName():
+
+ return "Synapse Focus Crystal"
+
+def requiredLevelForEffect():
+
+ return 80
+
+def biolink():
+
+ return 1
+
+def lootDescriptor():
+
+ return 'rarebuffitem'
+
+def itemStats():
+
+ stats =['proc_name','forceCrystalForce','forceCrystalForce']
+ stats +=['effectname','Extended Action','Extended Action']
+ stats +=['duration','10800','10800']
+ stats +=['cooldown','86400','86400']
+
+ return stats
diff --git a/scripts/loot/lootItems/powercrystal_fair.py b/scripts/loot/lootItems/powercrystal_fair.py
new file mode 100644
index 00000000..46f1add7
--- /dev/null
+++ b/scripts/loot/lootItems/powercrystal_fair.py
@@ -0,0 +1,12 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff']
+
+def customItemName():
+
+ return ''
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/powercrystal_flawless.py b/scripts/loot/lootItems/powercrystal_flawless.py
new file mode 100644
index 00000000..eadb333a
--- /dev/null
+++ b/scripts/loot/lootItems/powercrystal_flawless.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/powercrystal_good.py b/scripts/loot/lootItems/powercrystal_good.py
new file mode 100644
index 00000000..eadb333a
--- /dev/null
+++ b/scripts/loot/lootItems/powercrystal_good.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/powercrystal_perfect.py b/scripts/loot/lootItems/powercrystal_perfect.py
new file mode 100644
index 00000000..eadb333a
--- /dev/null
+++ b/scripts/loot/lootItems/powercrystal_perfect.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/powercrystal_poor.py b/scripts/loot/lootItems/powercrystal_poor.py
new file mode 100644
index 00000000..eadb333a
--- /dev/null
+++ b/scripts/loot/lootItems/powercrystal_poor.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/powercrystal_premium.py b/scripts/loot/lootItems/powercrystal_premium.py
new file mode 100644
index 00000000..eadb333a
--- /dev/null
+++ b/scripts/loot/lootItems/powercrystal_premium.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/powercrystal_quality.py b/scripts/loot/lootItems/powercrystal_quality.py
new file mode 100644
index 00000000..eadb333a
--- /dev/null
+++ b/scripts/loot/lootItems/powercrystal_quality.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/powercrystal_select.py b/scripts/loot/lootItems/powercrystal_select.py
new file mode 100644
index 00000000..eadb333a
--- /dev/null
+++ b/scripts/loot/lootItems/powercrystal_select.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/randomstatjewelry/random_stat_bracelet.py b/scripts/loot/lootItems/randomstatjewelry/random_stat_bracelet.py
new file mode 100644
index 00000000..6576cc22
--- /dev/null
+++ b/scripts/loot/lootItems/randomstatjewelry/random_stat_bracelet.py
@@ -0,0 +1,12 @@
+
+def itemTemplate():
+
+ bracelets = ['object/tangible/wearables/bracelet/shared_bracelet_s02_l.iff','object/tangible/wearables/bracelet/shared_bracelet_s02_r.iff']
+ bracelets += ['object/tangible/wearables/bracelet/shared_bracelet_s03_l.iff','object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff']
+ bracelets += ['object/tangible/wearables/bracelet/shared_bracelet_s04_l.iff','object/tangible/wearables/bracelet/shared_bracelet_s04_r.iff']
+ bracelets += ['object/tangible/wearables/bracelet/shared_bracelet_s05_l.iff','object/tangible/wearables/bracelet/shared_bracelet_s05_r.iff']
+ bracelets += ['object/tangible/wearables/bracelet/shared_bracelet_s06_l.iff','object/tangible/wearables/bracelet/shared_bracelet_s06_r.iff']
+ return bracelets
+
+def randomStatJewelry():
+ return
diff --git a/scripts/loot/lootItems/randomstatjewelry/random_stat_necklace.py b/scripts/loot/lootItems/randomstatjewelry/random_stat_necklace.py
new file mode 100644
index 00000000..947af23a
--- /dev/null
+++ b/scripts/loot/lootItems/randomstatjewelry/random_stat_necklace.py
@@ -0,0 +1,13 @@
+
+def itemTemplate():
+
+ necklaces = ['object/tangible/wearables/necklace/shared_necklace_s01.iff','object/tangible/wearables/necklace/shared_necklace_s02.iff']
+ necklaces += ['object/tangible/wearables/necklace/shared_necklace_s03.iff','object/tangible/wearables/necklace/shared_necklace_s04.iff']
+ necklaces += ['object/tangible/wearables/necklace/shared_necklace_s05.iff','object/tangible/wearables/necklace/shared_necklace_s06.iff']
+ necklaces += ['object/tangible/wearables/necklace/shared_necklace_s07.iff','object/tangible/wearables/necklace/shared_necklace_s08.iff']
+ necklaces += ['object/tangible/wearables/necklace/shared_necklace_s09.iff','object/tangible/wearables/necklace/shared_necklace_s10.iff']
+ necklaces += ['object/tangible/wearables/necklace/shared_necklace_s11.iff','object/tangible/wearables/necklace/shared_necklace_s12.iff']
+ return necklaces
+
+def randomStatJewelry():
+ return 1
diff --git a/scripts/loot/lootItems/randomstatjewelry/random_stat_ring.py b/scripts/loot/lootItems/randomstatjewelry/random_stat_ring.py
new file mode 100644
index 00000000..8f7d669b
--- /dev/null
+++ b/scripts/loot/lootItems/randomstatjewelry/random_stat_ring.py
@@ -0,0 +1,9 @@
+
+def itemTemplate():
+
+ rings = ['object/tangible/wearables/ring/shared_ring_s01.iff','object/tangible/wearables/ring/shared_ring_s02.iff']
+ rings += ['object/tangible/wearables/ring/shared_ring_s03.iff','object/tangible/wearables/ring/shared_ring_s04.iff']
+ return rings
+
+def randomStatJewelry():
+ return
diff --git a/scripts/loot/lootItems/randomstatjewelry/randomstatjewelry.py b/scripts/loot/lootItems/randomstatjewelry/randomstatjewelry.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootItems/rareloot/lava_geode.py b/scripts/loot/lootItems/rareloot/lava_geode.py
new file mode 100644
index 00000000..610f4b8c
--- /dev/null
+++ b/scripts/loot/lootItems/rareloot/lava_geode.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/mustafar/shared_lava_geode.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rareloot/rarelootchest1.py b/scripts/loot/lootItems/rareloot/rarelootchest1.py
new file mode 100644
index 00000000..1ba9ecc8
--- /dev/null
+++ b/scripts/loot/lootItems/rareloot/rarelootchest1.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/mustafar/shared_rare_loot_chest_3.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/rareloot/rarelootchest2.py b/scripts/loot/lootItems/rareloot/rarelootchest2.py
new file mode 100644
index 00000000..a7568822
--- /dev/null
+++ b/scripts/loot/lootItems/rareloot/rarelootchest2.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/shared_rare_loot_chest_3.iff']
+
+def customItemName():
+
+ return ''
diff --git a/scripts/loot/lootItems/rarelootchest/animal_hide_rack_style_1.py b/scripts/loot/lootItems/rarelootchest/animal_hide_rack_style_1.py
new file mode 100644
index 00000000..26f9ce06
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/animal_hide_rack_style_1.py
@@ -0,0 +1,7 @@
+
+def itemTemplate():
+ # Doesn't work because of https://github.com/projectswg/engine/blob/master/src/engine/resources/objects/Baseline.java#L446
+ #return ['object/draft_schematic/furniture/shared_furniture_hide_rack_s01.iff']
+ # just returning a dummy template for now
+ return ['object/tangible/bug_jar/shared_craftable_bug_habitat.iff']
+
diff --git a/scripts/loot/lootItems/rarelootchest/animal_hide_rack_style_2.py b/scripts/loot/lootItems/rarelootchest/animal_hide_rack_style_2.py
new file mode 100644
index 00000000..7e5d20d4
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/animal_hide_rack_style_2.py
@@ -0,0 +1,7 @@
+
+def itemTemplate():
+ # Doesn't work because of https://github.com/projectswg/engine/blob/master/src/engine/resources/objects/Baseline.java#L446
+ #return ['object/draft_schematic/furniture/shared_furniture_hide_rack_s02.iff']
+ # just returning a dummy template for now
+ return ['object/tangible/bug_jar/shared_craftable_bug_habitat.iff']
+
diff --git a/scripts/loot/lootItems/rarelootchest/animal_hide_rack_style_3.py b/scripts/loot/lootItems/rarelootchest/animal_hide_rack_style_3.py
new file mode 100644
index 00000000..31df3dc8
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/animal_hide_rack_style_3.py
@@ -0,0 +1,7 @@
+
+def itemTemplate():
+ # Doesn't work because of https://github.com/projectswg/engine/blob/master/src/engine/resources/objects/Baseline.java#L446
+ #return ['object/draft_schematic/furniture/shared_furniture_hide_rack_s03.iff']
+ # just returning a dummy template for now
+ return ['object/tangible/bug_jar/shared_craftable_bug_habitat.iff']
+
diff --git a/scripts/loot/lootItems/rarelootchest/animal_hide_rack_style_4.py b/scripts/loot/lootItems/rarelootchest/animal_hide_rack_style_4.py
new file mode 100644
index 00000000..d2a90a57
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/animal_hide_rack_style_4.py
@@ -0,0 +1,7 @@
+
+def itemTemplate():
+ # Doesn't work because of https://github.com/projectswg/engine/blob/master/src/engine/resources/objects/Baseline.java#L446
+ #return ['object/draft_schematic/furniture/shared_furniture_hide_rack_s04.iff']
+ # just returning a dummy template for now
+ return ['object/tangible/bug_jar/shared_craftable_bug_habitat.iff']
+
diff --git a/scripts/loot/lootItems/rarelootchest/at_st_pilots_helmet.py b/scripts/loot/lootItems/rarelootchest/at_st_pilots_helmet.py
new file mode 100644
index 00000000..511decc6
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/at_st_pilots_helmet.py
@@ -0,0 +1,7 @@
+
+def itemTemplate():
+
+ return ['object/tangible/mission/quest_item/shared_bren_kingal_q4_needed.iff']
+
+#def customItemName():
+
diff --git a/scripts/loot/lootItems/rarelootchest/aurilian_sculpture_section_1.py b/scripts/loot/lootItems/rarelootchest/aurilian_sculpture_section_1.py
new file mode 100644
index 00000000..04cbdebb
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/aurilian_sculpture_section_1.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/quest/force_sensitive/shared_fs_sculpture_1.iff'] # needs verification
diff --git a/scripts/loot/lootItems/rarelootchest/aurilian_sculpture_section_2.py b/scripts/loot/lootItems/rarelootchest/aurilian_sculpture_section_2.py
new file mode 100644
index 00000000..1830c89e
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/aurilian_sculpture_section_2.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/quest/force_sensitive/shared_fs_sculpture_2.iff'] # needs verification
diff --git a/scripts/loot/lootItems/rarelootchest/aurilian_sculpture_section_3.py b/scripts/loot/lootItems/rarelootchest/aurilian_sculpture_section_3.py
new file mode 100644
index 00000000..76ece5d6
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/aurilian_sculpture_section_3.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/quest/force_sensitive/shared_fs_sculpture_3.iff'] # needs verification
diff --git a/scripts/loot/lootItems/rarelootchest/aurilian_sculpture_section_4.py b/scripts/loot/lootItems/rarelootchest/aurilian_sculpture_section_4.py
new file mode 100644
index 00000000..f96fb1db
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/aurilian_sculpture_section_4.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/quest/force_sensitive/shared_fs_sculpture_4.iff'] # needs verification
diff --git a/scripts/loot/lootItems/rarelootchest/banes_heart.py b/scripts/loot/lootItems/rarelootchest/banes_heart.py
new file mode 100644
index 00000000..e7a0db2b
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/banes_heart.py
@@ -0,0 +1,23 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff']
+
+def customItemName():
+
+ return "Bane's Heart"
+
+def customColor1():
+
+ return 16
+
+def lootDescriptor():
+
+ return 'rarecolorcrystal'
+
+def itemStats():
+
+ stats = ['elemtype','electricity','electricity']
+ stats +=['elemdamage','5','5']
+
+ return stats
diff --git a/scripts/loot/lootItems/rarelootchest/bar_corner_piece_1.py b/scripts/loot/lootItems/rarelootchest/bar_corner_piece_1.py
new file mode 100644
index 00000000..2a8d9aca
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/bar_corner_piece_1.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/draft_schematic/furniture/shared_furniture_diner_counter_corner.iff'] # needs verification
diff --git a/scripts/loot/lootItems/rarelootchest/bar_corner_piece_2.py b/scripts/loot/lootItems/rarelootchest/bar_corner_piece_2.py
new file mode 100644
index 00000000..2a8d9aca
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/bar_corner_piece_2.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/draft_schematic/furniture/shared_furniture_diner_counter_corner.iff'] # needs verification
diff --git a/scripts/loot/lootItems/rarelootchest/bar_corner_piece_3.py b/scripts/loot/lootItems/rarelootchest/bar_corner_piece_3.py
new file mode 100644
index 00000000..2a8d9aca
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/bar_corner_piece_3.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/draft_schematic/furniture/shared_furniture_diner_counter_corner.iff'] # needs verification
diff --git a/scripts/loot/lootItems/rarelootchest/bar_counter_large.py b/scripts/loot/lootItems/rarelootchest/bar_counter_large.py
new file mode 100644
index 00000000..2a8d9aca
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/bar_counter_large.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/draft_schematic/furniture/shared_furniture_diner_counter_corner.iff'] # needs verification
diff --git a/scripts/loot/lootItems/rarelootchest/bothan_beauty.py b/scripts/loot/lootItems/rarelootchest/bothan_beauty.py
new file mode 100644
index 00000000..5815f08e
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/bothan_beauty.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_bothan_f.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/bothan_buff.py b/scripts/loot/lootItems/rarelootchest/bothan_buff.py
new file mode 100644
index 00000000..5440f81e
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/bothan_buff.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_bothan_m.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/cast_wing_in_flight.py b/scripts/loot/lootItems/rarelootchest/cast_wing_in_flight.py
new file mode 100644
index 00000000..ea714d38
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/cast_wing_in_flight.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/veteran_reward/one_year_anniversary/shared_painting_01.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/corellian_seaside.py b/scripts/loot/lootItems/rarelootchest/corellian_seaside.py
new file mode 100644
index 00000000..45db7bc5
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/corellian_seaside.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_corl_02.iff']
+
+def STFparams():
+
+ return ['static_item_n','item_painting_corl_02','static_item_d','item_painting_corl_02']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/data_disk_hologram.py b/scripts/loot/lootItems/rarelootchest/data_disk_hologram.py
new file mode 100644
index 00000000..0a34621e
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/data_disk_hologram.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/decorative/shared_frn_hologram_data_disk_s01.iff'] # needs verification
diff --git a/scripts/loot/lootItems/rarelootchest/decorative_bubble_tank.py b/scripts/loot/lootItems/rarelootchest/decorative_bubble_tank.py
new file mode 100644
index 00000000..a308bef3
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/decorative_bubble_tank.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/loot_schematic/shared_bubble_tank_schematic.iff'] # needs visual verification
diff --git a/scripts/loot/lootItems/rarelootchest/droid_in_contrast.py b/scripts/loot/lootItems/rarelootchest/droid_in_contrast.py
new file mode 100644
index 00000000..4aa8ca91
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/droid_in_contrast.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_droid_bright.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/drum.py b/scripts/loot/lootItems/rarelootchest/drum.py
new file mode 100644
index 00000000..d4120e07
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/drum.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/container/drum/shared_warren_drum_loot.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/emperors_eyes.py b/scripts/loot/lootItems/rarelootchest/emperors_eyes.py
new file mode 100644
index 00000000..c3e9ef7d
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/emperors_eyes.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/veteran_reward/one_year_anniversary/shared_painting_09.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/family_bonds.py b/scripts/loot/lootItems/rarelootchest/family_bonds.py
new file mode 100644
index 00000000..decc3afa
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/family_bonds.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/event_perk/shared_lifeday_painting.iff']
+
+def STFparams():
+
+ return ['static_item_n','item_event_lifeday_family_painting','static_item_d','item_event_lifeday_family_painting']
diff --git a/scripts/loot/lootItems/rarelootchest/feared.py b/scripts/loot/lootItems/rarelootchest/feared.py
new file mode 100644
index 00000000..c6302766
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/feared.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_rodian_f.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/fighter_study.py b/scripts/loot/lootItems/rarelootchest/fighter_study.py
new file mode 100644
index 00000000..9da55486
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/fighter_study.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/veteran_reward/one_year_anniversary/shared_painting_05.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/fighters_courage.py b/scripts/loot/lootItems/rarelootchest/fighters_courage.py
new file mode 100644
index 00000000..b5e6aa5a
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/fighters_courage.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_trandoshan_m_01.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/geonosian_costume_instructions.py b/scripts/loot/lootItems/rarelootchest/geonosian_costume_instructions.py
new file mode 100644
index 00000000..72f76e42
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/geonosian_costume_instructions.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/costume_kit/shared_costume_deed.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/hanging_life_day_orb.py b/scripts/loot/lootItems/rarelootchest/hanging_life_day_orb.py
new file mode 100644
index 00000000..24ff425b
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/hanging_life_day_orb.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/decorative/shared_event_lifeday07_orb.iff'] # needs verification
diff --git a/scripts/loot/lootItems/rarelootchest/hutt_greed.py b/scripts/loot/lootItems/rarelootchest/hutt_greed.py
new file mode 100644
index 00000000..59f420ae
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/hutt_greed.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/veteran_reward/one_year_anniversary/shared_painting_06.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/imperial_oppression.py b/scripts/loot/lootItems/rarelootchest/imperial_oppression.py
new file mode 100644
index 00000000..137fd83a
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/imperial_oppression.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/veteran_reward/one_year_anniversary/shared_painting_08.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/jedi_statue_schematic.py b/scripts/loot/lootItems/rarelootchest/jedi_statue_schematic.py
new file mode 100644
index 00000000..0e8ba392
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/jedi_statue_schematic.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/draft_schematic/furniture/shared_must_furniture_jedi_statue.iff'] # needs verification
diff --git a/scripts/loot/lootItems/rarelootchest/jubilee_wheel_schematic.py b/scripts/loot/lootItems/rarelootchest/jubilee_wheel_schematic.py
new file mode 100644
index 00000000..596fcbdd
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/jubilee_wheel_schematic.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/decorative/object/shared_hoverlifter_speeder_crafted.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/kachirho_wall_cornucopia.py b/scripts/loot/lootItems/rarelootchest/kachirho_wall_cornucopia.py
new file mode 100644
index 00000000..85a71191
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/kachirho_wall_cornucopia.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/ep3/shared_poi_kash_mystic_tree_healthy.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/kowakian_cage.py b/scripts/loot/lootItems/rarelootchest/kowakian_cage.py
new file mode 100644
index 00000000..810362f8
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/kowakian_cage.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/event_perk/shared_lifeday_monkey_cage.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/krayt_costume_instructions.py b/scripts/loot/lootItems/rarelootchest/krayt_costume_instructions.py
new file mode 100644
index 00000000..72f76e42
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/krayt_costume_instructions.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/costume_kit/shared_costume_deed.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/large_fruit_stand_schematic.py b/scripts/loot/lootItems/rarelootchest/large_fruit_stand_schematic.py
new file mode 100644
index 00000000..9f57dba9
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/large_fruit_stand_schematic.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/event_perk/shared_fruit_stand.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/large_unmarked_crate.py b/scripts/loot/lootItems/rarelootchest/large_unmarked_crate.py
new file mode 100644
index 00000000..6393f2b9
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/large_unmarked_crate.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/container/drum/shared_large_plain_crate_s01.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/lava_geode.py b/scripts/loot/lootItems/rarelootchest/lava_geode.py
new file mode 100644
index 00000000..610f4b8c
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/lava_geode.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/mustafar/shared_lava_geode.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/life_day_lamp.py b/scripts/loot/lootItems/rarelootchest/life_day_lamp.py
new file mode 100644
index 00000000..37616eb5
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/life_day_lamp.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/decorative/shared_event_lifeday07_lamp.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/life_day_proud_wookie.py b/scripts/loot/lootItems/rarelootchest/life_day_proud_wookie.py
new file mode 100644
index 00000000..3b214b84
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/life_day_proud_wookie.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/lifeday/shared_lifeday_painting_s03.iff']
+
+def customItemName():
+
+ return 'Proud Wookiee'
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/life_day_red_robed_wookie.py b/scripts/loot/lootItems/rarelootchest/life_day_red_robed_wookie.py
new file mode 100644
index 00000000..240ff07b
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/life_day_red_robed_wookie.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/lifeday/shared_lifeday_painting_s01.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/living_canals.py b/scripts/loot/lootItems/rarelootchest/living_canals.py
new file mode 100644
index 00000000..b2cc46e2
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/living_canals.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/mustafar/shared_must_painting_04.iff']
+
+def STFparams():
+
+ return ['static_item_n','item_tow_decor_painting_02_04','static_item_d','item_tow_decor_painting_02_04']
diff --git a/scripts/loot/lootItems/rarelootchest/lugjack_machine_schematic.py b/scripts/loot/lootItems/rarelootchest/lugjack_machine_schematic.py
new file mode 100644
index 00000000..7715cf97
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/lugjack_machine_schematic.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/draft_schematic/furniture/shared_furniture_uber_lugjack.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/miniature_wroshyr_tree.py b/scripts/loot/lootItems/rarelootchest/miniature_wroshyr_tree.py
new file mode 100644
index 00000000..85a71191
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/miniature_wroshyr_tree.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/ep3/shared_poi_kash_mystic_tree_healthy.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/modified_fusion_reactor_schematic.py b/scripts/loot/lootItems/rarelootchest/modified_fusion_reactor_schematic.py
new file mode 100644
index 00000000..b1bcf947
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/modified_fusion_reactor_schematic.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/deed/generator_deed/shared_generator_fusion_deed.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/mustafarian_injector.py b/scripts/loot/lootItems/rarelootchest/mustafarian_injector.py
new file mode 100644
index 00000000..0fa3f8b7
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/mustafarian_injector.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/mustafar/shared_old_republic_tech_02.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/mynock_costume_instructions.py b/scripts/loot/lootItems/rarelootchest/mynock_costume_instructions.py
new file mode 100644
index 00000000..72f76e42
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/mynock_costume_instructions.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/costume_kit/shared_costume_deed.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/no_division.py b/scripts/loot/lootItems/rarelootchest/no_division.py
new file mode 100644
index 00000000..14f78f28
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/no_division.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_bw_stormtrooper.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/nym_collectible_globe.py b/scripts/loot/lootItems/rarelootchest/nym_collectible_globe.py
new file mode 100644
index 00000000..eb1c8d23
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/nym_collectible_globe.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/static/worldbuilding/terminal/shared_floor_console_tableglobe_01.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/pilgrimage.py b/scripts/loot/lootItems/rarelootchest/pilgrimage.py
new file mode 100644
index 00000000..b2360137
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/pilgrimage.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/decorative/shared_event_lifeday05_painting_01.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/poster_of_a_ship_schematic.py b/scripts/loot/lootItems/rarelootchest/poster_of_a_ship_schematic.py
new file mode 100644
index 00000000..9913adfe
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/poster_of_a_ship_schematic.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_schematic_transport_ship.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/poster_of_a_turret_schematic.py b/scripts/loot/lootItems/rarelootchest/poster_of_a_turret_schematic.py
new file mode 100644
index 00000000..fe51f7bb
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/poster_of_a_turret_schematic.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_schematic_weapon.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/poster_of_food_preparation.py b/scripts/loot/lootItems/rarelootchest/poster_of_food_preparation.py
new file mode 100644
index 00000000..413ec8cc
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/poster_of_food_preparation.py
@@ -0,0 +1,5 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_food_baking_s01.iff']
+ #return ['object/tangible/painting/shared_painting_food_baking_s02.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/proton_chair.py b/scripts/loot/lootItems/rarelootchest/proton_chair.py
new file mode 100644
index 00000000..94bd8336
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/proton_chair.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/lifeday/shared_lifeday_proton_chair.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/rancor_costume_instructions.py b/scripts/loot/lootItems/rarelootchest/rancor_costume_instructions.py
new file mode 100644
index 00000000..72f76e42
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/rancor_costume_instructions.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/costume_kit/shared_costume_deed.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/rotj_helmet.py b/scripts/loot/lootItems/rarelootchest/rotj_helmet.py
new file mode 100644
index 00000000..acc54422
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/rotj_helmet.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/quest/rebel/shared_rtp_leia_rebel_helmet.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/shard_of_the_serpent.py b/scripts/loot/lootItems/rarelootchest/shard_of_the_serpent.py
new file mode 100644
index 00000000..08728ddc
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/shard_of_the_serpent.py
@@ -0,0 +1,29 @@
+
+def itemTemplate():
+
+ return ['object/tangible/component/weapon/lightsaber/shared_lightsaber_module_force_crystal.iff']
+
+def customItemName():
+
+ return "Shard Of The Serpent"
+
+def biolink():
+
+ return 1
+
+def customColor1():
+
+ return 3
+
+def lootDescriptor():
+
+ return 'rarebuffitem'
+
+def itemStats():
+
+ stats =['proc_name','towCrystalUberCombat','towCrystalUberCombat']
+ stats +=['effectname','Harmonious Counteraction','Harmonious Counteraction']
+ stats +=['duration','180','180']
+ stats +=['cooldown','3600','3600']
+
+ return stats
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/stap1_vehicle_deed.py b/scripts/loot/lootItems/rarelootchest/stap1_vehicle_deed.py
new file mode 100644
index 00000000..cd731aec
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/stap1_vehicle_deed.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/deed/vehicle_deed/shared_speeder_stap_deed.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/target_dummy_black_sun.py b/scripts/loot/lootItems/rarelootchest/target_dummy_black_sun.py
new file mode 100644
index 00000000..7d85ed97
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/target_dummy_black_sun.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/mobile/shared_target_dummy_blacksun.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/target_dummy_rebel.py b/scripts/loot/lootItems/rarelootchest/target_dummy_rebel.py
new file mode 100644
index 00000000..0417d75b
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/target_dummy_rebel.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/mobile/shared_target_dummy_rebel_trooper.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/target_dummy_stormtrooper.py b/scripts/loot/lootItems/rarelootchest/target_dummy_stormtrooper.py
new file mode 100644
index 00000000..4ce37ad7
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/target_dummy_stormtrooper.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/mobile/shared_target_dummy_stormtrooper.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/tatooine_dune_speeder.py b/scripts/loot/lootItems/rarelootchest/tatooine_dune_speeder.py
new file mode 100644
index 00000000..c98b61bd
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/tatooine_dune_speeder.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/veteran_reward/one_year_anniversary/shared_painting_03.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/triumph.py b/scripts/loot/lootItems/rarelootchest/triumph.py
new file mode 100644
index 00000000..fad44d4e
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/triumph.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/decorative/shared_event_lifeday05_painting_03.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/ugnaught_costume_instructions.py b/scripts/loot/lootItems/rarelootchest/ugnaught_costume_instructions.py
new file mode 100644
index 00000000..72f76e42
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/ugnaught_costume_instructions.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/costume_kit/shared_costume_deed.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/victory.py b/scripts/loot/lootItems/rarelootchest/victory.py
new file mode 100644
index 00000000..48a181cc
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/victory.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_vader_victory.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/wampa_costume_instructions.py b/scripts/loot/lootItems/rarelootchest/wampa_costume_instructions.py
new file mode 100644
index 00000000..72f76e42
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/wampa_costume_instructions.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/item/costume_kit/shared_costume_deed.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/war_terminal.py b/scripts/loot/lootItems/rarelootchest/war_terminal.py
new file mode 100644
index 00000000..fcb691ca
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/war_terminal.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/decorative/object/tangible/beta/shared_beta_terminal_warp.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/warriors_honor.py b/scripts/loot/lootItems/rarelootchest/warriors_honor.py
new file mode 100644
index 00000000..1f9874c2
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/warriors_honor.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/painting/shared_painting_trandoshan_m.iff']
\ No newline at end of file
diff --git a/scripts/loot/lootItems/rarelootchest/wookie_home_banner_kit.py b/scripts/loot/lootItems/rarelootchest/wookie_home_banner_kit.py
new file mode 100644
index 00000000..10432fd0
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/wookie_home_banner_kit.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/decorative/shared_event_wookiee_shield.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/wookie_life_day_orb.py b/scripts/loot/lootItems/rarelootchest/wookie_life_day_orb.py
new file mode 100644
index 00000000..90e2b3a0
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/wookie_life_day_orb.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/decorative/shared_event_lifeday07_orb.iff'] # needs correct iff still
diff --git a/scripts/loot/lootItems/rarelootchest/xeno_couch.py b/scripts/loot/lootItems/rarelootchest/xeno_couch.py
new file mode 100644
index 00000000..6eb683cd
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/xeno_couch.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/house_cleanup/shared_xeno_couch.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/xeno_desk.py b/scripts/loot/lootItems/rarelootchest/xeno_desk.py
new file mode 100644
index 00000000..75478c35
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/xeno_desk.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/house_cleanup/shared_xeno_desk.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/xeno_desk_lamp.py b/scripts/loot/lootItems/rarelootchest/xeno_desk_lamp.py
new file mode 100644
index 00000000..26b580c3
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/xeno_desk_lamp.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/house_cleanup/shared_xeno_desk_lamp.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/xeno_rug.py b/scripts/loot/lootItems/rarelootchest/xeno_rug.py
new file mode 100644
index 00000000..6430ec09
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/xeno_rug.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/house_cleanup/shared_xeno_rug.iff']
diff --git a/scripts/loot/lootItems/rarelootchest/xeno_table.py b/scripts/loot/lootItems/rarelootchest/xeno_table.py
new file mode 100644
index 00000000..84542507
--- /dev/null
+++ b/scripts/loot/lootItems/rarelootchest/xeno_table.py
@@ -0,0 +1,4 @@
+
+def itemTemplate():
+
+ return ['object/tangible/furniture/house_cleanup/shared_xeno_table.iff']
diff --git a/scripts/loot/lootItems/relics/jedi_relic_1.py b/scripts/loot/lootItems/relics/jedi_relic_1.py
new file mode 100644
index 00000000..321819e2
--- /dev/null
+++ b/scripts/loot/lootItems/relics/jedi_relic_1.py
@@ -0,0 +1,8 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/mustafar/shared_jedi_relic_03.iff']
+
+def usedInCollection():
+
+ return 'One-Handed Fifth Generation Lightsaber'
diff --git a/scripts/loot/lootItems/relics/jedi_relic_2.py b/scripts/loot/lootItems/relics/jedi_relic_2.py
new file mode 100644
index 00000000..1460ae13
--- /dev/null
+++ b/scripts/loot/lootItems/relics/jedi_relic_2.py
@@ -0,0 +1,6 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/mustafar/shared_jedi_relic_03.iff']
+
+
diff --git a/scripts/loot/lootItems/treasureloot/bracelet_of_Inspired_Status(right).py b/scripts/loot/lootItems/treasureloot/bracelet_of_Inspired_Status(right).py
new file mode 100644
index 00000000..6df73bea
--- /dev/null
+++ b/scripts/loot/lootItems/treasureloot/bracelet_of_Inspired_Status(right).py
@@ -0,0 +1,21 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff']
+
+def customItemName():
+
+ return 'Bracelet of Inspired Status (Right)'
+
+def requiredProfession():
+
+ return 'Entertainer'
+
+def requiredCL():
+
+ return 80
+
+def itemSkillMods():
+
+ mods = ['expertise_en_inspire_pulse_duration_increase','1']
+ return mods
diff --git a/scripts/loot/lootItems/treasureloot/counter-toxin_wristband_prototype_IV_(right).py b/scripts/loot/lootItems/treasureloot/counter-toxin_wristband_prototype_IV_(right).py
new file mode 100644
index 00000000..7f34bf48
--- /dev/null
+++ b/scripts/loot/lootItems/treasureloot/counter-toxin_wristband_prototype_IV_(right).py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff']
+
+def customItemName():
+
+ return 'Adventurer Hiker & Hunter Counter-Toxin Wristband Prototype IV (right)'
+
+def biolink():
+
+ return 1
+
+def requiredCL():
+
+ return 75
+
+def itemSkillMods():
+
+ mods = ['absorption_bleeding','8']
+ mods += ['absorption_disease','8']
+ mods += ['absorption_fire','8']
+ mods += ['absorption_poison','8']
+ return mods
diff --git a/scripts/loot/lootItems/treasureloot/force_amplification_crystal.py b/scripts/loot/lootItems/treasureloot/force_amplification_crystal.py
new file mode 100644
index 00000000..aaf1e4d9
--- /dev/null
+++ b/scripts/loot/lootItems/treasureloot/force_amplification_crystal.py
@@ -0,0 +1,5 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/misc/shared_force_crystal.iff']
+
diff --git a/scripts/loot/lootItems/treasureloot/insurgency_wrist_implantat-BLACK-(right).py b/scripts/loot/lootItems/treasureloot/insurgency_wrist_implantat-BLACK-(right).py
new file mode 100644
index 00000000..3e748ccf
--- /dev/null
+++ b/scripts/loot/lootItems/treasureloot/insurgency_wrist_implantat-BLACK-(right).py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/bracelet/shared_bracelet_s06_r.iff']
+
+def customItemName():
+
+ return 'Corellidyne Personal Insurgency Wris Implantat -BLACK- (Right)'
+
+def requiredProfession():
+
+ return 'Spy'
+
+def requiredCL():
+
+ return 75
+
+def itemSkillMods():
+
+ mods = ['expertise_action_line_sp_dm','4']
+ mods += ['expertise_critical_line_sp_dm','4']
+ mods += ['expertise_damage_line_sp_dm','4']
+ mods += ['expertise_freeshot_sp_dm','4']
+ return mods
diff --git a/scripts/loot/lootItems/treasureloot/insurgent_scanner_wrist_module_(right).py b/scripts/loot/lootItems/treasureloot/insurgent_scanner_wrist_module_(right).py
new file mode 100644
index 00000000..3cb1d321
--- /dev/null
+++ b/scripts/loot/lootItems/treasureloot/insurgent_scanner_wrist_module_(right).py
@@ -0,0 +1,21 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff']
+
+def customItemName():
+
+ return 'Idellian Arrays PLFS-4000 Insurgent Scanner Wrist Module (Right)'
+
+def biolink():
+
+ return 1
+
+def requiredCL():
+
+ return 75
+
+def itemSkillMods():
+
+ mods = ['detect_hidden','10']
+ return mods
diff --git a/scripts/loot/lootItems/treasureloot/jedi_knight_meditation_bracelet_(right).py b/scripts/loot/lootItems/treasureloot/jedi_knight_meditation_bracelet_(right).py
new file mode 100644
index 00000000..9dfd3ca8
--- /dev/null
+++ b/scripts/loot/lootItems/treasureloot/jedi_knight_meditation_bracelet_(right).py
@@ -0,0 +1,26 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/bracelet/shared_bracelet_s04_r.iff']
+
+def customItemName():
+
+ return 'Jedi Knight Meditation Bracelet (right)'
+
+def requiredProfession():
+
+ return 'Jedi'
+
+def requiredCL():
+
+ return 75
+
+def biolink():
+
+ return 1
+
+def itemSkillMods():
+
+ mods = ['jedi_saber_assembly','3']
+ mods += ['jedi_saber_experimentation','10']
+ return mods
diff --git a/scripts/loot/lootItems/treasureloot/jedi_knights_wristguard_(right).py b/scripts/loot/lootItems/treasureloot/jedi_knights_wristguard_(right).py
new file mode 100644
index 00000000..ff605263
--- /dev/null
+++ b/scripts/loot/lootItems/treasureloot/jedi_knights_wristguard_(right).py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/bracelet/shared_bracelet_s02_r.iff']
+
+def customItemName():
+
+ return 'Jedi Knight\'s Wristguard (Right)'
+
+def requiredProfession():
+
+ return 'Jedi'
+
+def requiredCL():
+
+ return 85
+
+def itemSkillMods():
+
+ mods = ['expertise_action_line_fs_dm','4']
+ mods += ['expertise_critical_line_fs_dm','4']
+ mods += ['expertise_damage_line_fs_dm','4']
+ mods += ['expertise_freeshot_fs_dm','4']
+ return mods
diff --git a/scripts/loot/lootItems/treasureloot/jedi_wristguard(right).py b/scripts/loot/lootItems/treasureloot/jedi_wristguard(right).py
new file mode 100644
index 00000000..b8565ab8
--- /dev/null
+++ b/scripts/loot/lootItems/treasureloot/jedi_wristguard(right).py
@@ -0,0 +1,28 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/bracelet/shared_bracelet_s02_r.iff']
+
+def customItemName():
+
+ return 'Jedi\'s Wristguard (Right)'
+
+def requiredProfession():
+
+ return 'Jedi'
+
+def biolink():
+
+ return 1
+
+def requiredCL():
+
+ return 61
+
+def itemSkillMods():
+
+ mods = ['expertise_action_line_fs_dm','3']
+ mods += ['expertise_critical_line_fs_dm','3']
+ mods += ['expertise_damage_line_fs_dm','3']
+ mods += ['expertise_freeshot_fs_dm','3']
+ return mods
diff --git a/scripts/loot/lootItems/treasureloot/manufacturing_verdicator_200a_(right).py b/scripts/loot/lootItems/treasureloot/manufacturing_verdicator_200a_(right).py
new file mode 100644
index 00000000..1817be94
--- /dev/null
+++ b/scripts/loot/lootItems/treasureloot/manufacturing_verdicator_200a_(right).py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff']
+
+def customItemName():
+
+ return 'Saldalith Manufacturing Verdicator 200A (Right)'
+
+def requiredProfession():
+
+ return 'Medic'
+
+def requiredCL():
+
+ return 85
+
+def itemSkillMods():
+
+ mods = ['expertise_action_line_me_dm','4']
+ mods += ['expertise_critical_line_me_dm','4']
+ mods += ['expertise_damage_line_me_dm','4']
+ mods += ['expertise_healing_all','4']
+ return mods
diff --git a/scripts/loot/lootItems/treasureloot/mysterious_data_disk.py b/scripts/loot/lootItems/treasureloot/mysterious_data_disk.py
new file mode 100644
index 00000000..e81a23df
--- /dev/null
+++ b/scripts/loot/lootItems/treasureloot/mysterious_data_disk.py
@@ -0,0 +1,9 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/generic_usable/shared_datadisk_generic.iff']
+
+def customItemName():
+
+ return 'Mysterious Data Disk'
+
diff --git a/scripts/loot/lootItems/treasureloot/personnel_comlink_wrist-P4_(right).py b/scripts/loot/lootItems/treasureloot/personnel_comlink_wrist-P4_(right).py
new file mode 100644
index 00000000..34d0cfca
--- /dev/null
+++ b/scripts/loot/lootItems/treasureloot/personnel_comlink_wrist-P4_(right).py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff']
+
+def customItemName():
+
+ return 'SoroSuub Personnel Comlink Wrist-P4 (right)'
+
+def requiredProfession():
+
+ return 'Officer'
+
+def requiredCL():
+
+ return 85
+
+def itemSkillMods():
+
+ mods = ['expertise_action_line_of_sure','4']
+ mods += ['expertise_critical_line_of_sure','4']
+ mods += ['expertise_damage_line_of_sure','4']
+ mods += ['expertise_freeshot_of_sure','4']
+ return mods
diff --git a/scripts/loot/lootItems/treasureloot/targeter_ranging_wrist_assist_V4_(right).py b/scripts/loot/lootItems/treasureloot/targeter_ranging_wrist_assist_V4_(right).py
new file mode 100644
index 00000000..2c2d2d49
--- /dev/null
+++ b/scripts/loot/lootItems/treasureloot/targeter_ranging_wrist_assist_V4_(right).py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff']
+
+def customItemName():
+
+ return 'Merr-Sonn Targeter Ranging Wrist Assist V4 (right)'
+
+def requiredProfession():
+
+ return 'Smuggler'
+
+def requiredCL():
+
+ return 85
+
+def itemSkillMods():
+
+ mods = ['fast_attack_line_sm_dm','4']
+ mods += ['expertise_critical_line_sm_dm','4']
+ mods += ['expertise_damage_line_sm_dm','4']
+ mods += ['expertise_freeshot_sm_dm','4']
+ return mods
diff --git a/scripts/loot/lootItems/treasureloot/targeting_assist_wrist_implant_PTI-IV_(right).py b/scripts/loot/lootItems/treasureloot/targeting_assist_wrist_implant_PTI-IV_(right).py
new file mode 100644
index 00000000..adcac454
--- /dev/null
+++ b/scripts/loot/lootItems/treasureloot/targeting_assist_wrist_implant_PTI-IV_(right).py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff']
+
+def customItemName():
+
+ return 'Traxes BioElectronic Targeting Assist Wrist Implant PTI-IV (Right)'
+
+def requiredProfession():
+
+ return 'Commando'
+
+def requiredCL():
+
+ return 85
+
+def itemSkillMods():
+
+ mods = ['expertise_action_line_co_dm','4']
+ mods += ['expertise_critical_line_co_dm','4']
+ mods += ['expertise_damage_line_co_dm','4']
+ mods += ['expertise_freeshot_co_dm','4']
+ return mods
diff --git a/scripts/loot/lootItems/treasureloot/wrist_assault_booster_zulu_(right).py b/scripts/loot/lootItems/treasureloot/wrist_assault_booster_zulu_(right).py
new file mode 100644
index 00000000..61695558
--- /dev/null
+++ b/scripts/loot/lootItems/treasureloot/wrist_assault_booster_zulu_(right).py
@@ -0,0 +1,24 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff']
+
+def customItemName():
+
+ return 'Blastech Wristek - Wrist Assault Booster Zulu (right)'
+
+def requiredProfession():
+
+ return 'Bounty Hunter'
+
+def requiredCL():
+
+ return 85
+
+def itemSkillMods():
+
+ mods = ['expertise_action_line_fs_dm','4']
+ mods += ['expertise_critical_line_dm','4']
+ mods += ['expertise_damage_line_dm','4']
+ mods += ['expertise_freeshot_dm','4']
+ return mods
diff --git a/scripts/loot/lootItems/treasureloot/wrist_communications_scanner_SCNv4_(right).py b/scripts/loot/lootItems/treasureloot/wrist_communications_scanner_SCNv4_(right).py
new file mode 100644
index 00000000..f43a5684
--- /dev/null
+++ b/scripts/loot/lootItems/treasureloot/wrist_communications_scanner_SCNv4_(right).py
@@ -0,0 +1,22 @@
+
+def itemTemplate():
+
+ return ['object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff']
+
+def customItemName():
+
+ return 'Courier Wrist Communications Scanner SCNv4 (Right)'
+
+def requiredProfession():
+
+ return 'Bounty Hunter'
+
+def requiredCL():
+
+ return 75
+
+def itemSkillMods():
+
+ mods = ['droid_find_speed','10']
+ mods += ['expertise_critical_niche_pvp','2']
+ return mods
diff --git a/scripts/loot/lootItems/veryrareloot/rare_ankarres_sapphire.py b/scripts/loot/lootItems/veryrareloot/rare_ankarres_sapphire.py
new file mode 100644
index 00000000..cee3f5ae
--- /dev/null
+++ b/scripts/loot/lootItems/veryrareloot/rare_ankarres_sapphire.py
@@ -0,0 +1,19 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_purple_rnd_cut_gem_style1.iff']
+
+def customItemName():
+
+ return 'Rare Ankarres Sapphire'
+
+def biolink():
+
+ return 1
+
+def requiredCL():
+
+ return 80
+
+def customSetup(object):
+ object.setCustomName2("Success!")
\ No newline at end of file
diff --git a/scripts/loot/lootItems/veryrareloot/rare_corusca_gem.py b/scripts/loot/lootItems/veryrareloot/rare_corusca_gem.py
new file mode 100644
index 00000000..4b6c1544
--- /dev/null
+++ b/scripts/loot/lootItems/veryrareloot/rare_corusca_gem.py
@@ -0,0 +1,16 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_purple_rnd_cut_gem_style1.iff']
+
+def customItemName():
+
+ return 'Rare Corusca Gem'
+
+def biolink():
+
+ return 1
+
+def requiredCL():
+
+ return 80
diff --git a/scripts/loot/lootItems/veryrareloot/rare_nova_crystal.py b/scripts/loot/lootItems/veryrareloot/rare_nova_crystal.py
new file mode 100644
index 00000000..ccd74091
--- /dev/null
+++ b/scripts/loot/lootItems/veryrareloot/rare_nova_crystal.py
@@ -0,0 +1,17 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_purple_rnd_cut_gem_style1.iff']
+
+def customItemName():
+
+ return 'Rare Nova Crystal'
+
+def biolink():
+
+ return 1
+
+def requiredCL():
+
+ return 80
+
diff --git a/scripts/loot/lootItems/veryrareloot/rare_power_gem.py b/scripts/loot/lootItems/veryrareloot/rare_power_gem.py
new file mode 100644
index 00000000..f51777d3
--- /dev/null
+++ b/scripts/loot/lootItems/veryrareloot/rare_power_gem.py
@@ -0,0 +1,17 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_purple_rnd_cut_gem_style1.iff']
+
+def customItemName():
+
+ return 'Rare Power Gem'
+
+def biolink():
+
+ return 1
+
+def requiredCL():
+
+ return 80
+
diff --git a/scripts/loot/lootItems/veryrareloot/rare_rol_stone.py b/scripts/loot/lootItems/veryrareloot/rare_rol_stone.py
new file mode 100644
index 00000000..2795adff
--- /dev/null
+++ b/scripts/loot/lootItems/veryrareloot/rare_rol_stone.py
@@ -0,0 +1,17 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_purple_rnd_cut_gem_style1.iff']
+
+def customItemName():
+
+ return 'Rare Rol Stone'
+
+def biolink():
+
+ return 1
+
+def requiredCL():
+
+ return 80
+
diff --git a/scripts/loot/lootItems/veryrareloot/rare_sasho_gem.py b/scripts/loot/lootItems/veryrareloot/rare_sasho_gem.py
new file mode 100644
index 00000000..17a9ec0b
--- /dev/null
+++ b/scripts/loot/lootItems/veryrareloot/rare_sasho_gem.py
@@ -0,0 +1,17 @@
+
+def itemTemplate():
+
+ return ['object/tangible/loot/creature_loot/collections/shared_purple_rnd_cut_gem_style1.iff']
+
+def customItemName():
+
+ return 'Rare Sasho Gem'
+
+def biolink():
+
+ return 1
+
+def requiredCL():
+
+ return 80
+
diff --git a/scripts/loot/lootItems/weapons/carbine/EE3_carbine.py b/scripts/loot/lootItems/weapons/carbine/EE3_carbine.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootItems/weapons/gaderiffi_baton.py b/scripts/loot/lootItems/weapons/gaderiffi_baton.py
new file mode 100644
index 00000000..f0aa09e9
--- /dev/null
+++ b/scripts/loot/lootItems/weapons/gaderiffi_baton.py
@@ -0,0 +1,35 @@
+
+def itemTemplate():
+
+ return ['object/weapon/melee/baton/shared_baton_gaderiffi.iff']
+
+def customItemName():
+
+ return 'Gaderiffi Baton'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def requiredCL():
+
+ return 10
+
+def itemStats():
+
+ stats = ['mindamage','12','27']
+ stats += ['maxdamage','48','95']
+ stats += ['attackspeed','1.0','1.0']
+ stats += ['maxrange','0','4']
+ stats += ['damagetype','kinetic','kinetic']
+ stats += ['weapontype','4','4']
+
+ return stats
diff --git a/scripts/loot/lootItems/weapons/knife/janta_knife.py b/scripts/loot/lootItems/weapons/knife/janta_knife.py
new file mode 100644
index 00000000..669488b2
--- /dev/null
+++ b/scripts/loot/lootItems/weapons/knife/janta_knife.py
@@ -0,0 +1,15 @@
+
+def itemTemplate():
+
+ return ['object/weapon/melee/knife/shared_knife_janta.iff']
+
+def itemStats():
+
+ stats = ['mindamage','12','27']
+ stats += ['maxdamage','48','95']
+ stats += ['attackspeed','1.0','1.0']
+ stats += ['maxrange','0','4']
+ stats += ['damagetype','kinetic','kinetic']
+ stats += ['weapontype','4','4']
+
+ return stats
diff --git a/scripts/loot/lootItems/weapons/rifle/adjusted_cdef_rifle.py b/scripts/loot/lootItems/weapons/rifle/adjusted_cdef_rifle.py
new file mode 100644
index 00000000..63bef054
--- /dev/null
+++ b/scripts/loot/lootItems/weapons/rifle/adjusted_cdef_rifle.py
@@ -0,0 +1,35 @@
+
+def itemTemplate():
+
+ return ['object/weapon/ranged/rifle/shared_rifle_cdef.iff']
+
+def customItemName():
+
+ return 'Adjusted CDEF Rifle'
+
+def customItemStackCount():
+
+ return 1
+
+def customizationAttributes():
+
+ return []
+
+def customizationValues():
+
+ return []
+
+def requiredCL():
+
+ return 10
+
+def itemStats():
+
+ stats = ['mindamage','12','27']
+ stats += ['maxdamage','48','95']
+ stats += ['attackspeed','0.8','0.8']
+ stats += ['maxrange','0','64']
+ stats += ['damagetype','energy','energy']
+ stats += ['weapontype','0','0']
+
+ return stats
diff --git a/scripts/loot/lootItems/weapons/rifle/jawa_ion_rifle.py b/scripts/loot/lootItems/weapons/rifle/jawa_ion_rifle.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootItems/weapons/rifle/spraystick.py b/scripts/loot/lootItems/weapons/rifle/spraystick.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootPools/advanced_stims_80.py b/scripts/loot/lootPools/advanced_stims_80.py
new file mode 100644
index 00000000..ea905ef8
--- /dev/null
+++ b/scripts/loot/lootPools/advanced_stims_80.py
@@ -0,0 +1,8 @@
+
+def itemNames():
+
+ return ['adv_agility_stim_80','adv_power_stim_80']
+
+def itemChances():
+
+ return [50,50]
\ No newline at end of file
diff --git a/scripts/loot/lootPools/armor_various.py b/scripts/loot/lootPools/armor_various.py
new file mode 100644
index 00000000..aee801b3
--- /dev/null
+++ b/scripts/loot/lootPools/armor_various.py
@@ -0,0 +1,23 @@
+
+def itemNames():
+
+ components = ['bone_armor_bicep_left','bone_armor_bicep_right','bone_armor_boots','bone_armor_bracer_left','bone_armor_bracer_right','bone_armor_chestplate','bone_armor_gloves','bone_armor_helmet','bone_armor_leggings']
+ components += ['chitin_armor_bicep_left','chitin_armor_bicep_right','chitin_armor_boots','chitin_armor_bracer_left','chitin_armor_bracer_right','chitin_armor_chestplate','chitin_armor_gloves','chitin_armor_helmet','chitin_armor_leggings']
+ components += ['composite_armor_bicep_left','composite_armor_bicep_right','composite_armor_boots','composite_armor_bracer_left','composite_armor_bracer_right','composite_armor_chestplate','composite_armor_gloves','composite_armor_helmet','composite_armor_leggings']
+ components += ['ithorian_defender_armor_bicep_left','ithorian_defender_armor_bicep_right','ithorian_defender_armor_boots','ithorian_defender_armor_bracer_left','ithorian_defender_armor_bracer_right','ithorian_defender_armor_chestplate','ithorian_defender_armor_gloves','ithorian_defender_armor_helmet','ithorian_defender_armor_leggings']
+ components += ['ithorian_guardian_armor_bicep_left','ithorian_guardian_armor_bicep_right','ithorian_guardian_armor_boots','ithorian_guardian_armor_bracer_left','ithorian_guardian_armor_bracer_right','ithorian_guardian_armor_chestplate','ithorian_guardian_armor_gloves','ithorian_guardian_armor_helmet','ithorian_guardian_armor_leggings']
+ components += ['ithorian_sentinel_armor_bicep_left','ithorian_sentinel_armor_bicep_right','ithorian_sentinel_armor_boots','ithorian_sentinel_armor_bracer_left','ithorian_sentinel_armor_bracer_right','ithorian_sentinel_armor_chestplate','ithorian_sentinel_armor_gloves','ithorian_sentinel_armor_helmet','ithorian_sentinel_armor_leggings']
+ components += ['kashyyykian_black_mtn_armor_bicep_left','kashyyykian_black_mtn_armor_bicep_right','kashyyykian_black_mtn_armor_bracer_left','kashyyykian_black_mtn_armor_bracer_right','kashyyykian_black_mtn_armor_chestplate','kashyyykian_black_mtn_leggings']
+ components += ['kashyyykian_ceremonial_bicep_left','kashyyykian_ceremonial_bicep_right','kashyyykian_ceremonial_bracer_left','kashyyykian_ceremonial_bracer_right','kashyyykian_ceremonial_chestplate','kashyyykian_ceremonial_leggings']
+ components += ['kashyyykian_hunting_bicep_left','kashyyykian_hunting_bicep_right','kashyyykian_hunting_bracer_left','kashyyykian_hunting_bracer_right','kashyyykian_hunting_chestplate','kashyyykian_hunting_leggings']
+ components += ['marauder_armor_bicep_left','marauder_armor_bicep_right','marauder_armor_boots','marauder_armor_bracer_left','marauder_armor_bracer_right','marauder_armor_chestplate','marauder_armor_gloves','marauder_armor_helmet','marauder_armor_leggings']
+ components += ['padded_armor_bicep_left','padded_armor_bicep_right','padded_armor_boots','padded_armor_bracer_left','padded_armor_bracer_right','padded_armor_chestplate','padded_armor_gloves','padded_armor_helmet','padded_armor_leggings']
+ components += ['tantel_armor_bicep_left','tantel_armor_bicep_right','tantel_armor_boots','tantel_armor_bracer_left','tantel_armor_bracer_right','tantel_armor_chestplate','tantel_armor_gloves','tantel_armor_helmet','tantel_armor_leggings']
+ components += ['ubese_armor_bandolier','ubese_armor_boots','ubese_armor_bracer_left','ubese_armor_bracer_right','ubese_armor_gloves','ubese_armor_helmet','ubese_armor_jacket','ubese_armor_shirt']
+ return components
+
+def itemChances():
+
+ return [-1] # all equal
+
+
\ No newline at end of file
diff --git a/scripts/loot/lootPools/batons.py b/scripts/loot/lootPools/batons.py
new file mode 100644
index 00000000..99e26d99
--- /dev/null
+++ b/scripts/loot/lootPools/batons.py
@@ -0,0 +1,8 @@
+
+def itemNames():
+
+ return ['gaderiffi_baton']
+
+def itemChances():
+ return [100]
+
\ No newline at end of file
diff --git a/scripts/loot/lootPools/bh_armor_for_mando.py b/scripts/loot/lootPools/bh_armor_for_mando.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootPools/chronicle_relic.py b/scripts/loot/lootPools/chronicle_relic.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootPools/colorcrystals.py b/scripts/loot/lootPools/colorcrystals.py
new file mode 100644
index 00000000..4c42a245
--- /dev/null
+++ b/scripts/loot/lootPools/colorcrystals.py
@@ -0,0 +1,8 @@
+
+def itemNames():
+
+ return ['colorCrystal']
+
+def itemChances():
+
+ return [100]
\ No newline at end of file
diff --git a/scripts/loot/lootPools/composite_armor.py b/scripts/loot/lootPools/composite_armor.py
new file mode 100644
index 00000000..747a2995
--- /dev/null
+++ b/scripts/loot/lootPools/composite_armor.py
@@ -0,0 +1,10 @@
+
+def itemNames():
+
+ items = ['composite_armor_bicep_left','composite_armor_bicep_right','composite_armor_bracer_left','composite_armor_bracer_right']
+ items += ['composite_armor_chestplate','composite_armor_helmet','composite_armor_leggings','composite_armor_boots','composite_armor_gloves']
+ return items
+
+def itemChances():
+
+ return [11,11,11,11,11,11,11,11,12] # = 100%
\ No newline at end of file
diff --git a/scripts/loot/lootPools/consumable_buff_items.py b/scripts/loot/lootPools/consumable_buff_items.py
new file mode 100644
index 00000000..66f6cfb3
--- /dev/null
+++ b/scripts/loot/lootPools/consumable_buff_items.py
@@ -0,0 +1,6 @@
+
+def itemNames():
+ return ['flask_of_elba_water ','flask_of_naris-bud_tea','small_flask_of_nerfmilk']
+
+def itemChances():
+ return [33,33,33]
\ No newline at end of file
diff --git a/scripts/loot/lootPools/gem_collection_items.py b/scripts/loot/lootPools/gem_collection_items.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootPools/house_furniture.py b/scripts/loot/lootPools/house_furniture.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootPools/jedi_components_treasure.py b/scripts/loot/lootPools/jedi_components_treasure.py
new file mode 100644
index 00000000..91c26020
--- /dev/null
+++ b/scripts/loot/lootPools/jedi_components_treasure.py
@@ -0,0 +1,14 @@
+
+def itemNames():
+
+ components = ['jedi_relic_1','jedi_relic_2','colorcrystal']
+ components += ['powercrystal_select','powercrystal_premium']
+ components += ['kraytpearl_select','kraytpearl_premium','kraytpearl_flawless','kraytpearl_ancient_flawless']
+ components += ['jedi_holocron_2_5','jedi_holocron_4_5','sith_holocron_4_5']
+ return components
+
+def itemChances():
+
+ return [48,2,29,3,2,5,4,1,0.1,5.7,0.1,0.1] #11
+
+
\ No newline at end of file
diff --git a/scripts/loot/lootPools/jedi_relic_1.py b/scripts/loot/lootPools/jedi_relic_1.py
new file mode 100644
index 00000000..b18c248f
--- /dev/null
+++ b/scripts/loot/lootPools/jedi_relic_1.py
@@ -0,0 +1,8 @@
+
+def itemNames():
+
+ return ['jedi_relic_1']
+
+def itemChances():
+
+ return [100]
\ No newline at end of file
diff --git a/scripts/loot/lootPools/jediholocrons.py b/scripts/loot/lootPools/jediholocrons.py
new file mode 100644
index 00000000..a227cbe8
--- /dev/null
+++ b/scripts/loot/lootPools/jediholocrons.py
@@ -0,0 +1,8 @@
+
+def itemNames():
+
+ return ['jedi_holocron_1_5','jedi_holocron_2_5','jedi_holocron_3_5','jedi_holocron_4_5','jedi_holocron_5_5']
+
+def itemChances():
+
+ return [25,15,30,5,25]
\ No newline at end of file
diff --git a/scripts/loot/lootPools/junk.py b/scripts/loot/lootPools/junk.py
new file mode 100644
index 00000000..ef757825
--- /dev/null
+++ b/scripts/loot/lootPools/junk.py
@@ -0,0 +1,15 @@
+
+def itemNames():
+
+ templates=['damaged_datapad','red_wiring','worklight_generic','antenna','brain','eye','gland','heart','stomach','armor_repair_device'] #10
+ templates=templates+['brain','chassis_blueprint','comlink','explosive_dud','hyperdrive_unit','id_chip','impulse_detector','laser_trap'] #8
+ templates=templates+['launcher_tube','ledger','magseal_detector','medical_console','medical_device','motor','power_output_analyzer','shield_module'] #8
+ templates=templates+['software_module','survival_gear','underpowered_survey_pad','unidentified_serum_vial','used_notebook','weak_droid_battery'] #6
+ return templates
+
+def itemChances():
+ chances=[3.125,3.125,3.125,3.125,3.125,3.125,3.125,3.125]
+ chances=chances+[3.125,3.125,3.125,3.125,3.125,3.125,3.125,3.125]
+ chances=chances+[3.125,3.125,3.125,3.125,3.125,3.125,3.125,3.125]
+ chances=chances+[3.125,3.125,3.125,3.125,3.125,3.125,3.125,3.125]
+ return chances #32
\ No newline at end of file
diff --git a/scripts/loot/lootPools/kraytpearl_lowq.py b/scripts/loot/lootPools/kraytpearl_lowq.py
new file mode 100644
index 00000000..4fe709c2
--- /dev/null
+++ b/scripts/loot/lootPools/kraytpearl_lowq.py
@@ -0,0 +1,8 @@
+
+def itemNames():
+
+ return ['kraytpearl_cracked','kraytpearl_scratched','kraytpearl_poor']
+
+def itemChances():
+
+ return [33,33,34]
\ No newline at end of file
diff --git a/scripts/loot/lootPools/kraytpearls_range.py b/scripts/loot/lootPools/kraytpearls_range.py
new file mode 100644
index 00000000..23477840
--- /dev/null
+++ b/scripts/loot/lootPools/kraytpearls_range.py
@@ -0,0 +1,6 @@
+
+def itemTemplates():
+ return ['kraytpearl_fair','kraytpearl_good','kraytpearl_quality','kraytpearl_select','kraytpearl_premium','kraytpearl_flawless']
+
+def itemChances():
+ return [10,20,30,34,5,1] #= 100%
\ No newline at end of file
diff --git a/scripts/loot/lootPools/loot_kits_adhesives.py b/scripts/loot/lootPools/loot_kits_adhesives.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootPools/powercrystals_hiq.py b/scripts/loot/lootPools/powercrystals_hiq.py
new file mode 100644
index 00000000..63d33a9b
--- /dev/null
+++ b/scripts/loot/lootPools/powercrystals_hiq.py
@@ -0,0 +1,6 @@
+
+def itemNames():
+ return ['powercrystal_premium','powercrystal_flawless','powercrystal_perfect']
+
+def itemChances():
+ return [94,5,1] #= 100%
\ No newline at end of file
diff --git a/scripts/loot/lootPools/profession_bracelets_61.py b/scripts/loot/lootPools/profession_bracelets_61.py
new file mode 100644
index 00000000..68043333
--- /dev/null
+++ b/scripts/loot/lootPools/profession_bracelets_61.py
@@ -0,0 +1,8 @@
+
+def itemNames():
+ names = ['jedi_wristguard(right)']
+
+ return names
+
+def itemChances():
+ return [100]
\ No newline at end of file
diff --git a/scripts/loot/lootPools/profession_bracelets_75.py b/scripts/loot/lootPools/profession_bracelets_75.py
new file mode 100644
index 00000000..1ac31b60
--- /dev/null
+++ b/scripts/loot/lootPools/profession_bracelets_75.py
@@ -0,0 +1,8 @@
+
+def itemNames():
+ names = ['jedi_knight_meditation_bracelet_(right)','wrist_communications_scanner_SCNv4_(right)']
+ names += ['insurgent_scanner_wrist_module_(right)','counter-toxin_wristband_prototype_IV_(right)','insurgency_wrist_implantat-BLACK-(right)']
+ return names
+
+def itemChances():
+ return [20,20,20,20,20]
\ No newline at end of file
diff --git a/scripts/loot/lootPools/profession_bracelets_85.py b/scripts/loot/lootPools/profession_bracelets_85.py
new file mode 100644
index 00000000..dbaba8db
--- /dev/null
+++ b/scripts/loot/lootPools/profession_bracelets_85.py
@@ -0,0 +1,10 @@
+
+def itemNames():
+ names = ['jedi_knights_wristguard_(right)','wrist_assault_booster_zulu_(right)','targeting_assist_wrist_implant_PTI-IV_(right)']
+ names += ['personnel_comlink_wrist-P4_(right)','manufacturing_verdicator_200a_(right)']
+ names += ['targeter_ranging_wrist_assist_V4_(right)','bracelet_of_Inspired_Status(right)']
+
+ return names
+
+def itemChances():
+ return [16,14,14,14,14,14,14]
\ No newline at end of file
diff --git a/scripts/loot/lootPools/random_loot_primitives.py b/scripts/loot/lootPools/random_loot_primitives.py
new file mode 100644
index 00000000..206888dd
--- /dev/null
+++ b/scripts/loot/lootPools/random_loot_primitives.py
@@ -0,0 +1,8 @@
+
+def itemNames():
+
+ return ['janta_knife']
+
+def itemChances():
+ return [100]
+
\ No newline at end of file
diff --git a/scripts/loot/lootPools/random_loot_rifles.py b/scripts/loot/lootPools/random_loot_rifles.py
new file mode 100644
index 00000000..4992e807
--- /dev/null
+++ b/scripts/loot/lootPools/random_loot_rifles.py
@@ -0,0 +1,8 @@
+
+def itemNames():
+
+ return ['adjusted_cdef_rifle']
+
+def itemChances():
+ return [100]
+
\ No newline at end of file
diff --git a/scripts/loot/lootPools/random_stat_jewelry.py b/scripts/loot/lootPools/random_stat_jewelry.py
new file mode 100644
index 00000000..0e11105e
--- /dev/null
+++ b/scripts/loot/lootPools/random_stat_jewelry.py
@@ -0,0 +1,6 @@
+
+def itemNames():
+ return ['random_stat_bracelet','random_stat_necklace','random_stat_ring']
+
+def itemChances():
+ return [50,35,15] #= 100%
\ No newline at end of file
diff --git a/scripts/loot/lootPools/rare_buff_items.py b/scripts/loot/lootPools/rare_buff_items.py
new file mode 100644
index 00000000..b816eb79
--- /dev/null
+++ b/scripts/loot/lootPools/rare_buff_items.py
@@ -0,0 +1,8 @@
+
+def itemTemplates():
+ names = ['rare_nova_crystal','rare_rol_stone','rare_power_gem']
+ names += ['rare_corusca_gem','rare_sasho_gem','rare_ankarres_sapphire']
+ return names
+
+def itemChances():
+ return [15,17,17,17,17,17]
\ No newline at end of file
diff --git a/scripts/loot/lootPools/rareloot.py b/scripts/loot/lootPools/rareloot.py
new file mode 100644
index 00000000..435ebfce
--- /dev/null
+++ b/scripts/loot/lootPools/rareloot.py
@@ -0,0 +1,9 @@
+
+
+def itemNames():
+
+ templates=['rarelootchest1','rarelootchest2']
+ return templates
+
+def itemChances():
+ return [70,30]
\ No newline at end of file
diff --git a/scripts/loot/lootPools/sithholocrons.py b/scripts/loot/lootPools/sithholocrons.py
new file mode 100644
index 00000000..b264dabe
--- /dev/null
+++ b/scripts/loot/lootPools/sithholocrons.py
@@ -0,0 +1,8 @@
+
+def itemNames():
+
+ return ['sith_holocron_1_5','sith_holocron_2_5','sith_holocron_3_5','sith_holocron_4_5','sith_holocron_5_5']
+
+def itemChances():
+
+ return [25,15,30,5,25]
\ No newline at end of file
diff --git a/scripts/loot/lootPools/treasure_extra.py b/scripts/loot/lootPools/treasure_extra.py
new file mode 100644
index 00000000..9c6b639d
--- /dev/null
+++ b/scripts/loot/lootPools/treasure_extra.py
@@ -0,0 +1,8 @@
+
+def itemNames():
+ names = ['mysterious_data_disk']
+
+ return names
+
+def itemChances():
+ return [100]
\ No newline at end of file
diff --git a/scripts/loot/lootPools/treasure_hunter_collection_items.py b/scripts/loot/lootPools/treasure_hunter_collection_items.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootPools/tusken_clothing.py b/scripts/loot/lootPools/tusken_clothing.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootPools/tusken_raider_clothing.py b/scripts/loot/lootPools/tusken_raider_clothing.py
new file mode 100644
index 00000000..72762d37
--- /dev/null
+++ b/scripts/loot/lootPools/tusken_raider_clothing.py
@@ -0,0 +1,6 @@
+
+def itemNames():
+ return ['tusken_raider_dress','tusken_raider_boots','tusken_raider_gloves','tusken_raider_helmet','tusken_raider_bandolier']
+
+def itemChances():
+ return [20,20,20,20,20] #= 100%
\ No newline at end of file
diff --git a/scripts/loot/lootPools/various_schematics.py b/scripts/loot/lootPools/various_schematics.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootPools/weaponsmith_components.py b/scripts/loot/lootPools/weaponsmith_components.py
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/loot/lootPools/wearable_backpacks.py b/scripts/loot/lootPools/wearable_backpacks.py
new file mode 100644
index 00000000..ac7a299e
--- /dev/null
+++ b/scripts/loot/lootPools/wearable_backpacks.py
@@ -0,0 +1,6 @@
+
+def itemNames():
+ return ['textiles_survival_backpack_(schematic)','textiles_survival_backpack_V2_(schematic)']
+
+def itemChances():
+ return [60,40]
\ No newline at end of file
diff --git a/scripts/loot/rarelootchestcontents/exceptionaltable.py b/scripts/loot/rarelootchestcontents/exceptionaltable.py
new file mode 100644
index 00000000..f652f0a4
--- /dev/null
+++ b/scripts/loot/rarelootchestcontents/exceptionaltable.py
@@ -0,0 +1,48 @@
+
+def itemNames():
+ # Exceptional part
+ templates = ['bacta_tank','legendary_e5_carbine','legendary_fwg5_pistol','legendary_nightsister_energy_lance']
+ templates +=['legendary_power_hammer','legendary_stun_baton','legendary_t21_rifle','advertisement_rodian']
+ templates +=['cunning_of_tyranus','dna_storage_device','dusk_in_kachirho','emperors_senate_office_chair']
+ templates +=['fighter','gungan_statue_style_1_schematic','gungan_statue_style_2_schematic','gungan_statue_style_3_schematic']
+ templates +=['gungan_statue_style_4_schematic','holo_entertainment_table','jedi_master_cloak','jedi_relic_1']
+ templates +=['poster_block_turret_schematic','prayer_mobile','shard_of_ferocity','shard_of_retaliation']
+ templates +=['sith_buff_holocron','sith_relic','war_phoenix']
+ # Rare part
+ templates +=['animal_hide_rack_style_1','animal_hide_rack_style_2','animal_hide_rack_style_3','animal_hide_rack_style_4']
+ templates +=['at_st_pilots_helmet','aurilian_sculpture_section_1','aurilian_sculpture_section_2','aurilian_sculpture_section_3']
+ templates +=['aurilian_sculpture_section_4','banes_heart','bar_corner_piece_1','bar_corner_piece_2']
+ templates +=['bar_corner_piece_3','bar_counter_large','bothan_beauty','bothan_buff']
+ templates +=['cast_wing_in_flight','corellian_seaside','data_disk_hologram','decorative_bubble_tank']
+ templates +=['droid_in_contrast','drum','emperors_eyes','family_bonds']
+ templates +=['feared','fighter_study','fighters_courage','geonosian_costume_instructions']
+ templates +=['hanging_life_day_orb','hutt_greed','imperial_oppression','jedi_statue_schematic']
+ templates +=['jubilee_wheel_schematic','kachirho_wall_cornucopia','kowakian_cage','krayt_costume_instructions']
+ templates +=['large_fruit_stand_schematic','large_unmarked_crate','lava_geode','life_day_lamp']
+ templates +=['life_day_proud_wookie','life_day_red_robed_wookie','living_canals','lugjack_machine_schematic']
+ templates +=['miniature_wroshyr_tree','modified_fusion_reactor_schematic','mustafarian_injector','mynock_costume_instructions']
+ templates +=['no_division','nym_collectible_globe','pilgrimage','poster_of_a_ship_schematic']
+ templates +=['poster_of_a_turret_schematic','poster_of_food_preparation','proton_chair','rancor_costume_instructions']
+ templates +=['rotj_helmet','shard_of_the_serpent','stap1_vehicle_deed','target_dummy_black_sun']
+ templates +=['target_dummy_rebel','target_dummy_stormtrooper','tatooine_dune_speeder','triumph']
+ templates +=['ugnaught_costume_instructions','victory','wampa_costume_instructions','war_terminal']
+ templates +=['warriors honor','wookie_home_banner_kit','wookie_life_day_orb','xeno_couch']
+ templates +=['xeno_desk','xeno_desk_lamp','xeno_rug','xeno_table']
+
+ return templates
+
+def itemChances():
+ chances = [1.908,1.908,1.908,1.908,1.908,1.908,1.908,1.908,1.908,1.908] #27 Exceptionals
+ chances += [1.908,1.908,1.908,1.908,1.908,1.908,1.908,1.908,1.908,1.908]
+ chances += [1.908,1.908,1.908,1.908,1.908,1.908,1.908]
+ chances += [0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636] #76 Rares
+ chances += [0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636]
+ chances += [0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636]
+ chances += [0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636]
+ chances += [0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636]
+ chances += [0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636]
+ chances += [0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636,0.636]
+ chances += [0.636,0.636,0.636,0.636,0.636,0.784]
+
+ return chances
+
\ No newline at end of file
diff --git a/scripts/loot/rarelootchestcontents/legendarytable.py b/scripts/loot/rarelootchestcontents/legendarytable.py
new file mode 100644
index 00000000..c46a7855
--- /dev/null
+++ b/scripts/loot/rarelootchestcontents/legendarytable.py
@@ -0,0 +1,51 @@
+
+def itemNames():
+ # Legendary part
+ templates = ['biological_focus_crystal','synapse_focus_crystal','concentrated_bacta_tank','dna_storage_device_kowakian']
+ templates +=['dug_costume_instructions','mercenaries_despair','mercenaries_lament','nightsister_melee_armguard']
+ templates +=['rare_painting','sunriders_destiny'] # 10 items
+ # Exceptional part
+ templates +=['bacta_tank','legendary_e5_carbine','legendary_fwg5_pistol','legendary_nightsister_energy_lance']
+ templates +=['legendary_power_hammer','legendary_stun_baton','legendary_t21_rifle','advertisement_rodian']
+ templates +=['cunning_of_tyranus','dna_storage_device','dusk_in_kachirho','emperors_senate_office_chair']
+ templates +=['fighter','gungan_statue_style_1_schematic','gungan_statue_style_2_schematic','gungan_statue_style_3_schematic']
+ templates +=['gungan_statue_style_4_schematic','holo_entertainment_table','jedi_master_cloak','jedi_relic_1']
+ templates +=['poster_block_turret_schematic','prayer_mobile','shard_of_ferocity','shard_of_retaliation']
+ templates +=['sith_buff_holocron','sith_relic','war_phoenix']
+ # Rare part
+ templates +=['animal_hide_rack_style_1','animal_hide_rack_style_2','animal_hide_rack_style_3','animal_hide_rack_style_4']
+ templates +=['at_st_pilots_helmet','aurilian_sculpture_section_1','aurilian_sculpture_section_2','aurilian_sculpture_section_3']
+ templates +=['aurilian_sculpture_section_4','banes_heart','bar_corner_piece_1','bar_corner_piece_2']
+ templates +=['bar_corner_piece_3','bar_counter_large','bothan_beauty','bothan_buff']
+ templates +=['cast_wing_in_flight','corellian_seaside','data_disk_hologram','decorative_bubble_tank']
+ templates +=['droid_in_contrast','drum','emperors_eyes','family_bonds']
+ templates +=['feared','fighter_study','fighters_courage','geonosian_costume_instructions']
+ templates +=['hanging_life_day_orb','hutt_greed','imperial_oppression','jedi_statue_schematic']
+ templates +=['jubilee_wheel_schematic','kachirho_wall_cornucopia','kowakian_cage','krayt_costume_instructions']
+ templates +=['large_fruit_stand_schematic','large_unmarked_crate','lava_geode','life_day_lamp']
+ templates +=['life_day_proud_wookie','life_day_red_robed_wookie','living_canals','lugjack_machine_schematic']
+ templates +=['miniature_wroshyr_tree','modified_fusion_reactor_schematic','mustafarian_injector','mynock_costume_instructions']
+ templates +=['no_division','nym_collectible_globe','pilgrimage','poster_of_a_ship_schematic']
+ templates +=['poster_of_a_turret_schematic','poster_of_food_preparation','proton_chair','rancor_costume_instructions']
+ templates +=['rotj_helmet','shard_of_the_serpent','stap1_vehicle_deed','target_dummy_black_sun']
+ templates +=['target_dummy_rebel','target_dummy_stormtrooper','tatooine_dune_speeder','triumph']
+ templates +=['ugnaught_costume_instructions','victory','wampa_costume_instructions','war_terminal']
+ templates +=['warriors honor','wookie_home_banner_kit','wookie_life_day_orb','xeno_couch']
+ templates +=['xeno_desk','xeno_desk_lamp','xeno_rug','xeno_table']
+ return templates
+
+def itemChances():
+ chances = [1.875,1.875,1.875,1.875,1.875,1.875,1.875,1.875,1.875,1.875] #10 Legendaries
+ chances += [1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25] #27 Exceptionals
+ chances += [1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25,1.25]
+ chances += [1.25,1.25,1.25,1.25,1.25,1.25,1.25]
+ chances += [0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625] #76 Rares
+ chances += [0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625]
+ chances += [0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625]
+ chances += [0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625]
+ chances += [0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625]
+ chances += [0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625]
+ chances += [0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625,0.625]
+ chances += [0.625,0.625,0.625,0.625,0.625,0.625]
+
+ return chances
\ No newline at end of file
diff --git a/scripts/loot/rarelootchestcontents/raretable.py b/scripts/loot/rarelootchestcontents/raretable.py
new file mode 100644
index 00000000..8e049299
--- /dev/null
+++ b/scripts/loot/rarelootchestcontents/raretable.py
@@ -0,0 +1,36 @@
+
+def itemNames():
+
+ items = ['animal_hide_rack_style_1','animal_hide_rack_style_2','animal_hide_rack_style_3','animal_hide_rack_style_4']
+ items +=['at_st_pilots_helmet','aurilian_sculpture_section_1','aurilian_sculpture_section_2','aurilian_sculpture_section_3']
+ items +=['aurilian_sculpture_section_4','banes_heart','bar_corner_piece_1','bar_corner_piece_2']
+ items +=['bar_corner_piece_3','bar_counter_large','bothan_beauty','bothan_buff']
+ items +=['cast_wing_in_flight','corellian_seaside','data_disk_hologram','decorative_bubble_tank']
+ items +=['droid_in_contrast','drum','emperors_eyes','family_bonds']
+ items +=['feared','fighter_study','fighters_courage','geonosian_costume_instructions']
+ items +=['hanging_life_day_orb','hutt_greed','imperial_oppression','jedi_statue_schematic']
+ items +=['jubilee_wheel_schematic','kachirho_wall_cornucopia','kowakian_cage','krayt_costume_instructions']
+ items +=['large_fruit_stand_schematic','large_unmarked_crate','lava_geode','life_day_lamp']
+ items +=['life_day_proud_wookie','life_day_red_robed_wookie','living_canals','lugjack_machine_schematic']
+ items +=['miniature_wroshyr_tree','modified_fusion_reactor_schematic','mustafarian_injector','mynock_costume_instructions']
+ items +=['no_division','nym_collectible_globe','pilgrimage','poster_of_a_ship_schematic']
+ items +=['poster_of_a_turret_schematic','poster_of_food_preparation','proton_chair','rancor_costume_instructions']
+ items +=['rotj_helmet','shard_of_the_serpent','stap1_vehicle_deed','target_dummy_black_sun']
+ items +=['target_dummy_rebel','target_dummy_stormtrooper','tatooine_dune_speeder','triumph']
+ items +=['ugnaught_costume_instructions','victory','wampa_costume_instructions','war_terminal']
+ items +=['warriors honor','wookie_home_banner_kit','wookie_life_day_orb','xeno_couch']
+ items +=['xeno_desk','xeno_desk_lamp','xeno_rug','xeno_table']
+ return items
+
+def itemChances():
+
+ chances=[1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315]
+ chances+=[1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315]
+ chances+=[1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315]
+ chances+=[1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315]
+ chances+=[1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315]
+ chances+=[1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315]
+ chances+=[1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315,1.315]
+ chances+=[1.315,1.315,1.315,1.315,1.315,1.375]
+ return chances ##Sum must be exactly 100 76 items -> 1.315
+
\ No newline at end of file
diff --git a/scripts/mobiles/canon/jedi_master.py b/scripts/mobiles/canon/jedi_master.py
new file mode 100644
index 00000000..afc80223
--- /dev/null
+++ b/scripts/mobiles/canon/jedi_master.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eow_dark_jedi_sentinel_uber')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(9)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_female_twk_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_female_twk_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_female_zab_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_female_zab_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_male_human_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_male_human_04.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_male_human_05.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_male_human_06.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff', 9, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff', 11, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('saberHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jedi_master', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/canon/scout_trooper.py b/scripts/mobiles/canon/scout_trooper.py
new file mode 100644
index 00000000..2b446944
--- /dev/null
+++ b/scripts/mobiles/canon/scout_trooper.py
@@ -0,0 +1,31 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('scout_trooper')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(0.4)
+ mobileTemplate.setWeaponType(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_scout_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('scout_trooper', mobileTemplate)
+
diff --git a/scripts/mobiles/canon/storm_commando.py b/scripts/mobiles/canon/storm_commando.py
new file mode 100644
index 00000000..b6bf6523
--- /dev/null
+++ b/scripts/mobiles/canon/storm_commando.py
@@ -0,0 +1,33 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('storm_commando')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(0.4)
+ mobileTemplate.setWeaponType(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_scout_trooper_black_black.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_dx2.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('storm_commando', mobileTemplate)
+
diff --git a/scripts/mobiles/canon/stormtrooper.py b/scripts/mobiles/canon/stormtrooper.py
new file mode 100644
index 00000000..a7a49123
--- /dev/null
+++ b/scripts/mobiles/canon/stormtrooper.py
@@ -0,0 +1,33 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stormtrooper')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_t21.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stormtrooper', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/canon/stormtrooper_squad_leader.py b/scripts/mobiles/canon/stormtrooper_squad_leader.py
new file mode 100644
index 00000000..8fbea697
--- /dev/null
+++ b/scripts/mobiles/canon/stormtrooper_squad_leader.py
@@ -0,0 +1,31 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stormtrooper_squad_leader')
+ mobileTemplate.setLevel(28)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(0.4)
+ mobileTemplate.setWeaponType(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_squad_leader_white_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stormtrooper_squad_leader', mobileTemplate)
+
diff --git a/scripts/mobiles/canon/swamp_trooper.py b/scripts/mobiles/canon/swamp_trooper.py
new file mode 100644
index 00000000..4ade7e9a
--- /dev/null
+++ b/scripts/mobiles/canon/swamp_trooper.py
@@ -0,0 +1,31 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('swamp_trooper')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(0.4)
+ mobileTemplate.setWeaponType(0)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_swamp_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('swamp_trooper', mobileTemplate)
+
diff --git a/scripts/mobiles/corellia/acicular_defender.py b/scripts/mobiles/corellia/acicular_defender.py
new file mode 100644
index 00000000..1a782b1d
--- /dev/null
+++ b/scripts/mobiles/corellia/acicular_defender.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('paralope_acicular_defender')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("paralope")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_paralope.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('acicular_defender', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/afarathu_brute.py b/scripts/mobiles/corellia/afarathu_brute.py
new file mode 100644
index 00000000..7f0117bb
--- /dev/null
+++ b/scripts/mobiles/corellia/afarathu_brute.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('afarathu_cult_brute')
+ mobileTemplate.setLevel(29)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("afarathu")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('afarathu_brute', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/afarathu_cult_bodyguard.py b/scripts/mobiles/corellia/afarathu_cult_bodyguard.py
new file mode 100644
index 00000000..ee9ed78a
--- /dev/null
+++ b/scripts/mobiles/corellia/afarathu_cult_bodyguard.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('afarathu_cult_bodyguard')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("afarathu")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('afarathu_cult_bodyguard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/afarathu_cult_follower.py b/scripts/mobiles/corellia/afarathu_cult_follower.py
new file mode 100644
index 00000000..05054521
--- /dev/null
+++ b/scripts/mobiles/corellia/afarathu_cult_follower.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('afarathu_cult_brute')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(7)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("afarathu")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_polearm_vibro_axe.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('afarathu_cult_follower', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/afarathu_cult_leader.py b/scripts/mobiles/corellia/afarathu_cult_leader.py
new file mode 100644
index 00000000..0a477fc2
--- /dev/null
+++ b/scripts/mobiles/corellia/afarathu_cult_leader.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('afarathu_cult_leader')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("afarathu")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('afarathu_cult_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/afarathu_cult_zealot.py b/scripts/mobiles/corellia/afarathu_cult_zealot.py
new file mode 100644
index 00000000..a802d628
--- /dev/null
+++ b/scripts/mobiles/corellia/afarathu_cult_zealot.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('afarathu_cult_zealot')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("afarathu")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('afarathu_cult_zealot', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/afarathu_hellion.py b/scripts/mobiles/corellia/afarathu_hellion.py
new file mode 100644
index 00000000..1fd90fdc
--- /dev/null
+++ b/scripts/mobiles/corellia/afarathu_hellion.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('afarathu_cult_hellion')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("afarathu")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('afarathu_cult_hellion', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/afarathu_ruffian.py b/scripts/mobiles/corellia/afarathu_ruffian.py
new file mode 100644
index 00000000..e49ae409
--- /dev/null
+++ b/scripts/mobiles/corellia/afarathu_ruffian.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('afarathu_cult_ruffian')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("afarathu")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('afarathu_cult_ruffian', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/afarathu_savage.py b/scripts/mobiles/corellia/afarathu_savage.py
new file mode 100644
index 00000000..cce01993
--- /dev/null
+++ b/scripts/mobiles/corellia/afarathu_savage.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('afarathu_cult_savage')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("afarathu")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('afarathu_savage', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/agrilat_rasp.py b/scripts/mobiles/corellia/agrilat_rasp.py
new file mode 100644
index 00000000..9620f42c
--- /dev/null
+++ b/scripts/mobiles/corellia/agrilat_rasp.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('agrilat_plumed_rasp')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("rasp")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_plumed_rasp.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('agrilat_rasp', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/armor_thief.py b/scripts/mobiles/corellia/armor_thief.py
new file mode 100644
index 00000000..e47be728
--- /dev/null
+++ b/scripts/mobiles/corellia/armor_thief.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellia_coronet_armor_thief')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("self")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ruffian_zabrak_female_01.iff')
+ templates.add('object/mobile/shared_dressed_ruffian_zabrak_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('armor_thief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/bageraset.py b/scripts/mobiles/corellia/bageraset.py
new file mode 100644
index 00000000..0d9175b6
--- /dev/null
+++ b/scripts/mobiles/corellia/bageraset.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bageraset')
+ mobileTemplate.setLevel(29)
+ mobileTemplate.setMinLevel(29)
+ mobileTemplate.setMaxLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(230)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(130)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(80)
+ mobileTemplate.setSocialGroup("bageraset")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bageraset.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bageraset', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/bageraset_bruiser.py b/scripts/mobiles/corellia/bageraset_bruiser.py
new file mode 100644
index 00000000..23161eba
--- /dev/null
+++ b/scripts/mobiles/corellia/bageraset_bruiser.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bageraset_bruiser')
+ mobileTemplate.setLevel(9)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(230)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(130)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(80)
+ mobileTemplate.setSocialGroup("bageraset")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bageraset.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bageraset_bruiser', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/beldonnas_league_enforcer.py b/scripts/mobiles/corellia/beldonnas_league_enforcer.py
new file mode 100644
index 00000000..6164ee84
--- /dev/null
+++ b/scripts/mobiles/corellia/beldonnas_league_enforcer.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('beldonnas_enforcer')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("beldonnas league")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_mercenary_elite_hum_f_01.iff')
+ templates.add('object/mobile/shared_dressed_mercenary_elite_hum_m_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('beldonnas_enforcer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/beldonnas_league_marshal.py b/scripts/mobiles/corellia/beldonnas_league_marshal.py
new file mode 100644
index 00000000..4d042c5a
--- /dev/null
+++ b/scripts/mobiles/corellia/beldonnas_league_marshal.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('beldonnas_marshal')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("beldonnas league")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_mercenary_elite_hum_f_01.iff')
+ templates.add('object/mobile/shared_dressed_mercenary_elite_hum_m_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('beldonnas_marshal', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/beldonnas_league_scout.py b/scripts/mobiles/corellia/beldonnas_league_scout.py
new file mode 100644
index 00000000..6fecb7b0
--- /dev/null
+++ b/scripts/mobiles/corellia/beldonnas_league_scout.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('beldonnas_scout')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("beldonnas league")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_mercenary_elite_hum_f_01.iff')
+ templates.add('object/mobile/shared_dressed_mercenary_elite_hum_m_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('beldonnas_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/beldonnas_league_soldier.py b/scripts/mobiles/corellia/beldonnas_league_soldier.py
new file mode 100644
index 00000000..8006b24e
--- /dev/null
+++ b/scripts/mobiles/corellia/beldonnas_league_soldier.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('beldonnas_soldier')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("self")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_mercenary_elite_hum_f_01.iff')
+ templates.add('object/mobile/shared_dressed_mercenary_elite_hum_m_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('beldonnas_soldier', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/bloated_gubbur.py b/scripts/mobiles/corellia/bloated_gubbur.py
new file mode 100644
index 00000000..d47764f3
--- /dev/null
+++ b/scripts/mobiles/corellia/bloated_gubbur.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gubbur_bloated')
+ mobileTemplate.setLevel(23)
+ mobileTemplate.setMinLevel(23)
+ mobileTemplate.setMaxLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setSocialGroup("gubbur")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gubber.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bloated_gubbur', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/blood_stained_prowler.py b/scripts/mobiles/corellia/blood_stained_prowler.py
new file mode 100644
index 00000000..4d820f80
--- /dev/null
+++ b/scripts/mobiles/corellia/blood_stained_prowler.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('wrix_bloodstained_prowler')
+ mobileTemplate.setLevel(21)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(70)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(40)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(35)
+ mobileTemplate.setSocialGroup("wrix")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_wrix.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blood_stained_prowler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/blood_thirsty_monarch.py b/scripts/mobiles/corellia/blood_thirsty_monarch.py
new file mode 100644
index 00000000..d6e1df0a
--- /dev/null
+++ b/scripts/mobiles/corellia/blood_thirsty_monarch.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellian_butterfly_monarch_bloodthirsty')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(27)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(27)
+ mobileTemplate.setSocialGroup("corellian butterfly")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_butterfly.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blood_thirsty_monarch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/canoid.py b/scripts/mobiles/corellia/canoid.py
new file mode 100644
index 00000000..34353c57
--- /dev/null
+++ b/scripts/mobiles/corellia/canoid.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('canoid')
+ mobileTemplate.setLevel(29)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("canoid")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_canoid.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('canoid', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/canoid_hunter.py b/scripts/mobiles/corellia/canoid_hunter.py
new file mode 100644
index 00000000..ceac4002
--- /dev/null
+++ b/scripts/mobiles/corellia/canoid_hunter.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('canoid_hunter')
+ mobileTemplate.setLevel(29)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("canoid")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_canoid.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('canoid_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/canoid_pack_leader.py b/scripts/mobiles/corellia/canoid_pack_leader.py
new file mode 100644
index 00000000..ebe35901
--- /dev/null
+++ b/scripts/mobiles/corellia/canoid_pack_leader.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('canoid_pack_leader')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("canoid")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_canoid.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('canoid_pack_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/carrion_spat.py b/scripts/mobiles/corellia/carrion_spat.py
new file mode 100644
index 00000000..c0e7422f
--- /dev/null
+++ b/scripts/mobiles/corellia/carrion_spat.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('carrion_spat')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(260)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("carrion spat")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_carrion_spat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('carrion_spat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/carrion_spat_corpsereaver.py b/scripts/mobiles/corellia/carrion_spat_corpsereaver.py
new file mode 100644
index 00000000..e019d3d5
--- /dev/null
+++ b/scripts/mobiles/corellia/carrion_spat_corpsereaver.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('carrion_spat_corpsereaver')
+ mobileTemplate.setLevel(10)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(260)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("carrion spat")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_carrion_spat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('carrion_spat_corpsereaver', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/cor_swooper.py b/scripts/mobiles/corellia/cor_swooper.py
new file mode 100644
index 00000000..feff7e82
--- /dev/null
+++ b/scripts/mobiles/corellia/cor_swooper.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('swooper')
+ mobileTemplate.setLevel(26)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("cor swoop")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_swooper_human_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('cor_swooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corellian_butterfly.py b/scripts/mobiles/corellia/corellian_butterfly.py
new file mode 100644
index 00000000..cd0300a6
--- /dev/null
+++ b/scripts/mobiles/corellia/corellian_butterfly.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellian_butterfly')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("corellian butterfly")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_butterfly.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('corellian_butterfly', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corellian_butterfly_defender.py b/scripts/mobiles/corellia/corellian_butterfly_defender.py
new file mode 100644
index 00000000..36acd0ab
--- /dev/null
+++ b/scripts/mobiles/corellia/corellian_butterfly_defender.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellian_butterfly_defender')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(16)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(16)
+ mobileTemplate.setSocialGroup("corellian butterfly")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_butterfly.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('corellian_butterfly_defender', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corellian_butterfly_drone.py b/scripts/mobiles/corellia/corellian_butterfly_drone.py
new file mode 100644
index 00000000..31c24a22
--- /dev/null
+++ b/scripts/mobiles/corellia/corellian_butterfly_drone.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellian_butterfly_drone')
+ mobileTemplate.setLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("corellian butterfly")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_butterfly.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('corellian_butterfly_drone', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corellian_butterfly_monarch.py b/scripts/mobiles/corellia/corellian_butterfly_monarch.py
new file mode 100644
index 00000000..7688682b
--- /dev/null
+++ b/scripts/mobiles/corellia/corellian_butterfly_monarch.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellian_butterfly_monarch')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(27)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(27)
+ mobileTemplate.setSocialGroup("corellian butterfly")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_butterfly.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('corellian_butterfly_monarch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corellian_butterfly_warrior.py b/scripts/mobiles/corellia/corellian_butterfly_warrior.py
new file mode 100644
index 00000000..649d7e7a
--- /dev/null
+++ b/scripts/mobiles/corellia/corellian_butterfly_warrior.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellian_butterfly_warrior')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(12)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(12)
+ mobileTemplate.setSocialGroup("corellian butterfly")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_butterfly.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('corellian_butterfly_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corellian_butterfly_worker.py b/scripts/mobiles/corellia/corellian_butterfly_worker.py
new file mode 100644
index 00000000..b50943cb
--- /dev/null
+++ b/scripts/mobiles/corellia/corellian_butterfly_worker.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellian_butterfly_warrior')
+ mobileTemplate.setLevel(28)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(8)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(8)
+ mobileTemplate.setSocialGroup("corellian butterfly")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_butterfly.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('corellian_butterfly_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_agent.py b/scripts/mobiles/corellia/corsec_agent.py
new file mode 100644
index 00000000..d9acc9d3
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_agent.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_agent')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_agent', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_cadet.py b/scripts/mobiles/corellia/corsec_cadet.py
new file mode 100644
index 00000000..da3d3b9b
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_cadet.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_cadet')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_cadet', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_captain.py b/scripts/mobiles/corellia/corsec_captain.py
new file mode 100644
index 00000000..e752d3f7
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_captain.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_captain')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_chief.py b/scripts/mobiles/corellia/corsec_chief.py
new file mode 100644
index 00000000..832cff4f
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_chief.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_chief')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_chief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_commissioner.py b/scripts/mobiles/corellia/corsec_commissioner.py
new file mode 100644
index 00000000..4c4d7a4f
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_commissioner.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_commissioner')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_commissioner', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_deserter.py b/scripts/mobiles/corellia/corsec_deserter.py
new file mode 100644
index 00000000..81b942c0
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_deserter.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_deserter')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec rogue")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_deserter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_detective.py b/scripts/mobiles/corellia/corsec_detective.py
new file mode 100644
index 00000000..fe2f0f84
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_detective.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_detective')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_detective', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_inspector_sergeant.py b/scripts/mobiles/corellia/corsec_inspector_sergeant.py
new file mode 100644
index 00000000..e25c7cf1
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_inspector_sergeant.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_inspector_sergeant')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_inspector_sergeant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_investigator.py b/scripts/mobiles/corellia/corsec_investigator.py
new file mode 100644
index 00000000..0267d243
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_investigator.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_investigator')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_investigator', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_lieutenant.py b/scripts/mobiles/corellia/corsec_lieutenant.py
new file mode 100644
index 00000000..0a424dba
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_lieutenant.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_lieutenant')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_lieutenant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_major.py b/scripts/mobiles/corellia/corsec_major.py
new file mode 100644
index 00000000..2ba188f5
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_major.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_major')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_major', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_master_sergeant.py b/scripts/mobiles/corellia/corsec_master_sergeant.py
new file mode 100644
index 00000000..cf67ce76
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_master_sergeant.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_master_sergeant')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_master_sergeant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_security_specialist.py b/scripts/mobiles/corellia/corsec_security_specialist.py
new file mode 100644
index 00000000..ff4cd8e1
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_security_specialist.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mtp_recruiter_corsec_detective')
+ mobileTemplate.setLevel(81)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aggro corsec")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_security_specialist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_sergeant.py b/scripts/mobiles/corellia/corsec_sergeant.py
new file mode 100644
index 00000000..1da24ce0
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_sergeant.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_sergeant')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_sergeant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_special_agent.py b/scripts/mobiles/corellia/corsec_special_agent.py
new file mode 100644
index 00000000..5acdbe2d
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_special_agent.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_agent_aggro')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aggro corsec")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_special_agent', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_special_ops_captain.py b/scripts/mobiles/corellia/corsec_special_ops_captain.py
new file mode 100644
index 00000000..89207f7d
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_special_ops_captain.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_captain_aggro')
+ mobileTemplate.setLevel(82)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aggro corsec")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_special_ops_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_special_ops_chief.py b/scripts/mobiles/corellia/corsec_special_ops_chief.py
new file mode 100644
index 00000000..e0147367
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_special_ops_chief.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_chief_aggro')
+ mobileTemplate.setLevel(83)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aggro corsec")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_special_ops_chief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_special_ops_commissioner.py b/scripts/mobiles/corellia/corsec_special_ops_commissioner.py
new file mode 100644
index 00000000..805a3a61
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_special_ops_commissioner.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_comissioner_aggro_aggro')
+ mobileTemplate.setLevel(84)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aggro corsec")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_special_ops_commissioner', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_special_ops_inspector.py b/scripts/mobiles/corellia/corsec_special_ops_inspector.py
new file mode 100644
index 00000000..22fc2e2c
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_special_ops_inspector.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_inspector_sergeant_aggro')
+ mobileTemplate.setLevel(81)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aggro corsec")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_special_ops_inspector', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_special_ops_lieutenant.py b/scripts/mobiles/corellia/corsec_special_ops_lieutenant.py
new file mode 100644
index 00000000..f1c72217
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_special_ops_lieutenant.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_lieutenant_aggro')
+ mobileTemplate.setLevel(82)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aggro corsec")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_special_ops_lieutenant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_special_ops_major.py b/scripts/mobiles/corellia/corsec_special_ops_major.py
new file mode 100644
index 00000000..e883357e
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_special_ops_major.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_major_aggro')
+ mobileTemplate.setLevel(83)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aggro corsec")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_special_ops_major', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_special_ops_master_sergeant.py b/scripts/mobiles/corellia/corsec_special_ops_master_sergeant.py
new file mode 100644
index 00000000..25be9350
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_special_ops_master_sergeant.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_master_sergeant_aggro')
+ mobileTemplate.setLevel(82)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aggro corsec")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_special_ops_master_sergeant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_special_ops_sergeant.py b/scripts/mobiles/corellia/corsec_special_ops_sergeant.py
new file mode 100644
index 00000000..7ecfea25
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_special_ops_sergeant.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_sergeant_aggro')
+ mobileTemplate.setLevel(81)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aggro corsec")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_special_ops_sergeant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_special_ops_trainee.py b/scripts/mobiles/corellia/corsec_special_ops_trainee.py
new file mode 100644
index 00000000..e4184ffe
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_special_ops_trainee.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_cadet_aggro')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aggro corsec")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_special_ops_trainee', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_traitor.py b/scripts/mobiles/corellia/corsec_traitor.py
new file mode 100644
index 00000000..dce73583
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_traitor.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_traitor')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec rogue")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_detective_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_traitor', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/corsec_trooper.py b/scripts/mobiles/corellia/corsec_trooper.py
new file mode 100644
index 00000000..638d0853
--- /dev/null
+++ b/scripts/mobiles/corellia/corsec_trooper.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corsec_trooper')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('corsec_trooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/crazed_durni.py b/scripts/mobiles/corellia/crazed_durni.py
new file mode 100644
index 00000000..45433cfd
--- /dev/null
+++ b/scripts/mobiles/corellia/crazed_durni.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crazed_durni')
+ mobileTemplate.setLevel(29)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("durni")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_durni.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('crazed_durni', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/crimson_razor_cat.py b/scripts/mobiles/corellia/crimson_razor_cat.py
new file mode 100644
index 00000000..bfab3242
--- /dev/null
+++ b/scripts/mobiles/corellia/crimson_razor_cat.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crimson_sand_panther')
+ mobileTemplate.setLevel(29)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("razor cat")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_sand_panther.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('crimson_razor_cat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/cyst_coverd_rot_mite_guard.py b/scripts/mobiles/corellia/cyst_coverd_rot_mite_guard.py
new file mode 100644
index 00000000..65a77d1e
--- /dev/null
+++ b/scripts/mobiles/corellia/cyst_coverd_rot_mite_guard.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('cyst_covered_rot_guard')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(9)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rot_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('cyst_covered_rot_mite_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/dalyrake.py b/scripts/mobiles/corellia/dalyrake.py
new file mode 100644
index 00000000..0afd6f97
--- /dev/null
+++ b/scripts/mobiles/corellia/dalyrake.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dalyrake')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(25)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(45)
+ mobileTemplate.setSocialGroup("dalyrake")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dalyrake.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dalyrake', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/dalyrake_harvester.py b/scripts/mobiles/corellia/dalyrake_harvester.py
new file mode 100644
index 00000000..9578ad06
--- /dev/null
+++ b/scripts/mobiles/corellia/dalyrake_harvester.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dalyrake_harvester')
+ mobileTemplate.setLevel(35)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(25)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(45)
+ mobileTemplate.setSocialGroup("dalyrake")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dalyrake.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dalyrake_harvester', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/dalyrake_matriarch.py b/scripts/mobiles/corellia/dalyrake_matriarch.py
new file mode 100644
index 00000000..354cafad
--- /dev/null
+++ b/scripts/mobiles/corellia/dalyrake_matriarch.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dalyrake_matriarch')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(35)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(60)
+ mobileTemplate.setSocialGroup("dalyrake")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dalyrake_matriarch.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dalyrake_martriarch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/deranged_wrix.py b/scripts/mobiles/corellia/deranged_wrix.py
new file mode 100644
index 00000000..cff96e90
--- /dev/null
+++ b/scripts/mobiles/corellia/deranged_wrix.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('deranged_wrix')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(55)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setSocialGroup("wrix")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_deranged_wrix.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('deranged_wrix', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/devil_gulginaw.py b/scripts/mobiles/corellia/devil_gulginaw.py
new file mode 100644
index 00000000..271d2d18
--- /dev/null
+++ b/scripts/mobiles/corellia/devil_gulginaw.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('devil_gulginaw')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(70)
+ mobileTemplate.setSocialGroup("gulginaw")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_devil_gulginaw.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('devil_gulginaw', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/dire_cat.py b/scripts/mobiles/corellia/dire_cat.py
new file mode 100644
index 00000000..abe8fb00
--- /dev/null
+++ b/scripts/mobiles/corellia/dire_cat.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dire_cat')
+ mobileTemplate.setLevel(28)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("dire cat")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dire_cat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dire_cat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/diseased_vrelt.py b/scripts/mobiles/corellia/diseased_vrelt.py
new file mode 100644
index 00000000..8d6cf5d5
--- /dev/null
+++ b/scripts/mobiles/corellia/diseased_vrelt.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('diseased_vrelt')
+ mobileTemplate.setLevel(26)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("vrelt")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_vrelt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('diseased_vrelt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/diseased_vrelt_matriarch.py b/scripts/mobiles/corellia/diseased_vrelt_matriarch.py
new file mode 100644
index 00000000..4246b62d
--- /dev/null
+++ b/scripts/mobiles/corellia/diseased_vrelt_matriarch.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('diseased_vrelt_matriarch')
+ mobileTemplate.setLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(10)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setSocialGroup("vrelt")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_vrelt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('diseased_vrelt_matriarch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/domestic_bageraset.py b/scripts/mobiles/corellia/domestic_bageraset.py
new file mode 100644
index 00000000..b86adf57
--- /dev/null
+++ b/scripts/mobiles/corellia/domestic_bageraset.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('domestic_bageraset')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(240)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(145)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(104)
+ mobileTemplate.setSocialGroup("bageraset")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bageraset.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('domestic_bageraset', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/domestic_humbaba.py b/scripts/mobiles/corellia/domestic_humbaba.py
new file mode 100644
index 00000000..694a2810
--- /dev/null
+++ b/scripts/mobiles/corellia/domestic_humbaba.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('domestic_humbaba')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Domesticated Meat")
+ mobileTemplate.setMeatAmount(215)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(115)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(65)
+ mobileTemplate.setSocialGroup("humbaba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_savage_humbaba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('domestic_humbaba', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/domestic_krahbu.py b/scripts/mobiles/corellia/domestic_krahbu.py
new file mode 100644
index 00000000..e06360aa
--- /dev/null
+++ b/scripts/mobiles/corellia/domestic_krahbu.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('domestic_krahbu')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(230)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(160)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(145)
+ mobileTemplate.setSocialGroup("krahbu")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_krahbu.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('domestic_krahbu', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/drall_abbot.py b/scripts/mobiles/corellia/drall_abbot.py
new file mode 100644
index 00000000..d9f268fa
--- /dev/null
+++ b/scripts/mobiles/corellia/drall_abbot.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('drall_abbot')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("drall")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_drall_female.iff')
+ templates.add('object/mobile/shared_drall_male.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('drall_abbot', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/drall_chieftain.py b/scripts/mobiles/corellia/drall_chieftain.py
new file mode 100644
index 00000000..ad9d8a27
--- /dev/null
+++ b/scripts/mobiles/corellia/drall_chieftain.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('drall_chieftain')
+ mobileTemplate.setLevel(38)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("drall")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_drall_female.iff')
+ templates.add('object/mobile/shared_drall_male.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('drall_chieftain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/drall_guard.py b/scripts/mobiles/corellia/drall_guard.py
new file mode 100644
index 00000000..244b394e
--- /dev/null
+++ b/scripts/mobiles/corellia/drall_guard.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('drall_guard')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("drall")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_drall_female.iff')
+ templates.add('object/mobile/shared_drall_male.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('drall_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/drall_master.py b/scripts/mobiles/corellia/drall_master.py
new file mode 100644
index 00000000..69888d59
--- /dev/null
+++ b/scripts/mobiles/corellia/drall_master.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('drall_master')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("drall")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_drall_female.iff')
+ templates.add('object/mobile/shared_drall_male.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('drall_master', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/drall_monk.py b/scripts/mobiles/corellia/drall_monk.py
new file mode 100644
index 00000000..a2324d7c
--- /dev/null
+++ b/scripts/mobiles/corellia/drall_monk.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('drall_monk')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("drall")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_drall_female.iff')
+ templates.add('object/mobile/shared_drall_male.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('drall_monk', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/drall_patriot.py b/scripts/mobiles/corellia/drall_patriot.py
new file mode 100644
index 00000000..ab5aaae3
--- /dev/null
+++ b/scripts/mobiles/corellia/drall_patriot.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('drall_patriot')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("drall")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_drall_female.iff')
+ templates.add('object/mobile/shared_drall_male.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('drall_patriot', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/drall_patriot_conqueror.py b/scripts/mobiles/corellia/drall_patriot_conqueror.py
new file mode 100644
index 00000000..b0da4289
--- /dev/null
+++ b/scripts/mobiles/corellia/drall_patriot_conqueror.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('drall_patriot_conqueror')
+ mobileTemplate.setLevel(38)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("drall")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_drall_female.iff')
+ templates.add('object/mobile/shared_drall_male.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('drall_patriot_conqueror', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/drall_patriot_footsoldier.py b/scripts/mobiles/corellia/drall_patriot_footsoldier.py
new file mode 100644
index 00000000..07092987
--- /dev/null
+++ b/scripts/mobiles/corellia/drall_patriot_footsoldier.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('drall_patriot_footsoldier')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("drall")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_drall_female.iff')
+ templates.add('object/mobile/shared_drall_male.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('drall_patriot_footsoldier', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/drall_patriot_legionnaire.py b/scripts/mobiles/corellia/drall_patriot_legionnaire.py
new file mode 100644
index 00000000..63965e2c
--- /dev/null
+++ b/scripts/mobiles/corellia/drall_patriot_legionnaire.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('drall_patriot_legionnaire')
+ mobileTemplate.setLevel(38)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("drall")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_drall_female.iff')
+ templates.add('object/mobile/shared_drall_male.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('drall_patriot_legionnaire', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/drall_sentry.py b/scripts/mobiles/corellia/drall_sentry.py
new file mode 100644
index 00000000..5a0222ca
--- /dev/null
+++ b/scripts/mobiles/corellia/drall_sentry.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('drall_sentry')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("drall")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_drall_female.iff')
+ templates.add('object/mobile/shared_drall_male.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('drall_sentry', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/dung_mite_worker.py b/scripts/mobiles/corellia/dung_mite_worker.py
new file mode 100644
index 00000000..89c5cce3
--- /dev/null
+++ b/scripts/mobiles/corellia/dung_mite_worker.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sickening_dung_mite_worker')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(11)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_sickening_dung_mite_worker.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dung_mite_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/durni.py b/scripts/mobiles/corellia/durni.py
new file mode 100644
index 00000000..a7fd3f7d
--- /dev/null
+++ b/scripts/mobiles/corellia/durni.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('durni')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("durni")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_durni.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('durni', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/dwarf_gronda.py b/scripts/mobiles/corellia/dwarf_gronda.py
new file mode 100644
index 00000000..1926acbf
--- /dev/null
+++ b/scripts/mobiles/corellia/dwarf_gronda.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dwarf_gronda')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(280)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(170)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(90)
+ mobileTemplate.setSocialGroup("gronda")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dwarf_gronda.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dwarf_gronda', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/elder_gronda.py b/scripts/mobiles/corellia/elder_gronda.py
new file mode 100644
index 00000000..006baee8
--- /dev/null
+++ b/scripts/mobiles/corellia/elder_gronda.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gronda_elder')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(360)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(270)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("gronda")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gronda.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elder_gronda', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/enraged_carrion_spat.py b/scripts/mobiles/corellia/enraged_carrion_spat.py
new file mode 100644
index 00000000..ab07bdb8
--- /dev/null
+++ b/scripts/mobiles/corellia/enraged_carrion_spat.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellia_enraged_carrion_spat')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(260)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("enraged carrion spat")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_carrion_spat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('enraged_carrion_spat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/enraged_tabage_mother.py b/scripts/mobiles/corellia/enraged_tabage_mother.py
new file mode 100644
index 00000000..9082316a
--- /dev/null
+++ b/scripts/mobiles/corellia/enraged_tabage_mother.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('enraged_tabage_mother')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(16)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(16)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(16)
+ mobileTemplate.setSocialGroup("tagage")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tabage.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('enraged_tabage_mother', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/female_dire_cat.py b/scripts/mobiles/corellia/female_dire_cat.py
new file mode 100644
index 00000000..ee360478
--- /dev/null
+++ b/scripts/mobiles/corellia/female_dire_cat.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('female_dire_cat')
+ mobileTemplate.setLevel(29)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("dire cat")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_female_dire_cat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('female_dire_cat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/female_forest_slice_hound.py b/scripts/mobiles/corellia/female_forest_slice_hound.py
new file mode 100644
index 00000000..f7cae4d5
--- /dev/null
+++ b/scripts/mobiles/corellia/female_forest_slice_hound.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('female_forest_slice_hound')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("slice hound forest")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_forest_slice_hound.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('female_forest_slice_hound', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/female_grassland_slice_hound.py b/scripts/mobiles/corellia/female_grassland_slice_hound.py
new file mode 100644
index 00000000..61a1d186
--- /dev/null
+++ b/scripts/mobiles/corellia/female_grassland_slice_hound.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('female_grassland_slice_hound')
+ mobileTemplate.setLevel(29)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("slice hound grassland")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_female_grassland_slice_hound.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('female_grassland_slice_hound', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/female_razor_cat.py b/scripts/mobiles/corellia/female_razor_cat.py
new file mode 100644
index 00000000..fed1bf7a
--- /dev/null
+++ b/scripts/mobiles/corellia/female_razor_cat.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('female_sand_panther')
+ mobileTemplate.setLevel(29)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("razor cat")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_crimson_sand_panther.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('female_razor_cat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/female_slice_hound.py b/scripts/mobiles/corellia/female_slice_hound.py
new file mode 100644
index 00000000..58b7affa
--- /dev/null
+++ b/scripts/mobiles/corellia/female_slice_hound.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('female_forest_slice_hound')
+ mobileTemplate.setLevel(26)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("slice hound")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_slice_hound.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('female_slice_hound', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/feral_orphan.py b/scripts/mobiles/corellia/feral_orphan.py
new file mode 100644
index 00000000..663a9977
--- /dev/null
+++ b/scripts/mobiles/corellia/feral_orphan.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dire_cat_feral_orphan')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("dire cat")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dire_cat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('orphan_dire_cat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/feral_selonian.py b/scripts/mobiles/corellia/feral_selonian.py
new file mode 100644
index 00000000..b85048e4
--- /dev/null
+++ b/scripts/mobiles/corellia/feral_selonian.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('feral_selonian')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("self")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('feral_selonian', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/flail_boss.py b/scripts/mobiles/corellia/flail_boss.py
new file mode 100644
index 00000000..a08e159b
--- /dev/null
+++ b/scripts/mobiles/corellia/flail_boss.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('flail_boss')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("flail")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('flail_boss', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/flail_butcher.py b/scripts/mobiles/corellia/flail_butcher.py
new file mode 100644
index 00000000..127d98d5
--- /dev/null
+++ b/scripts/mobiles/corellia/flail_butcher.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('flail_butcher')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("flail")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('flail_butcher', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/flail_cutthroat.py b/scripts/mobiles/corellia/flail_cutthroat.py
new file mode 100644
index 00000000..721fd3a1
--- /dev/null
+++ b/scripts/mobiles/corellia/flail_cutthroat.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('flail_cutthroat')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(7)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("flail")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_polearm_vibro_axe.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('flail_cutthroat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/flail_enforcer.py b/scripts/mobiles/corellia/flail_enforcer.py
new file mode 100644
index 00000000..4e229bd2
--- /dev/null
+++ b/scripts/mobiles/corellia/flail_enforcer.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('flail_enforcer')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("flail")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('flail_enforcer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/flail_executioner.py b/scripts/mobiles/corellia/flail_executioner.py
new file mode 100644
index 00000000..251866ee
--- /dev/null
+++ b/scripts/mobiles/corellia/flail_executioner.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('flail_executioner')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("flail")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('flail_executioner', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/flail_killer.py b/scripts/mobiles/corellia/flail_killer.py
new file mode 100644
index 00000000..e6c959a9
--- /dev/null
+++ b/scripts/mobiles/corellia/flail_killer.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('flail_killer')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("flail")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('flail_killer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/flail_slayer.py b/scripts/mobiles/corellia/flail_slayer.py
new file mode 100644
index 00000000..d5c322a6
--- /dev/null
+++ b/scripts/mobiles/corellia/flail_slayer.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('flail_slayer')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("flail")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('flail_slayer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/forest_murra.py b/scripts/mobiles/corellia/forest_murra.py
new file mode 100644
index 00000000..e2bb7af8
--- /dev/null
+++ b/scripts/mobiles/corellia/forest_murra.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('forest_murra')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(75)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("murra")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_forest_murra.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('forest_murra', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/forest_slice_hound.py b/scripts/mobiles/corellia/forest_slice_hound.py
new file mode 100644
index 00000000..9a0d01d0
--- /dev/null
+++ b/scripts/mobiles/corellia/forest_slice_hound.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('forest_slice_hound')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("slice hound forest")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_slice_hound.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('forest_slice_hound', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/giant_carrion_spat.py b/scripts/mobiles/corellia/giant_carrion_spat.py
new file mode 100644
index 00000000..6439aec0
--- /dev/null
+++ b/scripts/mobiles/corellia/giant_carrion_spat.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_carrion_spat')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(300)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(295)
+ mobileTemplate.setSocialGroup("carrion spat")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_carrion_spat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_carrion_spat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/giant_dalyrake.py b/scripts/mobiles/corellia/giant_dalyrake.py
new file mode 100644
index 00000000..6efe0f4f
--- /dev/null
+++ b/scripts/mobiles/corellia/giant_dalyrake.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_dalyrake')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(60)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(90)
+ mobileTemplate.setSocialGroup("dalyrake")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_dalyrake.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_dalyrake', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/giant_gubbur.py b/scripts/mobiles/corellia/giant_gubbur.py
new file mode 100644
index 00000000..74c9e8c7
--- /dev/null
+++ b/scripts/mobiles/corellia/giant_gubbur.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_gubbur')
+ mobileTemplate.setLevel(26)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Canivore Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(15)
+ mobileTemplate.setBoneType("Mammal Hide")
+ mobileTemplate.setBoneAmount(15)
+ mobileTemplate.setSocialGroup("gubbur")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gubbur.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_gubbur', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/giant_horned_krevol.py b/scripts/mobiles/corellia/giant_horned_krevol.py
new file mode 100644
index 00000000..4d0654af
--- /dev/null
+++ b/scripts/mobiles/corellia/giant_horned_krevol.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_horned_krevol')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setSocialGroup("horned krevol")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_horned_krevol.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_horned_krevol', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/grand_wrix.py b/scripts/mobiles/corellia/grand_wrix.py
new file mode 100644
index 00000000..be81d9df
--- /dev/null
+++ b/scripts/mobiles/corellia/grand_wrix.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('grand_wrix')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(70)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(40)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(35)
+ mobileTemplate.setSocialGroup("wrix")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_grand_wrix.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('grand_wrix', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/grassland_slice_hound.py b/scripts/mobiles/corellia/grassland_slice_hound.py
new file mode 100644
index 00000000..c1b31c26
--- /dev/null
+++ b/scripts/mobiles/corellia/grassland_slice_hound.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('grassland_slice_hound')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("slice hound grass")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_slice_hound.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gassland_slice_hound', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/gravefeather.py b/scripts/mobiles/corellia/gravefeather.py
new file mode 100644
index 00000000..39848ccb
--- /dev/null
+++ b/scripts/mobiles/corellia/gravefeather.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellia_carrion_spat_gravefeather')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("enraged carrion spat")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_carrion_spat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gravefeather', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/great_plains_stalker.py b/scripts/mobiles/corellia/great_plains_stalker.py
new file mode 100644
index 00000000..63d4f5ab
--- /dev/null
+++ b/scripts/mobiles/corellia/great_plains_stalker.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('great_plains_stalker')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("razor cat")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dire_cat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('great_plains_stalker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/greater_gulginaw.py b/scripts/mobiles/corellia/greater_gulginaw.py
new file mode 100644
index 00000000..861b5fdf
--- /dev/null
+++ b/scripts/mobiles/corellia/greater_gulginaw.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('greater_gulginaw')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(97)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setBoneAmount(48)
+ mobileTemplate.setSocialGroup("gulginaw")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_greater_gulginaw.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('greater_gulginaw', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/greck_assassin.py b/scripts/mobiles/corellia/greck_assassin.py
new file mode 100644
index 00000000..6dee3169
--- /dev/null
+++ b/scripts/mobiles/corellia/greck_assassin.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('greck_assassin')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("olag greck")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_greck_thug_f_01.iff')
+ templates.add('object/mobile/shared_greck_thug_f_02.iff')
+ templates.add('object/mobile/shared_greck_thug_f_03.iff')
+ templates.add('object/mobile/shared_greck_thug_m_01.iff')
+ templates.add('object/mobile/shared_greck_thug_m_02.iff')
+ templates.add('object/mobile/shared_greck_thug_m_03.iff')
+ templates.add('object/mobile/shared_greck_thug_m_04.iff')
+ templates.add('object/mobile/shared_greck_thug_m_05.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('greck_assassin', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/greck_henchman.py b/scripts/mobiles/corellia/greck_henchman.py
new file mode 100644
index 00000000..93e76c9c
--- /dev/null
+++ b/scripts/mobiles/corellia/greck_henchman.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('greck_henchman')
+ mobileTemplate.setLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("olag greck")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_greck_thug_f_01.iff')
+ templates.add('object/mobile/shared_greck_thug_f_02.iff')
+ templates.add('object/mobile/shared_greck_thug_f_03.iff')
+ templates.add('object/mobile/shared_greck_thug_m_01.iff')
+ templates.add('object/mobile/shared_greck_thug_m_02.iff')
+ templates.add('object/mobile/shared_greck_thug_m_03.iff')
+ templates.add('object/mobile/shared_greck_thug_m_04.iff')
+ templates.add('object/mobile/shared_greck_thug_m_05.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('greck_henchman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/greck_mugger.py b/scripts/mobiles/corellia/greck_mugger.py
new file mode 100644
index 00000000..f4d85a4a
--- /dev/null
+++ b/scripts/mobiles/corellia/greck_mugger.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('greck_mugger')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("olag greck")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_greck_thug_f_01.iff')
+ templates.add('object/mobile/shared_greck_thug_f_02.iff')
+ templates.add('object/mobile/shared_greck_thug_f_03.iff')
+ templates.add('object/mobile/shared_greck_thug_m_01.iff')
+ templates.add('object/mobile/shared_greck_thug_m_02.iff')
+ templates.add('object/mobile/shared_greck_thug_m_03.iff')
+ templates.add('object/mobile/shared_greck_thug_m_04.iff')
+ templates.add('object/mobile/shared_greck_thug_m_05.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('greck_mugger', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/greck_smuggler.py b/scripts/mobiles/corellia/greck_smuggler.py
new file mode 100644
index 00000000..87cf3d5c
--- /dev/null
+++ b/scripts/mobiles/corellia/greck_smuggler.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('greck_smuggler')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("olag greck")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_greck_thug_f_01.iff')
+ templates.add('object/mobile/shared_greck_thug_f_02.iff')
+ templates.add('object/mobile/shared_greck_thug_f_03.iff')
+ templates.add('object/mobile/shared_greck_thug_m_01.iff')
+ templates.add('object/mobile/shared_greck_thug_m_02.iff')
+ templates.add('object/mobile/shared_greck_thug_m_03.iff')
+ templates.add('object/mobile/shared_greck_thug_m_04.iff')
+ templates.add('object/mobile/shared_greck_thug_m_05.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('greck_smuggler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/gronda.py b/scripts/mobiles/corellia/gronda.py
new file mode 100644
index 00000000..0eba1f21
--- /dev/null
+++ b/scripts/mobiles/corellia/gronda.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gronda')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(360)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(270)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("gronda")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gronda.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gronda', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/gronda_juggernaut.py b/scripts/mobiles/corellia/gronda_juggernaut.py
new file mode 100644
index 00000000..5de0e0e2
--- /dev/null
+++ b/scripts/mobiles/corellia/gronda_juggernaut.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gronda_juggernaut')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(500)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(400)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(375)
+ mobileTemplate.setSocialGroup("gronda")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gronda.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gronda_juggernaut', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/gronda_patriarch.py b/scripts/mobiles/corellia/gronda_patriarch.py
new file mode 100644
index 00000000..9a28a495
--- /dev/null
+++ b/scripts/mobiles/corellia/gronda_patriarch.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gronda_patriarch')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(360)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(270)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("gronda")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gronda.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gronda_patriarch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/gubbur.py b/scripts/mobiles/corellia/gubbur.py
new file mode 100644
index 00000000..045a255b
--- /dev/null
+++ b/scripts/mobiles/corellia/gubbur.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gubbur')
+ mobileTemplate.setLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Canivore Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setSocialGroup("gubbur")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gubbur.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gubbur', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/gulginaw.py b/scripts/mobiles/corellia/gulginaw.py
new file mode 100644
index 00000000..e1f5217a
--- /dev/null
+++ b/scripts/mobiles/corellia/gulginaw.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gulginaw')
+ mobileTemplate.setLevel(26)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(75)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setSocialGroup("gulginaw")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gulginaw.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gulginaw', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/gurrcat.py b/scripts/mobiles/corellia/gurrcat.py
new file mode 100644
index 00000000..7c5fba02
--- /dev/null
+++ b/scripts/mobiles/corellia/gurrcat.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gurrcat')
+ mobileTemplate.setLevel(29)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("dire cat")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gurrcat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gurrcat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/hidden_daggers_activist.py b/scripts/mobiles/corellia/hidden_daggers_activist.py
new file mode 100644
index 00000000..b4af47fb
--- /dev/null
+++ b/scripts/mobiles/corellia/hidden_daggers_activist.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hidden_daggers_activist')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("hidden_daggers")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_hiddendaggers_pilot_f_01.iff')
+ templates.add('object/mobile/shared_dressed_hiddendaggers_pilot_m_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('hidden_daggers_activist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/hidden_daggers_dissident.py b/scripts/mobiles/corellia/hidden_daggers_dissident.py
new file mode 100644
index 00000000..45a0074b
--- /dev/null
+++ b/scripts/mobiles/corellia/hidden_daggers_dissident.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hidden_daggers_dissident')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("hidden_daggers")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_hiddendaggers_pilot_f_01.iff')
+ templates.add('object/mobile/shared_dressed_hiddendaggers_pilot_m_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('hidden_daggers_dissident', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/hidden_daggers_extremist.py b/scripts/mobiles/corellia/hidden_daggers_extremist.py
new file mode 100644
index 00000000..0037ca1f
--- /dev/null
+++ b/scripts/mobiles/corellia/hidden_daggers_extremist.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hidden_daggers_extremist')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("hidden_daggers")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_hiddendaggers_pilot_f_01.iff')
+ templates.add('object/mobile/shared_dressed_hiddendaggers_pilot_m_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('hidden_daggers_extremist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/hidden_daggers_leader.py b/scripts/mobiles/corellia/hidden_daggers_leader.py
new file mode 100644
index 00000000..ed5ed1c5
--- /dev/null
+++ b/scripts/mobiles/corellia/hidden_daggers_leader.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hidden_daggers_leader')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("hidden_daggers")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_hiddendaggers_pilot_f_01.iff')
+ templates.add('object/mobile/shared_dressed_hiddendaggers_pilot_m_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('hidden_daggers_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/hidden_daggers_lieutenant.py b/scripts/mobiles/corellia/hidden_daggers_lieutenant.py
new file mode 100644
index 00000000..c59d3058
--- /dev/null
+++ b/scripts/mobiles/corellia/hidden_daggers_lieutenant.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hidden_daggers_lieutenant')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("hidden_daggers")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_hiddendaggers_pilot_f_01.iff')
+ templates.add('object/mobile/shared_dressed_hiddendaggers_pilot_m_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('hidden_daggers_lieutenant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/howling_plumed_rasp.py b/scripts/mobiles/corellia/howling_plumed_rasp.py
new file mode 100644
index 00000000..07b5ce52
--- /dev/null
+++ b/scripts/mobiles/corellia/howling_plumed_rasp.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('howling_plumed_rasp')
+ mobileTemplate.setLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("rasp")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_plumed_rasp.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('howling_plumed_rasp', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/humbaba.py b/scripts/mobiles/corellia/humbaba.py
new file mode 100644
index 00000000..9e94105e
--- /dev/null
+++ b/scripts/mobiles/corellia/humbaba.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('humbaba')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Domesticated Meat")
+ mobileTemplate.setMeatAmount(230)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(130)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(80)
+ mobileTemplate.setSocialGroup("humbaba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_savage_humbaba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('humbaba', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/krahbu.py b/scripts/mobiles/corellia/krahbu.py
new file mode 100644
index 00000000..675c7252
--- /dev/null
+++ b/scripts/mobiles/corellia/krahbu.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('krahbu')
+ mobileTemplate.setLevel(28)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(210)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(135)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(120)
+ mobileTemplate.setSocialGroup("krahbu")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_krahbu.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('krahbu', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/lord_nyax.py b/scripts/mobiles/corellia/lord_nyax.py
new file mode 100644
index 00000000..8285c85c
--- /dev/null
+++ b/scripts/mobiles/corellia/lord_nyax.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lord_nyax')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("followers of lord nyax")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_lord_nyax.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_t21.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('lord_nyax', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/majestic_plumed_rasp.py b/scripts/mobiles/corellia/majestic_plumed_rasp.py
new file mode 100644
index 00000000..d8fb1797
--- /dev/null
+++ b/scripts/mobiles/corellia/majestic_plumed_rasp.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('majestic_plumed_rasp')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(4)
+ mobileTemplate.setSocialGroup("rasp")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_plumed_rasp.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('majestic_plumed_rasp', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/meatlump_buffoon.py b/scripts/mobiles/corellia/meatlump_buffoon.py
new file mode 100644
index 00000000..92483e3a
--- /dev/null
+++ b/scripts/mobiles/corellia/meatlump_buffoon.py
@@ -0,0 +1,58 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('meatlump_buffoon')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("meatlump")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_meatlump_female_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_08.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_09.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('meatlump_buffoon', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/meatlump_clod.py b/scripts/mobiles/corellia/meatlump_clod.py
new file mode 100644
index 00000000..fb0e3b6e
--- /dev/null
+++ b/scripts/mobiles/corellia/meatlump_clod.py
@@ -0,0 +1,58 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('meatlump_clod')
+ mobileTemplate.setLevel(28)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("meatlump")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_meatlump_female_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_08.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_09.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('meatlump_clod', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/meatlump_cretin.py b/scripts/mobiles/corellia/meatlump_cretin.py
new file mode 100644
index 00000000..8e367887
--- /dev/null
+++ b/scripts/mobiles/corellia/meatlump_cretin.py
@@ -0,0 +1,58 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('meatlump_cretin')
+ mobileTemplate.setLevel(28)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("meatlump")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_meatlump_female_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_08.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_09.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('meatlump_cretin', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/meatlump_dunder.py b/scripts/mobiles/corellia/meatlump_dunder.py
new file mode 100644
index 00000000..001b2b41
--- /dev/null
+++ b/scripts/mobiles/corellia/meatlump_dunder.py
@@ -0,0 +1,58 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('meatlump_dunder')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("meatlump")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_meatlump_female_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_08.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_09.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('meatlump_dunder', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/meatlump_fool.py b/scripts/mobiles/corellia/meatlump_fool.py
new file mode 100644
index 00000000..3f478bd4
--- /dev/null
+++ b/scripts/mobiles/corellia/meatlump_fool.py
@@ -0,0 +1,58 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('meatlump_fool')
+ mobileTemplate.setLevel(26)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("meatlump")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_meatlump_female_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_08.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_09.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('meatlump_fool', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/meatlump_lieutenant.py b/scripts/mobiles/corellia/meatlump_lieutenant.py
new file mode 100644
index 00000000..20b5cb34
--- /dev/null
+++ b/scripts/mobiles/corellia/meatlump_lieutenant.py
@@ -0,0 +1,47 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('meatlump_lieutenant')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("meatlump")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(256)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_meatlump_lieutenant_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_lieutenant_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_lieutenant_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_lieutenant_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_lieutenant_05.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('meatlump_lieutenant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/meatlump_loon.py b/scripts/mobiles/corellia/meatlump_loon.py
new file mode 100644
index 00000000..4ee4af15
--- /dev/null
+++ b/scripts/mobiles/corellia/meatlump_loon.py
@@ -0,0 +1,58 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('meatlump_loon')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("meatlump")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_meatlump_female_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_08.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_09.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('meatlump_loon', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/meatlump_lunk.py b/scripts/mobiles/corellia/meatlump_lunk.py
new file mode 100644
index 00000000..5b10c57c
--- /dev/null
+++ b/scripts/mobiles/corellia/meatlump_lunk.py
@@ -0,0 +1,58 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellia_meatlump_lunk')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("meatlump")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_meatlump_female_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_08.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_09.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('meatlump_lunk', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/meatlump_oaf.py b/scripts/mobiles/corellia/meatlump_oaf.py
new file mode 100644
index 00000000..603d88c9
--- /dev/null
+++ b/scripts/mobiles/corellia/meatlump_oaf.py
@@ -0,0 +1,58 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('meatlump_oaf')
+ mobileTemplate.setLevel(29)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("meatlump")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_meatlump_female_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_08.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_09.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('meatlump_oaf', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/meatlump_stooge.py b/scripts/mobiles/corellia/meatlump_stooge.py
new file mode 100644
index 00000000..71a470ea
--- /dev/null
+++ b/scripts/mobiles/corellia/meatlump_stooge.py
@@ -0,0 +1,58 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('meatlump_stooge')
+ mobileTemplate.setLevel(27)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("meatlump")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_meatlump_female_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_female_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_01.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_02.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_03.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_04.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_05.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_06.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_07.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_08.iff')
+ templates.add('object/mobile/shared_dressed_meatlump_male_09.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('meatlump_stooge', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/merkie_howzat.py b/scripts/mobiles/corellia/merkie_howzat.py
new file mode 100644
index 00000000..c3f62778
--- /dev/null
+++ b/scripts/mobiles/corellia/merkie_howzat.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellia_meatlump_merkie_howzat')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("meatlump")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_meatlump_merkie_howzat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('merkie_howzat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/minor_gubbur.py b/scripts/mobiles/corellia/minor_gubbur.py
new file mode 100644
index 00000000..c28ea4e9
--- /dev/null
+++ b/scripts/mobiles/corellia/minor_gubbur.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('minor_gubbur')
+ mobileTemplate.setLevel(22)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Canivore Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setBoneType("Mammal Hide")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("gubbur")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gubbur.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('minor_gubbur', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/mottled_wrix.py b/scripts/mobiles/corellia/mottled_wrix.py
new file mode 100644
index 00000000..775ceaed
--- /dev/null
+++ b/scripts/mobiles/corellia/mottled_wrix.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mottled_wrix')
+ mobileTemplate.setLevel(35)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("wrix")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_grand_wrix.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mottled_wrix', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/mountain_murra.py b/scripts/mobiles/corellia/mountain_murra.py
new file mode 100644
index 00000000..3018ee61
--- /dev/null
+++ b/scripts/mobiles/corellia/mountain_murra.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mountain_murra')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(75)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(45)
+ mobileTemplate.setSocialGroup("murra")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mountain_murra.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mountain_murra', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/murra.py b/scripts/mobiles/corellia/murra.py
new file mode 100644
index 00000000..c10d0eeb
--- /dev/null
+++ b/scripts/mobiles/corellia/murra.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('murra')
+ mobileTemplate.setLevel(28)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(55)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(32)
+ mobileTemplate.setSocialGroup("murra")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_murra.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('murra', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/mutated_krevol_clicker.py b/scripts/mobiles/corellia/mutated_krevol_clicker.py
new file mode 100644
index 00000000..6ed56840
--- /dev/null
+++ b/scripts/mobiles/corellia/mutated_krevol_clicker.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mutated_krevol_clicker')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setSocialGroup("horned krevol")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mutated_krevol_clicker.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mutated_krevol_clicker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/noxious_vrelt_scavenger.py b/scripts/mobiles/corellia/noxious_vrelt_scavenger.py
new file mode 100644
index 00000000..74d40423
--- /dev/null
+++ b/scripts/mobiles/corellia/noxious_vrelt_scavenger.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('noxious_vrelt_scavenger')
+ mobileTemplate.setLevel(27)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(10)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setSocialGroup("vrelt")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_noxious_vrelt_scavenger.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('noxious_vrelt_scavenger', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/paralope.py b/scripts/mobiles/corellia/paralope.py
new file mode 100644
index 00000000..8cbea9ed
--- /dev/null
+++ b/scripts/mobiles/corellia/paralope.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('paralope')
+ mobileTemplate.setLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("paralope")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_paralope.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('paralope', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/plumped_rasp.py b/scripts/mobiles/corellia/plumped_rasp.py
new file mode 100644
index 00000000..9e96d328
--- /dev/null
+++ b/scripts/mobiles/corellia/plumped_rasp.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('plumed_rasp')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("rasp")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_plumed_rasp.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('plumed_rasp', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/ragtag_blackjack.py b/scripts/mobiles/corellia/ragtag_blackjack.py
new file mode 100644
index 00000000..dd36e536
--- /dev/null
+++ b/scripts/mobiles/corellia/ragtag_blackjack.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellia_ragtag_blackjack')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("ragtag gang")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('ragtag_blackjack', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/ragtag_kook.py b/scripts/mobiles/corellia/ragtag_kook.py
new file mode 100644
index 00000000..c8c3f4d7
--- /dev/null
+++ b/scripts/mobiles/corellia/ragtag_kook.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ragtag_kook')
+ mobileTemplate.setLevel(11)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("ragtag gang")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('ragtag_kook', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/ragtag_loon.py b/scripts/mobiles/corellia/ragtag_loon.py
new file mode 100644
index 00000000..ce506e7e
--- /dev/null
+++ b/scripts/mobiles/corellia/ragtag_loon.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ragtag_loon')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("ragtag gang")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('ragtag_loon', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/ragtag_lunatic.py b/scripts/mobiles/corellia/ragtag_lunatic.py
new file mode 100644
index 00000000..90b31e6e
--- /dev/null
+++ b/scripts/mobiles/corellia/ragtag_lunatic.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ragtag_lunatic')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("ragtag gang")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('ragtag_lunatic', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/ragtag_maniac.py b/scripts/mobiles/corellia/ragtag_maniac.py
new file mode 100644
index 00000000..c56397a5
--- /dev/null
+++ b/scripts/mobiles/corellia/ragtag_maniac.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ragtag_maniac')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("ragtag gang")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('ragtag_maniac', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/ragtag_sentry.py b/scripts/mobiles/corellia/ragtag_sentry.py
new file mode 100644
index 00000000..50b78c27
--- /dev/null
+++ b/scripts/mobiles/corellia/ragtag_sentry.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellia_ragtag_sentry')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("ragtag gang")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_female_02.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_thug_human_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('ragtag_sentry', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/razor_cat.py b/scripts/mobiles/corellia/razor_cat.py
new file mode 100644
index 00000000..1e4c8e44
--- /dev/null
+++ b/scripts/mobiles/corellia/razor_cat.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sand_panther')
+ mobileTemplate.setLevel(38)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("razor cat")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_sand_panther.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('female_razor_cat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/razor_cat_cub.py b/scripts/mobiles/corellia/razor_cat_cub.py
new file mode 100644
index 00000000..1514498f
--- /dev/null
+++ b/scripts/mobiles/corellia/razor_cat_cub.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sand_panther_cub')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(25)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(14)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("razor cat")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_sand_panther_cub.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('razor_cat_cub', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/razor_cat_eviscerator.py b/scripts/mobiles/corellia/razor_cat_eviscerator.py
new file mode 100644
index 00000000..b0b1082c
--- /dev/null
+++ b/scripts/mobiles/corellia/razor_cat_eviscerator.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('razor_cat_eviscerator')
+ mobileTemplate.setLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("razor cat")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_sand_panther_cub.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('razor_cat_eviscerator', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/rogue_bageraset.py b/scripts/mobiles/corellia/rogue_bageraset.py
new file mode 100644
index 00000000..bb61a0d1
--- /dev/null
+++ b/scripts/mobiles/corellia/rogue_bageraset.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rogue_bageraset')
+ mobileTemplate.setLevel(27)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(230)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(130)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(80)
+ mobileTemplate.setSocialGroup("bageraset")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bageraset.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rogue_bageraset', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/rogue_corsec_trooper18.py b/scripts/mobiles/corellia/rogue_corsec_trooper18.py
new file mode 100644
index 00000000..74a3fbfd
--- /dev/null
+++ b/scripts/mobiles/corellia/rogue_corsec_trooper18.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellia_corsec_rogue')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('rogue_corsec_trooper18', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/rogue_corsec_trooper33.py b/scripts/mobiles/corellia/rogue_corsec_trooper33.py
new file mode 100644
index 00000000..9ed8eaaf
--- /dev/null
+++ b/scripts/mobiles/corellia/rogue_corsec_trooper33.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellia_corsec_rogue')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("corsec")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_corsec_captain_human_male_03.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_corsec_officer_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('rogue_corsec_trooper33', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/rotting_decy_mite_guard.py b/scripts/mobiles/corellia/rotting_decy_mite_guard.py
new file mode 100644
index 00000000..37c77027
--- /dev/null
+++ b/scripts/mobiles/corellia/rotting_decy_mite_guard.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rotting_pustule_guard')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(9)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rot_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dung_mite_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/savage_humbaba.py b/scripts/mobiles/corellia/savage_humbaba.py
new file mode 100644
index 00000000..8f78c745
--- /dev/null
+++ b/scripts/mobiles/corellia/savage_humbaba.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('savage_humbaba')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Domesticated Meat")
+ mobileTemplate.setMeatAmount(265)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(168)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(118)
+ mobileTemplate.setSocialGroup("humbaba")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_savage_humbaba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('savage_humbaba', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/scavenger_rat.py b/scripts/mobiles/corellia/scavenger_rat.py
new file mode 100644
index 00000000..2c3fd051
--- /dev/null
+++ b/scripts/mobiles/corellia/scavenger_rat.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('scavenger_rat')
+ mobileTemplate.setLevel(26)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Hide")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("scavenger rat")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_womp_rat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('minor_gubbur', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_assassin.py b/scripts/mobiles/corellia/selonian_assassin.py
new file mode 100644
index 00000000..9953125e
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_assassin.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_assassin')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_assassin', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_captain.py b/scripts/mobiles/corellia/selonian_captain.py
new file mode 100644
index 00000000..a915606f
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_captain.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_captain')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_champion.py b/scripts/mobiles/corellia/selonian_champion.py
new file mode 100644
index 00000000..ef0cc55b
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_champion.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_champion')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_champion', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_healer.py b/scripts/mobiles/corellia/selonian_healer.py
new file mode 100644
index 00000000..473039a3
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_healer.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_healer')
+ mobileTemplate.setLevel(38)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_healer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_hunter.py b/scripts/mobiles/corellia/selonian_hunter.py
new file mode 100644
index 00000000..0bb3ba2d
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_hunter.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_hunter')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_raider.py b/scripts/mobiles/corellia/selonian_raider.py
new file mode 100644
index 00000000..21e93853
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_raider.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_raider')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_raider', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_scout.py b/scripts/mobiles/corellia/selonian_scout.py
new file mode 100644
index 00000000..0b5e1a65
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_scout.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_scout')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_sentinel.py b/scripts/mobiles/corellia/selonian_sentinel.py
new file mode 100644
index 00000000..982d63aa
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_sentinel.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_sentinel')
+ mobileTemplate.setLevel(38)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_sentinel', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_separatist.py b/scripts/mobiles/corellia/selonian_separatist.py
new file mode 100644
index 00000000..b15a1709
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_separatist.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_separatist')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_separatist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_separatist_captain.py b/scripts/mobiles/corellia/selonian_separatist_captain.py
new file mode 100644
index 00000000..08ce9266
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_separatist_captain.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_separatist_captain')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_separatist_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_separatist_general.py b/scripts/mobiles/corellia/selonian_separatist_general.py
new file mode 100644
index 00000000..a3a1e7d1
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_separatist_general.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_separatist_general')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_separatist_general', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_separatist_recruit.py b/scripts/mobiles/corellia/selonian_separatist_recruit.py
new file mode 100644
index 00000000..0238328d
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_separatist_recruit.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_separatist_recruit')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_separatist_recruit', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_separatist_soldier.py b/scripts/mobiles/corellia/selonian_separatist_soldier.py
new file mode 100644
index 00000000..26b3f080
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_separatist_soldier.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_separatist_soldier')
+ mobileTemplate.setLevel(38)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_separatist_soldier', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_thief.py b/scripts/mobiles/corellia/selonian_thief.py
new file mode 100644
index 00000000..6febb1cf
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_thief.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_thief')
+ mobileTemplate.setLevel(38)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_thief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_warlord.py b/scripts/mobiles/corellia/selonian_warlord.py
new file mode 100644
index 00000000..2efdea82
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_warlord.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_warlord')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_warlord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/selonian_warrior.py b/scripts/mobiles/corellia/selonian_warrior.py
new file mode 100644
index 00000000..b9d0f5ed
--- /dev/null
+++ b/scripts/mobiles/corellia/selonian_warrior.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('selonian_warrior')
+ mobileTemplate.setLevel(38)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("selonian")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_selonian_m_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_m_12.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_01.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_02.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_03.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_04.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_05.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_06.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_07.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_08.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_09.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_10.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_11.iff')
+ templates.add('object/mobile/shared_dressed_selonian_f_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('selonian_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/sharnaff.py b/scripts/mobiles/corellia/sharnaff.py
new file mode 100644
index 00000000..ca2f3b30
--- /dev/null
+++ b/scripts/mobiles/corellia/sharnaff.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sharnaff')
+ mobileTemplate.setLevel(35)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(450)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(300)
+ mobileTemplate.setBoneType("Mammal Hide")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("sharnaff")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_sharnaff.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sharnaff', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/sharnaff_bull.py b/scripts/mobiles/corellia/sharnaff_bull.py
new file mode 100644
index 00000000..48e5a1fb
--- /dev/null
+++ b/scripts/mobiles/corellia/sharnaff_bull.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sharnaff_bull')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(482)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(335)
+ mobileTemplate.setBoneType("Mammal Hide")
+ mobileTemplate.setBoneAmount(200)
+ mobileTemplate.setSocialGroup("sharnaff")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_sharnaff_bull.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sharnaff_bull', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/sharnaff_reckless_ravager.py b/scripts/mobiles/corellia/sharnaff_reckless_ravager.py
new file mode 100644
index 00000000..024e5adc
--- /dev/null
+++ b/scripts/mobiles/corellia/sharnaff_reckless_ravager.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sharnaff_reckless_ravager')
+ mobileTemplate.setLevel(35)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(450)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(300)
+ mobileTemplate.setBoneType("Mammal Hide")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("sharnaff")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_sharnaff.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sharnaff_reckless', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/slice_hound.py b/scripts/mobiles/corellia/slice_hound.py
new file mode 100644
index 00000000..b3a6a914
--- /dev/null
+++ b/scripts/mobiles/corellia/slice_hound.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('slice_hound')
+ mobileTemplate.setLevel(28)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("slice hound")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_slice_hound.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('slice_hound', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/swamp_gurrcat.py b/scripts/mobiles/corellia/swamp_gurrcat.py
new file mode 100644
index 00000000..a5be16fa
--- /dev/null
+++ b/scripts/mobiles/corellia/swamp_gurrcat.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('swamp_gurrcat')
+ mobileTemplate.setLevel(26)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("swamp gurrcat")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gurrcat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('swamp_gurrcat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/swamp_humbaba.py b/scripts/mobiles/corellia/swamp_humbaba.py
new file mode 100644
index 00000000..20ac57d0
--- /dev/null
+++ b/scripts/mobiles/corellia/swamp_humbaba.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('swamp_humbaba')
+ mobileTemplate.setLevel(35)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Domesticated Meat")
+ mobileTemplate.setMeatAmount(250)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(150)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(105)
+ mobileTemplate.setSocialGroup("humbaba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_savage_humbaba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('swamp_humbaba', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/tabage.py b/scripts/mobiles/corellia/tabage.py
new file mode 100644
index 00000000..8694c35e
--- /dev/null
+++ b/scripts/mobiles/corellia/tabage.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tabage')
+ mobileTemplate.setLevel(26)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(18)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(24)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(7)
+ mobileTemplate.setSocialGroup("tabage")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tabage.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tabage', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/tabage_protector.py b/scripts/mobiles/corellia/tabage_protector.py
new file mode 100644
index 00000000..5a8a7f98
--- /dev/null
+++ b/scripts/mobiles/corellia/tabage_protector.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tabage_protector')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(14)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(14)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(14)
+ mobileTemplate.setSocialGroup("tabage")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tabage.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tabage_protector', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/tabage_scavenger.py b/scripts/mobiles/corellia/tabage_scavenger.py
new file mode 100644
index 00000000..2ac20717
--- /dev/null
+++ b/scripts/mobiles/corellia/tabage_scavenger.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tabage_scavenger')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(13)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(13)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(13)
+ mobileTemplate.setSocialGroup("tabage")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tabage.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tabage_scavenger', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/tomi_jinsin.py b/scripts/mobiles/corellia/tomi_jinsin.py
new file mode 100644
index 00000000..756d0bee
--- /dev/null
+++ b/scripts/mobiles/corellia/tomi_jinsin.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('corellia_ragtag_tomi_jinsin')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("ragtag gang")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_corellia_tomi_jinsin.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tomi_jinsin', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/vehement_durni.py b/scripts/mobiles/corellia/vehement_durni.py
new file mode 100644
index 00000000..bb46c2c4
--- /dev/null
+++ b/scripts/mobiles/corellia/vehement_durni.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('durni_vehement_warrior')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("durni")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_durni.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vehement_durni', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/vicious_slice_hound.py b/scripts/mobiles/corellia/vicious_slice_hound.py
new file mode 100644
index 00000000..953a6e98
--- /dev/null
+++ b/scripts/mobiles/corellia/vicious_slice_hound.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('slice_hound_vicious')
+ mobileTemplate.setLevel(7)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("slice hound")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_slice_hound.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vicious_slice_hound', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/violent_krahbu.py b/scripts/mobiles/corellia/violent_krahbu.py
new file mode 100644
index 00000000..14dae062
--- /dev/null
+++ b/scripts/mobiles/corellia/violent_krahbu.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('violent_krahbu')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(225)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(135)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(135)
+ mobileTemplate.setSocialGroup("violent krahbu")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_violent_krahbu.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('violent_krahbu', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/vrelt.py b/scripts/mobiles/corellia/vrelt.py
new file mode 100644
index 00000000..5606c4ae
--- /dev/null
+++ b/scripts/mobiles/corellia/vrelt.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('vrelt')
+ mobileTemplate.setLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("vrelt")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_vrelt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vrelt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/vrelt_mother.py b/scripts/mobiles/corellia/vrelt_mother.py
new file mode 100644
index 00000000..f4ae34c7
--- /dev/null
+++ b/scripts/mobiles/corellia/vrelt_mother.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('startled_vrelt_mother')
+ mobileTemplate.setLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(13)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(13)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(13)
+ mobileTemplate.setSocialGroup("vrelt")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_vrelt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vrelt_mother', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/vynock.py b/scripts/mobiles/corellia/vynock.py
new file mode 100644
index 00000000..7024de6a
--- /dev/null
+++ b/scripts/mobiles/corellia/vynock.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('vynock')
+ mobileTemplate.setLevel(28)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(50)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(70)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setSocialGroup("vynock")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_vynock.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vynock', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/war_gronda.py b/scripts/mobiles/corellia/war_gronda.py
new file mode 100644
index 00000000..4f779a05
--- /dev/null
+++ b/scripts/mobiles/corellia/war_gronda.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('war_gronda')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(390)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(300)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(240)
+ mobileTemplate.setSocialGroup("gronda")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_war_gronda.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('war_gronda', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/wooded_paralope.py b/scripts/mobiles/corellia/wooded_paralope.py
new file mode 100644
index 00000000..9bb8e3ad
--- /dev/null
+++ b/scripts/mobiles/corellia/wooded_paralope.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('wooded_paralope')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("paralope")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_paralope.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('wooded_paralope', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/corellia/wrix.py b/scripts/mobiles/corellia/wrix.py
new file mode 100644
index 00000000..d160d3f6
--- /dev/null
+++ b/scripts/mobiles/corellia/wrix.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('wrix')
+ mobileTemplate.setLevel(27)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(60)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(30)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setSocialGroup("wrix")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_grand_wrix.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('wrix', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/abandoned_rebel_private.py b/scripts/mobiles/dantooine/abandoned_rebel_private.py
new file mode 100644
index 00000000..31149e62
--- /dev/null
+++ b/scripts/mobiles/dantooine/abandoned_rebel_private.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('abandoned_rebel_private')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('rebel')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_human_01.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_dh17.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_rebel.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('abandoned_rebel_private', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/ancient_graul.py b/scripts/mobiles/dantooine/ancient_graul.py
new file mode 100644
index 00000000..ad67d937
--- /dev/null
+++ b/scripts/mobiles/dantooine/ancient_graul.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('ancient_graul')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(950)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(875)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(775)
+ mobileTemplate.setSocialGroup("graul")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_slinking_voritor_hunter.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('ancient_graul', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/bile_drenched_quenker.py b/scripts/mobiles/dantooine/bile_drenched_quenker.py
new file mode 100644
index 00000000..573db740
--- /dev/null
+++ b/scripts/mobiles/dantooine/bile_drenched_quenker.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('bile_drenched_quenker')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(0)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(0)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(0)
+ mobileTemplate.setSocialGroup("quenker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_quenker_relic_reaper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bile_drenched_quenker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/bol.py b/scripts/mobiles/dantooine/bol.py
new file mode 100644
index 00000000..43a654b0
--- /dev/null
+++ b/scripts/mobiles/dantooine/bol.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('bol')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(0)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(300)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(180)
+ mobileTemplate.setSocialGroup("bol")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bol_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bol', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/bol_pack_runner.py b/scripts/mobiles/dantooine/bol_pack_runner.py
new file mode 100644
index 00000000..bb131bb1
--- /dev/null
+++ b/scripts/mobiles/dantooine/bol_pack_runner.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('bol_pack_runner')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(0)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(300)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(180)
+ mobileTemplate.setSocialGroup("bol")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bol_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bol_pack_runner', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/dantari_chief.py b/scripts/mobiles/dantooine/dantari_chief.py
new file mode 100644
index 00000000..d8625846
--- /dev/null
+++ b/scripts/mobiles/dantooine/dantari_chief.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dantari_chief')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('dantari raiders')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dantari_chief', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/dantari_raider.py b/scripts/mobiles/dantooine/dantari_raider.py
new file mode 100644
index 00000000..9a4b6be3
--- /dev/null
+++ b/scripts/mobiles/dantooine/dantari_raider.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dantari_raider')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('dantari raiders')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dantari_raider', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/dantari_strategist.py b/scripts/mobiles/dantooine/dantari_strategist.py
new file mode 100644
index 00000000..cd3e4afd
--- /dev/null
+++ b/scripts/mobiles/dantooine/dantari_strategist.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dantari_strategist')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('dantari raiders')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dantari_strategist', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/dark_adept.py b/scripts/mobiles/dantooine/dark_adept.py
new file mode 100644
index 00000000..7598e097
--- /dev/null
+++ b/scripts/mobiles/dantooine/dark_adept.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dark_adept')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setMinLevel(60)
+ mobileTemplate.setMaxLevel(70)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(9)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('dark jedi')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_male_human_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff', 9, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff', 11, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('saberHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dark_adept', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/dark_force_crystal_hunter.py b/scripts/mobiles/dantooine/dark_force_crystal_hunter.py
new file mode 100644
index 00000000..60cbdde3
--- /dev/null
+++ b/scripts/mobiles/dantooine/dark_force_crystal_hunter.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dark_force_crystal_hunter')
+ mobileTemplate.setMinLevel(60)
+ mobileTemplate.setMaxLevel(69)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(2)
+ mobileTemplate.setMaxSpawnDistance(4)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('remnants of kun')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_force_crystal_hunter.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dark_force_crystal_hunter', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/dark_jedi_knight.py b/scripts/mobiles/dantooine/dark_jedi_knight.py
new file mode 100644
index 00000000..b083645b
--- /dev/null
+++ b/scripts/mobiles/dantooine/dark_jedi_knight.py
@@ -0,0 +1,66 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dark_jedi_knight')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setMinLevel(62)
+ mobileTemplate.setMaxLevel(70)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(9)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('dark jedi')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_human_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_human_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_human_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_human_04.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_human_05.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_human_06.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_twk_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_twk_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_twk_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_zab_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_zab_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_zab_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_human_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_human_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_human_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_human_04.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_twk_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_twk_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_twk_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_zab_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_zab_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_zab_03.iff')
+
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff', 9, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff', 11, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('saberHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dark_jedi_knight', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/dark_jedi_master.py b/scripts/mobiles/dantooine/dark_jedi_master.py
new file mode 100644
index 00000000..29ca5598
--- /dev/null
+++ b/scripts/mobiles/dantooine/dark_jedi_master.py
@@ -0,0 +1,74 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dark_jedi_master')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(9)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('dark jedi')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_female_twk_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_female_twk_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_female_zab_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_female_zab_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_male_human_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_male_human_04.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_male_human_05.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_master_male_human_06.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff', 9, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff', 11, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('saberHit')
+ mobileTemplate.setAttacks(attacks)
+
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ mobileTemplate.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('dark_jedi_master', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/dark_side_savage.py b/scripts/mobiles/dantooine/dark_side_savage.py
new file mode 100644
index 00000000..d7ffc78b
--- /dev/null
+++ b/scripts/mobiles/dantooine/dark_side_savage.py
@@ -0,0 +1,35 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eow_dark_side_savage')
+ mobileTemplate.setLevel(85)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(2)
+ mobileTemplate.setMaxSpawnDistance(4)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('remnants of kun')
+ mobileTemplate.setRespawnTime(300)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_side_savage.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dark_side_savage', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/fierce_piket_protector.py b/scripts/mobiles/dantooine/fierce_piket_protector.py
new file mode 100644
index 00000000..28bd6d9b
--- /dev/null
+++ b/scripts/mobiles/dantooine/fierce_piket_protector.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('fierce_piket_protector')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(0)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(0)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(0)
+ mobileTemplate.setSocialGroup("piket")
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_piket_longhorn.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('fierce_piket_protector', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/force_sensitive_crypt_crawler.py b/scripts/mobiles/dantooine/force_sensitive_crypt_crawler.py
new file mode 100644
index 00000000..2431c898
--- /dev/null
+++ b/scripts/mobiles/dantooine/force_sensitive_crypt_crawler.py
@@ -0,0 +1,36 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eow_force_sensitive_crypt_crawler')
+ mobileTemplate.setMinLevel(60)
+ mobileTemplate.setMaxLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(7)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('remnants of kun')
+ mobileTemplate.setRespawnTime(300)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_force_sensitive_crypt_crawler.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_wood_s1.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('force_sensitive_crypt_crawler', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/force_sensitive_renegade.py b/scripts/mobiles/dantooine/force_sensitive_renegade.py
new file mode 100644
index 00000000..8005b9d9
--- /dev/null
+++ b/scripts/mobiles/dantooine/force_sensitive_renegade.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('force_sensitive_renegade')
+ mobileTemplate.setMinLevel(61)
+ mobileTemplate.setMaxLevel(69)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(7)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('force renegade')
+ mobileTemplate.setRespawnTime(300)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_force_sensitive_renegade.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('force_sensitive_renegade', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/forsaken_force_drifter.py b/scripts/mobiles/dantooine/forsaken_force_drifter.py
new file mode 100644
index 00000000..46021c2c
--- /dev/null
+++ b/scripts/mobiles/dantooine/forsaken_force_drifter.py
@@ -0,0 +1,35 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eow_forsaken_force_drifter')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(6)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('force renegade')
+ mobileTemplate.setRespawnTime(300)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_forsaken_force_drifter.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('forsaken_force_drifter', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/frenzied_graul.py b/scripts/mobiles/dantooine/frenzied_graul.py
new file mode 100644
index 00000000..6136f813
--- /dev/null
+++ b/scripts/mobiles/dantooine/frenzied_graul.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('frenzied_graul')
+ mobileTemplate.setLevel(72)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(1025)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(950)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(855)
+ mobileTemplate.setSocialGroup("graul")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_slinking_voritor_hunter.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('frenzied_graul', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/grassland_voritor_tracker.py b/scripts/mobiles/dantooine/grassland_voritor_tracker.py
new file mode 100644
index 00000000..ead1fdf3
--- /dev/null
+++ b/scripts/mobiles/dantooine/grassland_voritor_tracker.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('grassland_voritor_tracker')
+ mobileTemplate.setLevel(69)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(45)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(35)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(40)
+ mobileTemplate.setSocialGroup("voritor lizard")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_grassland_voritor_tracker.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('grassland_voritor_tracker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/graul.py b/scripts/mobiles/dantooine/graul.py
new file mode 100644
index 00000000..6376c849
--- /dev/null
+++ b/scripts/mobiles/dantooine/graul.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('graul')
+ mobileTemplate.setLevel(73)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(950)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(875)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(775)
+ mobileTemplate.setSocialGroup("graul")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_graul.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('graul', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/graul_mangler.py b/scripts/mobiles/dantooine/graul_mangler.py
new file mode 100644
index 00000000..03cb6e5f
--- /dev/null
+++ b/scripts/mobiles/dantooine/graul_mangler.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('graul_mangler')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(950)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(875)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(775)
+ mobileTemplate.setSocialGroup("graul")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_graul.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('graul_mangler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/graul_marauder.py b/scripts/mobiles/dantooine/graul_marauder.py
new file mode 100644
index 00000000..a3abb435
--- /dev/null
+++ b/scripts/mobiles/dantooine/graul_marauder.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('graul_marauder')
+ mobileTemplate.setLevel(73)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(950)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(875)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(775)
+ mobileTemplate.setSocialGroup("graul")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_graul.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('graul_marauder', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/graul_mauler.py b/scripts/mobiles/dantooine/graul_mauler.py
new file mode 100644
index 00000000..a7a221bf
--- /dev/null
+++ b/scripts/mobiles/dantooine/graul_mauler.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('graul_mauler')
+ mobileTemplate.setLevel(75)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(950)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(875)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(775)
+ mobileTemplate.setSocialGroup("graul")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_graul.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('graul_mauler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/horned_voritor_jungle_lizard.py b/scripts/mobiles/dantooine/horned_voritor_jungle_lizard.py
new file mode 100644
index 00000000..1c54312e
--- /dev/null
+++ b/scripts/mobiles/dantooine/horned_voritor_jungle_lizard.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('horned_voritor_jungle_lizard')
+ mobileTemplate.setLevel(73)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(50)
+ mobileTemplate.setSocialGroup("voritor lizard")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_voritor_lizard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('horned_voritor_jungle_lizard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/hostile_thune_mother.py b/scripts/mobiles/dantooine/hostile_thune_mother.py
new file mode 100644
index 00000000..91953e60
--- /dev/null
+++ b/scripts/mobiles/dantooine/hostile_thune_mother.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('hostile_thune_mother')
+ mobileTemplate.setLevel(69)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(135)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(150)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(0)
+ mobileTemplate.setSocialGroup("thune")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_thune.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('hostile_thune_mother', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/huurton.py b/scripts/mobiles/dantooine/huurton.py
new file mode 100644
index 00000000..ffecdd01
--- /dev/null
+++ b/scripts/mobiles/dantooine/huurton.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('huurton')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(15)
+ mobileTemplate.setSocialGroup("huurton")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_huurton.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('huurton', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/huurton_bloodhunter.py b/scripts/mobiles/dantooine/huurton_bloodhunter.py
new file mode 100644
index 00000000..b475e391
--- /dev/null
+++ b/scripts/mobiles/dantooine/huurton_bloodhunter.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('huurton_bloodhunter')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(15)
+ mobileTemplate.setSocialGroup("huurton")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_huurton.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('huurton_bloodhunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/huurton_howler.py b/scripts/mobiles/dantooine/huurton_howler.py
new file mode 100644
index 00000000..298d084c
--- /dev/null
+++ b/scripts/mobiles/dantooine/huurton_howler.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('huurton_howler')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(15)
+ mobileTemplate.setSocialGroup("huurton")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_huurton.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('huurton_howler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/huurton_huntress.py b/scripts/mobiles/dantooine/huurton_huntress.py
new file mode 100644
index 00000000..9e100764
--- /dev/null
+++ b/scripts/mobiles/dantooine/huurton_huntress.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('huurton_huntress')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(15)
+ mobileTemplate.setSocialGroup("huurton")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_huurton.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('huurton_huntress', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/huurton_matron.py b/scripts/mobiles/dantooine/huurton_matron.py
new file mode 100644
index 00000000..7a4e8537
--- /dev/null
+++ b/scripts/mobiles/dantooine/huurton_matron.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('huurton_matron')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(15)
+ mobileTemplate.setSocialGroup("huurton")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_huurton.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('huurton_matron', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/huurton_pub.py b/scripts/mobiles/dantooine/huurton_pub.py
new file mode 100644
index 00000000..d1d57c75
--- /dev/null
+++ b/scripts/mobiles/dantooine/huurton_pub.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('huurton_pub')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setSocialGroup("huurton")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_huurton_pup.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('huurton_pub', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/huurton_reaper.py b/scripts/mobiles/dantooine/huurton_reaper.py
new file mode 100644
index 00000000..244538f7
--- /dev/null
+++ b/scripts/mobiles/dantooine/huurton_reaper.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('huurton_reaper')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(25)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(25)
+ mobileTemplate.setSocialGroup("huurton")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_huurton.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('huurton_reaper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/huurton_stalker.py b/scripts/mobiles/dantooine/huurton_stalker.py
new file mode 100644
index 00000000..381d1716
--- /dev/null
+++ b/scripts/mobiles/dantooine/huurton_stalker.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('huurton_stalker')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(15)
+ mobileTemplate.setSocialGroup("huurton")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_huurton.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('huurton_stalker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/infant_graul.py b/scripts/mobiles/dantooine/infant_graul.py
new file mode 100644
index 00000000..c38fc121
--- /dev/null
+++ b/scripts/mobiles/dantooine/infant_graul.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('infant_graul')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(700)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(750)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(650)
+ mobileTemplate.setSocialGroup("graul")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_infant_graul.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('infant_graul', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/janta_clan_leader.py b/scripts/mobiles/dantooine/janta_clan_leader.py
new file mode 100644
index 00000000..0fcd13a9
--- /dev/null
+++ b/scripts/mobiles/dantooine/janta_clan_leader.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('janta_clan_leader')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('janta tribe')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('janta_clan_leader', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/janta_harvester.py b/scripts/mobiles/dantooine/janta_harvester.py
new file mode 100644
index 00000000..37774060
--- /dev/null
+++ b/scripts/mobiles/dantooine/janta_harvester.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('janta_harvester')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('janta tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('janta_harvester', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/janta_herbalist.py b/scripts/mobiles/dantooine/janta_herbalist.py
new file mode 100644
index 00000000..389e2a19
--- /dev/null
+++ b/scripts/mobiles/dantooine/janta_herbalist.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('janta_herbalist')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('janta tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('janta_herbalist', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/janta_hunter.py b/scripts/mobiles/dantooine/janta_hunter.py
new file mode 100644
index 00000000..615824ff
--- /dev/null
+++ b/scripts/mobiles/dantooine/janta_hunter.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('janta_hunter')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('janta tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('janta_hunter', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/janta_loreweaver.py b/scripts/mobiles/dantooine/janta_loreweaver.py
new file mode 100644
index 00000000..978e8d6a
--- /dev/null
+++ b/scripts/mobiles/dantooine/janta_loreweaver.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('janta_loreweaver')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('janta tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('janta_loreweaver', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/janta_primalist.py b/scripts/mobiles/dantooine/janta_primalist.py
new file mode 100644
index 00000000..5fd402ca
--- /dev/null
+++ b/scripts/mobiles/dantooine/janta_primalist.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('janta_primalist')
+ mobileTemplate.setLevel(75)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('janta tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('janta_primalist', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/janta_rockshaper.py b/scripts/mobiles/dantooine/janta_rockshaper.py
new file mode 100644
index 00000000..7693c555
--- /dev/null
+++ b/scripts/mobiles/dantooine/janta_rockshaper.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('janta_rockshaper')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('janta tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('janta_rockshaper', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/janta_scout.py b/scripts/mobiles/dantooine/janta_scout.py
new file mode 100644
index 00000000..dc58aa98
--- /dev/null
+++ b/scripts/mobiles/dantooine/janta_scout.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('janta_scout')
+ mobileTemplate.setLevel(75)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('janta tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('janta_scout', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/janta_shaman.py b/scripts/mobiles/dantooine/janta_shaman.py
new file mode 100644
index 00000000..f7479a02
--- /dev/null
+++ b/scripts/mobiles/dantooine/janta_shaman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('janta_shaman')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('janta tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('janta_shaman', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/janta_soothsayer.py b/scripts/mobiles/dantooine/janta_soothsayer.py
new file mode 100644
index 00000000..f1842636
--- /dev/null
+++ b/scripts/mobiles/dantooine/janta_soothsayer.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('janta_soothsayer')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('janta tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('janta_soothsayer', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/janta_tribesman.py b/scripts/mobiles/dantooine/janta_tribesman.py
new file mode 100644
index 00000000..a741208b
--- /dev/null
+++ b/scripts/mobiles/dantooine/janta_tribesman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('janta_tribesman')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('janta tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('janta_tribesman', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/janta_warrior.py b/scripts/mobiles/dantooine/janta_warrior.py
new file mode 100644
index 00000000..2f142551
--- /dev/null
+++ b/scripts/mobiles/dantooine/janta_warrior.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('janta_warrior')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('janta tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('janta_warrior', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/kunga_clan_leader.py b/scripts/mobiles/dantooine/kunga_clan_leader.py
new file mode 100644
index 00000000..00311d37
--- /dev/null
+++ b/scripts/mobiles/dantooine/kunga_clan_leader.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kunga_clan_leader')
+ mobileTemplate.setLevel(72)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('kunga tribe')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('kunga_clan_leader', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/kunga_clan_primalist.py b/scripts/mobiles/dantooine/kunga_clan_primalist.py
new file mode 100644
index 00000000..ea256156
--- /dev/null
+++ b/scripts/mobiles/dantooine/kunga_clan_primalist.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kunga_clan_primalist')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('kunga tribe')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('kunga_clan_primalist', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/kunga_harvester.py b/scripts/mobiles/dantooine/kunga_harvester.py
new file mode 100644
index 00000000..c1f95881
--- /dev/null
+++ b/scripts/mobiles/dantooine/kunga_harvester.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kunga_harvester')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('kunga tribe')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('kunga_harvester', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/kunga_herbalist.py b/scripts/mobiles/dantooine/kunga_herbalist.py
new file mode 100644
index 00000000..7b0e8887
--- /dev/null
+++ b/scripts/mobiles/dantooine/kunga_herbalist.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kunga_herbalist')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('kunga tribe')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('kunga_herbalist', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/kunga_hunter.py b/scripts/mobiles/dantooine/kunga_hunter.py
new file mode 100644
index 00000000..d5952172
--- /dev/null
+++ b/scripts/mobiles/dantooine/kunga_hunter.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kunga_hunter')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('kunga tribe')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('kunga_hunter', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/kunga_loreweaver.py b/scripts/mobiles/dantooine/kunga_loreweaver.py
new file mode 100644
index 00000000..eab9c3df
--- /dev/null
+++ b/scripts/mobiles/dantooine/kunga_loreweaver.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kunga_loreweaver')
+ mobileTemplate.setLevel(69)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('kunga tribe')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('kunga_loreweaver', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/kunga_rockshaper.py b/scripts/mobiles/dantooine/kunga_rockshaper.py
new file mode 100644
index 00000000..a6434514
--- /dev/null
+++ b/scripts/mobiles/dantooine/kunga_rockshaper.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kunga_rockshaper')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('kunga tribe')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('kunga_rockshaper', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/kunga_scout.py b/scripts/mobiles/dantooine/kunga_scout.py
new file mode 100644
index 00000000..d5cd7e5c
--- /dev/null
+++ b/scripts/mobiles/dantooine/kunga_scout.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kunga_scout')
+ mobileTemplate.setLevel(69)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('kunga tribe')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('kunga_scout', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/kunga_shaman.py b/scripts/mobiles/dantooine/kunga_shaman.py
new file mode 100644
index 00000000..9dd33ef8
--- /dev/null
+++ b/scripts/mobiles/dantooine/kunga_shaman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kunga_shaman')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('kunga tribe')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('kunga_shaman', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/kunga_soothsayer.py b/scripts/mobiles/dantooine/kunga_soothsayer.py
new file mode 100644
index 00000000..d1321f7b
--- /dev/null
+++ b/scripts/mobiles/dantooine/kunga_soothsayer.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kunga_soothsayer')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('kunga tribe')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('kunga_soothsayer', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/kunga_tribe_member.py b/scripts/mobiles/dantooine/kunga_tribe_member.py
new file mode 100644
index 00000000..df111848
--- /dev/null
+++ b/scripts/mobiles/dantooine/kunga_tribe_member.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kunga_tribe_member')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('kunga tribe')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('kunga_tribe_member', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/kunga_warrior.py b/scripts/mobiles/dantooine/kunga_warrior.py
new file mode 100644
index 00000000..2bb31e22
--- /dev/null
+++ b/scripts/mobiles/dantooine/kunga_warrior.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kunga_warrior')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('kunga tribe')
+ mobileTemplate.setAssistRange(1)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('kunga_warrior', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/lesser_plains_bol.py b/scripts/mobiles/dantooine/lesser_plains_bol.py
new file mode 100644
index 00000000..579a0c20
--- /dev/null
+++ b/scripts/mobiles/dantooine/lesser_plains_bol.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('lesser_plains_bol')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(0)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(300)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(180)
+ mobileTemplate.setSocialGroup("bol")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bol_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('lesser_plains_bol', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/mammoth_thune.py b/scripts/mobiles/dantooine/mammoth_thune.py
new file mode 100644
index 00000000..4fd07c82
--- /dev/null
+++ b/scripts/mobiles/dantooine/mammoth_thune.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('mammoth_thune')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(225)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(190)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(0)
+ mobileTemplate.setSocialGroup("thune")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_thune_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mammoth_thune', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/mokk_clan_leader.py b/scripts/mobiles/dantooine/mokk_clan_leader.py
new file mode 100644
index 00000000..a83c7a32
--- /dev/null
+++ b/scripts/mobiles/dantooine/mokk_clan_leader.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mokk_clan_leader')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mokk tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('mokk_clan_leader', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/mokk_clan_primalist.py b/scripts/mobiles/dantooine/mokk_clan_primalist.py
new file mode 100644
index 00000000..839ed2eb
--- /dev/null
+++ b/scripts/mobiles/dantooine/mokk_clan_primalist.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mokk_clan_primalist')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('mokk tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('mokk_clan_primalist', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/mokk_harvester.py b/scripts/mobiles/dantooine/mokk_harvester.py
new file mode 100644
index 00000000..2fd08f45
--- /dev/null
+++ b/scripts/mobiles/dantooine/mokk_harvester.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mokk_harvester')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('mokk tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('mokk_harvester', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/mokk_herbalist.py b/scripts/mobiles/dantooine/mokk_herbalist.py
new file mode 100644
index 00000000..c5cec1b7
--- /dev/null
+++ b/scripts/mobiles/dantooine/mokk_herbalist.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mokk_herbalist')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('mokk tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('mokk_herbalist', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/mokk_hunter.py b/scripts/mobiles/dantooine/mokk_hunter.py
new file mode 100644
index 00000000..f56bac8c
--- /dev/null
+++ b/scripts/mobiles/dantooine/mokk_hunter.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mokk_hunter')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mokk tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('mokk_hunter', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/mokk_loreweaver.py b/scripts/mobiles/dantooine/mokk_loreweaver.py
new file mode 100644
index 00000000..c7df5a02
--- /dev/null
+++ b/scripts/mobiles/dantooine/mokk_loreweaver.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mokk_loreweaver')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mokk tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('mokk_loreweaver', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/mokk_rockshaper.py b/scripts/mobiles/dantooine/mokk_rockshaper.py
new file mode 100644
index 00000000..24a5eb6d
--- /dev/null
+++ b/scripts/mobiles/dantooine/mokk_rockshaper.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mokk_rockshaper')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('mokk tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('mokk_rockshaper', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/mokk_scout.py b/scripts/mobiles/dantooine/mokk_scout.py
new file mode 100644
index 00000000..dd85d584
--- /dev/null
+++ b/scripts/mobiles/dantooine/mokk_scout.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mokk_scout')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mokk tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('mokk_scout', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/mokk_shaman.py b/scripts/mobiles/dantooine/mokk_shaman.py
new file mode 100644
index 00000000..22df383e
--- /dev/null
+++ b/scripts/mobiles/dantooine/mokk_shaman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mokk_shaman')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mokk tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('mokk_shaman', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/mokk_soothsayer.py b/scripts/mobiles/dantooine/mokk_soothsayer.py
new file mode 100644
index 00000000..866598a1
--- /dev/null
+++ b/scripts/mobiles/dantooine/mokk_soothsayer.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mokk_soothsayer')
+ mobileTemplate.setLevel(67)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mokk tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('mokk_soothsayer', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/mokk_tribesman.py b/scripts/mobiles/dantooine/mokk_tribesman.py
new file mode 100644
index 00000000..530f4286
--- /dev/null
+++ b/scripts/mobiles/dantooine/mokk_tribesman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mokk_tribesman')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mokk tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('mokk_tribesman', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/mokk_warrior.py b/scripts/mobiles/dantooine/mokk_warrior.py
new file mode 100644
index 00000000..99fc43c8
--- /dev/null
+++ b/scripts/mobiles/dantooine/mokk_warrior.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mokk_warrior')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('mokk tribe')
+ mobileTemplate.setAssistRange(12)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dantari_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/knife/shared_knife_janta.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_janta.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('mokk_warrior', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/novice_force_mystic.py b/scripts/mobiles/dantooine/novice_force_mystic.py
new file mode 100644
index 00000000..1ed0f1a0
--- /dev/null
+++ b/scripts/mobiles/dantooine/novice_force_mystic.py
@@ -0,0 +1,35 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('novice_force_mystic')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(7)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('force renegade')
+ mobileTemplate.setRespawnTime(300)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_novice_force_mystic.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('novice_force_mystic', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/piket.py b/scripts/mobiles/dantooine/piket.py
new file mode 100644
index 00000000..82cb1618
--- /dev/null
+++ b/scripts/mobiles/dantooine/piket.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('piket')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(35)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(30)
+ mobileTemplate.setSocialGroup("piket")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_piket.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('piket', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/piket_longhorn.py b/scripts/mobiles/dantooine/piket_longhorn.py
new file mode 100644
index 00000000..24188d28
--- /dev/null
+++ b/scripts/mobiles/dantooine/piket_longhorn.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('piket_longhorn')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(35)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(30)
+ mobileTemplate.setSocialGroup("piket")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_piket_longhorn.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('piket_longhorn', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/piket_longhorn_female.py b/scripts/mobiles/dantooine/piket_longhorn_female.py
new file mode 100644
index 00000000..dfddbe58
--- /dev/null
+++ b/scripts/mobiles/dantooine/piket_longhorn_female.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('piket')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(35)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(30)
+ mobileTemplate.setSocialGroup("piket")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_piket_longhorn.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('piket', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/piket_plains_walker.py b/scripts/mobiles/dantooine/piket_plains_walker.py
new file mode 100644
index 00000000..5cdb310c
--- /dev/null
+++ b/scripts/mobiles/dantooine/piket_plains_walker.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('piket_plains_walker')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(35)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(30)
+ mobileTemplate.setSocialGroup("piket")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_piket_plains_walker.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('piket_plains_walker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/quenker.py b/scripts/mobiles/dantooine/quenker.py
new file mode 100644
index 00000000..9f575295
--- /dev/null
+++ b/scripts/mobiles/dantooine/quenker.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('quenker')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(15)
+ mobileTemplate.setSocialGroup("quenker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_quenker.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('quenker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/quenker_ravager.py b/scripts/mobiles/dantooine/quenker_ravager.py
new file mode 100644
index 00000000..125f1b1b
--- /dev/null
+++ b/scripts/mobiles/dantooine/quenker_ravager.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('quenker_ravager')
+ mobileTemplate.setLevel(67)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(15)
+ mobileTemplate.setSocialGroup("quenker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_quenker_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('quenker_ravager', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/quenker_relic_reaper.py b/scripts/mobiles/dantooine/quenker_relic_reaper.py
new file mode 100644
index 00000000..ae6ec1a7
--- /dev/null
+++ b/scripts/mobiles/dantooine/quenker_relic_reaper.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('quenker_relic_reaper')
+ mobileTemplate.setLevel(69)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(15)
+ mobileTemplate.setSocialGroup("quenker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_quenker_relic_reaper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('quenker_relic_reaper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/savage_quenker.py b/scripts/mobiles/dantooine/savage_quenker.py
new file mode 100644
index 00000000..3f5a26b7
--- /dev/null
+++ b/scripts/mobiles/dantooine/savage_quenker.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('savage_quenker')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(0)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(0)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(0)
+ mobileTemplate.setSocialGroup("quenker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_quenker_relic_reaper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('savage_quenker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/seething_bol_crusher.py b/scripts/mobiles/dantooine/seething_bol_crusher.py
new file mode 100644
index 00000000..61c1b251
--- /dev/null
+++ b/scripts/mobiles/dantooine/seething_bol_crusher.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('seething_bol_crusher')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(0)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(300)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(180)
+ mobileTemplate.setSocialGroup("bol")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bol.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('seething_bol_crusher', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/slice_hound.py b/scripts/mobiles/dantooine/slice_hound.py
new file mode 100644
index 00000000..19175407
--- /dev/null
+++ b/scripts/mobiles/dantooine/slice_hound.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('slice_hound')
+ mobileTemplate.setLevel(51)
+ mobileTemplate.setMinLevel(51)
+ mobileTemplate.setMaxLevel(51)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setBoneAmount(35)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(30)
+ mobileTemplate.setSocialGroup("slice_hound")
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dewback.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('slice_hound', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/slinking_voritor_hunter.py b/scripts/mobiles/dantooine/slinking_voritor_hunter.py
new file mode 100644
index 00000000..e4b22c92
--- /dev/null
+++ b/scripts/mobiles/dantooine/slinking_voritor_hunter.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('slinking_voritor_hunter')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(90)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(65)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(50)
+ mobileTemplate.setSocialGroup("voritor lizard")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_slinking_voritor_hunter.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('slinking_voritor_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/spiked_slasher.py b/scripts/mobiles/dantooine/spiked_slasher.py
new file mode 100644
index 00000000..2f3d2330
--- /dev/null
+++ b/scripts/mobiles/dantooine/spiked_slasher.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('spiked_slasher')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(50)
+ mobileTemplate.setSocialGroup("voritor lizard")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_voritor_lizard_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('spiked_slasher', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/stranded_rebel_scout.py b/scripts/mobiles/dantooine/stranded_rebel_scout.py
new file mode 100644
index 00000000..af05c180
--- /dev/null
+++ b/scripts/mobiles/dantooine/stranded_rebel_scout.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stranded_rebel_scout')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(24)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('rebel')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_human_01.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_dh17.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_rebel.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stranded_rebel_scout', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/swift_charging_bol.py b/scripts/mobiles/dantooine/swift_charging_bol.py
new file mode 100644
index 00000000..2bbccc53
--- /dev/null
+++ b/scripts/mobiles/dantooine/swift_charging_bol.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('bol_swift_charger')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(0)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(300)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(180)
+ mobileTemplate.setSocialGroup("bol")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bol_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('swift_charging_bol', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/terrible_quenker.py b/scripts/mobiles/dantooine/terrible_quenker.py
new file mode 100644
index 00000000..de6a648c
--- /dev/null
+++ b/scripts/mobiles/dantooine/terrible_quenker.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('terrible_quenker')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(0)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(0)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(0)
+ mobileTemplate.setSocialGroup("quenker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_quenker.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('terrible_quenker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/thune.py b/scripts/mobiles/dantooine/thune.py
new file mode 100644
index 00000000..e8653e89
--- /dev/null
+++ b/scripts/mobiles/dantooine/thune.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('thune')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(115)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(125)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(0)
+ mobileTemplate.setSocialGroup("thune")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_thune.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('thune', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/thune_grassland_guardian.py b/scripts/mobiles/dantooine/thune_grassland_guardian.py
new file mode 100644
index 00000000..9c99c933
--- /dev/null
+++ b/scripts/mobiles/dantooine/thune_grassland_guardian.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('thune_grassland_guardian')
+ mobileTemplate.setLevel(72)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(135)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(150)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(0)
+ mobileTemplate.setSocialGroup("thune")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_thune_grassland_guardian.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('thune_grassland_guardian', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/thune_herd_leader.py b/scripts/mobiles/dantooine/thune_herd_leader.py
new file mode 100644
index 00000000..3ab09c93
--- /dev/null
+++ b/scripts/mobiles/dantooine/thune_herd_leader.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('thune_herd_leader')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(135)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(150)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(0)
+ mobileTemplate.setSocialGroup("thune")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_thune_herd_leader.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('thune_herd_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/untrained_wielder_of_the_dark_side.py b/scripts/mobiles/dantooine/untrained_wielder_of_the_dark_side.py
new file mode 100644
index 00000000..de77e40a
--- /dev/null
+++ b/scripts/mobiles/dantooine/untrained_wielder_of_the_dark_side.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('untrained_wielder_of_the_dark_side')
+ mobileTemplate.setMinLevel(61)
+ mobileTemplate.setMaxLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(6)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('remnants of kun')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_untrained_wielder_of_the_darkside.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('untrained_wielder_of_the_dark_side', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/vexed_voritor_lizard.py b/scripts/mobiles/dantooine/vexed_voritor_lizard.py
new file mode 100644
index 00000000..84d6a944
--- /dev/null
+++ b/scripts/mobiles/dantooine/vexed_voritor_lizard.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('vexed_voritor_lizard')
+ mobileTemplate.setLevel(73)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(50)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(50)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(50)
+ mobileTemplate.setSocialGroup("voritor lizard")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_vexed_voritor_lizard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vexed_voritor_lizard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/voritor_dasher.py b/scripts/mobiles/dantooine/voritor_dasher.py
new file mode 100644
index 00000000..5b805437
--- /dev/null
+++ b/scripts/mobiles/dantooine/voritor_dasher.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('voritor_dasher')
+ mobileTemplate.setLevel(72)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(40)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setSocialGroup("voritor lizard")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_voritor_dasher.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('voritor_dasher', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dantooine/voritor_lizard.py b/scripts/mobiles/dantooine/voritor_lizard.py
new file mode 100644
index 00000000..b8b72b90
--- /dev/null
+++ b/scripts/mobiles/dantooine/voritor_lizard.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('voritor_lizard')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(35)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(30)
+ mobileTemplate.setSocialGroup("voritor lizard")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_voritor_lizard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('voritor_lizard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/alpha_bolma.py b/scripts/mobiles/dathomir/alpha_bolma.py
new file mode 100644
index 00000000..b2d7c9e1
--- /dev/null
+++ b/scripts/mobiles/dathomir/alpha_bolma.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('alpha_bolma')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setMinLevel(62)
+ mobileTemplate.setMaxLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(500)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(550)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(500)
+ mobileTemplate.setSocialGroup("bolma")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bolma_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('alpha_bolma', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/ancient_reptilian_flier.py b/scripts/mobiles/dathomir/ancient_reptilian_flier.py
new file mode 100644
index 00000000..62fbe3da
--- /dev/null
+++ b/scripts/mobiles/dathomir/ancient_reptilian_flier.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ancient_reptilian_flier')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setMinLevel(68)
+ mobileTemplate.setMaxLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(135)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(90)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(85)
+ mobileTemplate.setSocialGroup("reptilian flier")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_reptilian_flier_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('ancient_reptilian_flier', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/bane_back_spider.py b/scripts/mobiles/dathomir/bane_back_spider.py
new file mode 100644
index 00000000..a6d65231
--- /dev/null
+++ b/scripts/mobiles/dathomir/bane_back_spider.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bio_engineered_bane_back')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("gaping")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gaping_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bane_back_spider', mobileTemplate)
+ return
diff --git a/scripts/mobiles/dathomir/baz_nitch.py b/scripts/mobiles/dathomir/baz_nitch.py
new file mode 100644
index 00000000..78854fc9
--- /dev/null
+++ b/scripts/mobiles/dathomir/baz_nitch.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('baz_nitch')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("baz nitch")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_baz_nitch_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('baz_nitch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/bolma.py b/scripts/mobiles/dathomir/bolma.py
new file mode 100644
index 00000000..61debf7b
--- /dev/null
+++ b/scripts/mobiles/dathomir/bolma.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bolma')
+ mobileTemplate.setLevel(55)
+ mobileTemplate.setMinLevel(55)
+ mobileTemplate.setMaxLevel(55)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(160)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(150)
+ mobileTemplate.setSocialGroup("bolma")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bolma_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bolma', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/bolma_calf.py b/scripts/mobiles/dathomir/bolma_calf.py
new file mode 100644
index 00000000..93009c87
--- /dev/null
+++ b/scripts/mobiles/dathomir/bolma_calf.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bolma_calf')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(175)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(160)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(150)
+ mobileTemplate.setSocialGroup("bolma")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bolma_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bolma_calf', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/bolma_female.py b/scripts/mobiles/dathomir/bolma_female.py
new file mode 100644
index 00000000..f7e46729
--- /dev/null
+++ b/scripts/mobiles/dathomir/bolma_female.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bolma_female')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(300)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(320)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(300)
+ mobileTemplate.setSocialGroup("bolma")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bolma_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bolma_female', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/bolma_male.py b/scripts/mobiles/dathomir/bolma_male.py
new file mode 100644
index 00000000..45e2e69a
--- /dev/null
+++ b/scripts/mobiles/dathomir/bolma_male.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bolma_male')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(320)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(340)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(320)
+ mobileTemplate.setSocialGroup("bolma")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bolma_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bolma_male', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/bolma_pack_master.py b/scripts/mobiles/dathomir/bolma_pack_master.py
new file mode 100644
index 00000000..41e3ab79
--- /dev/null
+++ b/scripts/mobiles/dathomir/bolma_pack_master.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bolma_pack_master')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(160)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(150)
+ mobileTemplate.setSocialGroup("bolma")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bolma_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bolma_pack_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/bolma_youth.py b/scripts/mobiles/dathomir/bolma_youth.py
new file mode 100644
index 00000000..f57cf597
--- /dev/null
+++ b/scripts/mobiles/dathomir/bolma_youth.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bolma_youth')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(160)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(150)
+ mobileTemplate.setSocialGroup("bolma")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bolma_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bolma_youth', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/brackaset.py b/scripts/mobiles/dathomir/brackaset.py
new file mode 100644
index 00000000..9ec9fe30
--- /dev/null
+++ b/scripts/mobiles/dathomir/brackaset.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('brackaset')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setMinLevel(66)
+ mobileTemplate.setMaxLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(100)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(91)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(81)
+ mobileTemplate.setSocialGroup("brackaset")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_brackaset_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('brackaset', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/brackaset_female.py b/scripts/mobiles/dathomir/brackaset_female.py
new file mode 100644
index 00000000..c40a29e6
--- /dev/null
+++ b/scripts/mobiles/dathomir/brackaset_female.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('brackaset_female')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(100)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(90)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(80)
+ mobileTemplate.setSocialGroup("brackaset")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_brackaset_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('brackaset_female', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/brackaset_male.py b/scripts/mobiles/dathomir/brackaset_male.py
new file mode 100644
index 00000000..0db9fd64
--- /dev/null
+++ b/scripts/mobiles/dathomir/brackaset_male.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('brackaset_male')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(100)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(91)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(81)
+ mobileTemplate.setSocialGroup("brackaset")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_brackaset_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('brackaset_male', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/bull_rancor.py b/scripts/mobiles/dathomir/bull_rancor.py
new file mode 100644
index 00000000..4d9e798b
--- /dev/null
+++ b/scripts/mobiles/dathomir/bull_rancor.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bull_rancor')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(1020)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(900)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(850)
+ mobileTemplate.setSocialGroup("rancor")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rancor_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bull_rancor', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/nightsister_elder.py b/scripts/mobiles/dathomir/nightsister_elder.py
new file mode 100644
index 00000000..3531fec8
--- /dev/null
+++ b/scripts/mobiles/dathomir/nightsister_elder.py
@@ -0,0 +1,61 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('nightsister_elder')
+ mobileTemplate.setLevel(82)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(6)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('nightsister')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_nightsister_elder.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ mobileTemplate.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('nightsister_elder', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/nightsister_initiate.py b/scripts/mobiles/dathomir/nightsister_initiate.py
new file mode 100644
index 00000000..30290e6b
--- /dev/null
+++ b/scripts/mobiles/dathomir/nightsister_initiate.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('nightsister_initiate')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(6)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setSocialGroup('nightsister')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_nightsister_initiate.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+
+ core.spawnService.addMobileTemplate('nightsister_initiate', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/nightsister_outcast.py b/scripts/mobiles/dathomir/nightsister_outcast.py
new file mode 100644
index 00000000..f87f5f19
--- /dev/null
+++ b/scripts/mobiles/dathomir/nightsister_outcast.py
@@ -0,0 +1,56 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('nightsister_outcast')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(6)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('nightsister')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_nightsister_outcast.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ mobileTemplate.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('nightsister_outcast', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/nightsister_protector.py b/scripts/mobiles/dathomir/nightsister_protector.py
new file mode 100644
index 00000000..adcb0d07
--- /dev/null
+++ b/scripts/mobiles/dathomir/nightsister_protector.py
@@ -0,0 +1,56 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('nightsister_protector')
+ mobileTemplate.setLevel(81)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(6)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('nightsister')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_nightsister_protector.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('nightsister_protector', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/nightsister_rancor.py b/scripts/mobiles/dathomir/nightsister_rancor.py
new file mode 100644
index 00000000..1a783345
--- /dev/null
+++ b/scripts/mobiles/dathomir/nightsister_rancor.py
@@ -0,0 +1,36 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('nightsister_rancor')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(6)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('nightsister')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rancor.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('nightsister_rancor', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/nightsister_rancor_tamer.py b/scripts/mobiles/dathomir/nightsister_rancor_tamer.py
new file mode 100644
index 00000000..dc77680f
--- /dev/null
+++ b/scripts/mobiles/dathomir/nightsister_rancor_tamer.py
@@ -0,0 +1,56 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('nightsister_rancor_tamer')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(6)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('nightsister')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_nightsister_rancor_tamer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('nightsister_rancor_tamer', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/nightsister_ranger.py b/scripts/mobiles/dathomir/nightsister_ranger.py
new file mode 100644
index 00000000..3c474823
--- /dev/null
+++ b/scripts/mobiles/dathomir/nightsister_ranger.py
@@ -0,0 +1,57 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('nightsister_ranger')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(6)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setSocialGroup('nightsister')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_nightsister_ranger.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('nightsister_ranger', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/nightsister_sentinel.py b/scripts/mobiles/dathomir/nightsister_sentinel.py
new file mode 100644
index 00000000..75158183
--- /dev/null
+++ b/scripts/mobiles/dathomir/nightsister_sentinel.py
@@ -0,0 +1,56 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('nightsister_sentinal')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(6)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('nightsister')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_nightsister_sentinal.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('nightsister_sentinal', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/nightsister_sentry.py b/scripts/mobiles/dathomir/nightsister_sentry.py
new file mode 100644
index 00000000..160e6232
--- /dev/null
+++ b/scripts/mobiles/dathomir/nightsister_sentry.py
@@ -0,0 +1,56 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('nightsister_sentry')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(6)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('nightsister')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_nightsister_stalker.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('nightsister_sentry', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/nightsister_slave.py b/scripts/mobiles/dathomir/nightsister_slave.py
new file mode 100644
index 00000000..88e64f2b
--- /dev/null
+++ b/scripts/mobiles/dathomir/nightsister_slave.py
@@ -0,0 +1,32 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('nightsister_slave')
+ mobileTemplate.setLevel(86)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_nightsister_slave.iff')
+ mobileTemplate.setTemplates(templates)
+
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+
+
+ core.spawnService.addMobileTemplate('nightsister_slave', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/nightsister_spell_weaver.py b/scripts/mobiles/dathomir/nightsister_spell_weaver.py
new file mode 100644
index 00000000..cc12a19a
--- /dev/null
+++ b/scripts/mobiles/dathomir/nightsister_spell_weaver.py
@@ -0,0 +1,56 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('nightsister_spell_weaver')
+ mobileTemplate.setLevel(81)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(6)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('nightsister')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_nightsister_spellweaver.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('nightsister_spell_weaver', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/nightsister_stalker.py b/scripts/mobiles/dathomir/nightsister_stalker.py
new file mode 100644
index 00000000..53a0a500
--- /dev/null
+++ b/scripts/mobiles/dathomir/nightsister_stalker.py
@@ -0,0 +1,57 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('nightsister_stalker')
+ mobileTemplate.setLevel(81)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(6)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setSocialGroup('nightsister')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_nightsister_stalker.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('nightsister_stalker', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/rancor.py b/scripts/mobiles/dathomir/rancor.py
new file mode 100644
index 00000000..06211eee
--- /dev/null
+++ b/scripts/mobiles/dathomir/rancor.py
@@ -0,0 +1,23 @@
+import sys
+from services.spawn import MobileTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rancor')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rancor.iff')
+ mobileTemplate.setTemplates(templates)
+
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rancor', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/singing_mountain_clan_rancor.py b/scripts/mobiles/dathomir/singing_mountain_clan_rancor.py
new file mode 100644
index 00000000..47ff1b5e
--- /dev/null
+++ b/scripts/mobiles/dathomir/singing_mountain_clan_rancor.py
@@ -0,0 +1,36 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('singing_mountain_clan_rancor')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(6)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mountain clan')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rancor.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('singing_mountain_clan_rancor', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/singing_mountain_clan_sentry.py b/scripts/mobiles/dathomir/singing_mountain_clan_sentry.py
new file mode 100644
index 00000000..ea81eb8e
--- /dev/null
+++ b/scripts/mobiles/dathomir/singing_mountain_clan_sentry.py
@@ -0,0 +1,56 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('singing_mountain_clan_sentry')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(6)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('mountain clan')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_sing_mt_clan_sentry.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_wood_s1.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('singing_mountain_clan_sentry', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/singing_mtn_clan_arch_witch.py b/scripts/mobiles/dathomir/singing_mtn_clan_arch_witch.py
new file mode 100644
index 00000000..d8028835
--- /dev/null
+++ b/scripts/mobiles/dathomir/singing_mtn_clan_arch_witch.py
@@ -0,0 +1,56 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('singing_mtn_clan_arch_witch')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(6)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mountain clan')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_sing_mt_clan_arch_witch.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('singing_mtn_clan_arch_witch', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/singing_mtn_clan_councilwoman.py b/scripts/mobiles/dathomir/singing_mtn_clan_councilwoman.py
new file mode 100644
index 00000000..388b3f29
--- /dev/null
+++ b/scripts/mobiles/dathomir/singing_mtn_clan_councilwoman.py
@@ -0,0 +1,61 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('singing_mtn_clan_councilwoman')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(6)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mountain clan')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_sing_mt_clan_councilwoman.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ mobileTemplate.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('singing_mtn_clan_councilwoman', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/singing_mtn_clan_dragoon.py b/scripts/mobiles/dathomir/singing_mtn_clan_dragoon.py
new file mode 100644
index 00000000..2bc60d7e
--- /dev/null
+++ b/scripts/mobiles/dathomir/singing_mtn_clan_dragoon.py
@@ -0,0 +1,56 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('singing_mtn_clan_dragoon')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(6)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mountain clan')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_sing_mt_clan_dragoon.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('singing_mtn_clan_dragoon', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/singing_mtn_clan_guardian.py b/scripts/mobiles/dathomir/singing_mtn_clan_guardian.py
new file mode 100644
index 00000000..863823ec
--- /dev/null
+++ b/scripts/mobiles/dathomir/singing_mtn_clan_guardian.py
@@ -0,0 +1,56 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('singing_mtn_clan_guardian')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(6)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mountain clan')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_sing_mt_clan_guardian.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('singing_mtn_clan_guardian', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/singing_mtn_clan_huntress.py b/scripts/mobiles/dathomir/singing_mtn_clan_huntress.py
new file mode 100644
index 00000000..592a0d44
--- /dev/null
+++ b/scripts/mobiles/dathomir/singing_mtn_clan_huntress.py
@@ -0,0 +1,57 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('singing_mtn_clan_huntress')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(6)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setSocialGroup('mountain clan')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_sing_mt_clan_huntress.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('singing_mtn_clan_huntress', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/singing_mtn_clan_initiate.py b/scripts/mobiles/dathomir/singing_mtn_clan_initiate.py
new file mode 100644
index 00000000..677dd58c
--- /dev/null
+++ b/scripts/mobiles/dathomir/singing_mtn_clan_initiate.py
@@ -0,0 +1,36 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('singing_mtn_clan_initiate')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(6)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mountain clan')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_sing_mt_clan_initiate.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('singing_mtn_clan_initiate', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/singing_mtn_clan_outcast.py b/scripts/mobiles/dathomir/singing_mtn_clan_outcast.py
new file mode 100644
index 00000000..afe40e1f
--- /dev/null
+++ b/scripts/mobiles/dathomir/singing_mtn_clan_outcast.py
@@ -0,0 +1,56 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('singing_mtn_clan_initiate')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(6)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mountain clan')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_sing_mt_clan_outcast.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_lance_staff_wood_s1.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('singing_mtn_clan_initiate', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/singing_mtn_clan_rancor_tamer.py b/scripts/mobiles/dathomir/singing_mtn_clan_rancor_tamer.py
new file mode 100644
index 00000000..21ccb3ae
--- /dev/null
+++ b/scripts/mobiles/dathomir/singing_mtn_clan_rancor_tamer.py
@@ -0,0 +1,56 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('singing_mtn_clan_rancor_tamer')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(6)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mountain clan')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_sing_mt_clan_rancor_tamer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('singing_mtn_clan_rancor_tamer', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/singing_mtn_clan_scout.py b/scripts/mobiles/dathomir/singing_mtn_clan_scout.py
new file mode 100644
index 00000000..57381784
--- /dev/null
+++ b/scripts/mobiles/dathomir/singing_mtn_clan_scout.py
@@ -0,0 +1,56 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('singing_mtn_clan_scout')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(6)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('mountain clan')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_sing_mt_clan_scout.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 3
+ mobileTemplate.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+ core.spawnService.addMobileTemplate('singing_mtn_clan_scout', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dathomir/singing_mtn_clan_slave.py b/scripts/mobiles/dathomir/singing_mtn_clan_slave.py
new file mode 100644
index 00000000..8457d63e
--- /dev/null
+++ b/scripts/mobiles/dathomir/singing_mtn_clan_slave.py
@@ -0,0 +1,36 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('singing_mtn_clan_slave')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(6)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('mountain clan')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setRespawnTime(300)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dathomir_sing_mt_clan_slave.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('singing_mtn_clan_slave', mobileTemplate)
\ No newline at end of file
diff --git a/scripts/mobiles/dynamicgroups/adolescent_krayt_wild_1.py b/scripts/mobiles/dynamicgroups/adolescent_krayt_wild_1.py
new file mode 100644
index 00000000..f542e938
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/adolescent_krayt_wild_1.py
@@ -0,0 +1,16 @@
+import sys
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+from java.util import Vector
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('adolescent_krayt_dragon')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(1)
+ dynamicGroup.setName('adolescent_krayt_wild_1')
+ dynamicGroup.setMaxSpawns(1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('adolescent_krayt_wild_1', dynamicGroup)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dynamicgroups/bol_group_1.py b/scripts/mobiles/dynamicgroups/bol_group_1.py
new file mode 100644
index 00000000..f26dd786
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/bol_group_1.py
@@ -0,0 +1,18 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('bol')
+ mobileTemplates.add('bol_pack_runner')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(2)
+ dynamicGroup.setName('bol_group_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('bol_group_1', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/canyon_krayt_wild_1.py b/scripts/mobiles/dynamicgroups/canyon_krayt_wild_1.py
new file mode 100644
index 00000000..27b392b6
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/canyon_krayt_wild_1.py
@@ -0,0 +1,16 @@
+import sys
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+from java.util import Vector
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('canyon_krayt_dragon')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(1)
+ dynamicGroup.setName('canyon_krayt_wild_1')
+ dynamicGroup.setMaxSpawns(1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('canyon_krayt_wild_1', dynamicGroup)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dynamicgroups/dark_jedi_wild_1.py b/scripts/mobiles/dynamicgroups/dark_jedi_wild_1.py
new file mode 100644
index 00000000..3bf8c043
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/dark_jedi_wild_1.py
@@ -0,0 +1,18 @@
+import sys
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+from java.util import Vector
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('dark_jedi_master')
+ mobileTemplates.add('dark_jedi_knight')
+ mobileTemplates.add('dark_adept')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(3)
+ dynamicGroup.setName('dark_jedi_wild_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('dark_jedi_wild_1', dynamicGroup)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dynamicgroups/force_sensitives_wild_1.py b/scripts/mobiles/dynamicgroups/force_sensitives_wild_1.py
new file mode 100644
index 00000000..9ee91b60
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/force_sensitives_wild_1.py
@@ -0,0 +1,20 @@
+import sys
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+from java.util import Vector
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('force_sensitive_crypt_crawler')
+ mobileTemplates.add('force_sensitive_renegade')
+ mobileTemplates.add('forsaken_force_drifter')
+ mobileTemplates.add('novice_force_mystic')
+ mobileTemplates.add('untrained_wielder_of_the_dark_side')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('force_sensitives_wild_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('force_sensitives_wild_1', dynamicGroup)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dynamicgroups/frenzied_graul_1.py b/scripts/mobiles/dynamicgroups/frenzied_graul_1.py
new file mode 100644
index 00000000..dfe2dac0
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/frenzied_graul_1.py
@@ -0,0 +1,17 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('frenzied_graul')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('thunes_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('frenzied_graul', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/giant_canyon_krayt_wild_1.py b/scripts/mobiles/dynamicgroups/giant_canyon_krayt_wild_1.py
new file mode 100644
index 00000000..90595b2f
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/giant_canyon_krayt_wild_1.py
@@ -0,0 +1,16 @@
+import sys
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+from java.util import Vector
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('giant_canyon_krayt_dragon')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(1)
+ dynamicGroup.setName('giant_canyon_krayt_dragon_1')
+ dynamicGroup.setMaxSpawns(1)
+ dynamicGroup.setMinSpawnDistance(60)
+ core.spawnService.addDynamicGroup('giant_canyon_krayt_dragon_1', dynamicGroup)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dynamicgroups/grand_canyon_krayt_wild_1.py b/scripts/mobiles/dynamicgroups/grand_canyon_krayt_wild_1.py
new file mode 100644
index 00000000..f8f13fe8
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/grand_canyon_krayt_wild_1.py
@@ -0,0 +1,16 @@
+import sys
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+from java.util import Vector
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('grand_canyon_krayt_dragon')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(1)
+ dynamicGroup.setName('grand_canyon_krayt_dragon_1')
+ dynamicGroup.setMaxSpawns(1)
+ dynamicGroup.setMinSpawnDistance(60)
+ core.spawnService.addDynamicGroup('grand_canyon_krayt_dragon_1', dynamicGroup)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dynamicgroups/graul_mauler_nw_group_1.py b/scripts/mobiles/dynamicgroups/graul_mauler_nw_group_1.py
new file mode 100644
index 00000000..288ff2b9
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/graul_mauler_nw_group_1.py
@@ -0,0 +1,17 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('graul_mauler')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('graul_mauler_nw_group_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('graul_mauler_nw_group_1', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/huurton_group_1.py b/scripts/mobiles/dynamicgroups/huurton_group_1.py
new file mode 100644
index 00000000..d6fe32fa
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/huurton_group_1.py
@@ -0,0 +1,22 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('huurton')
+ mobileTemplates.add('huurton_bloodhunter')
+ mobileTemplates.add('huurton_howler')
+ mobileTemplates.add('huurton_huntress')
+ mobileTemplates.add('huurton_matron')
+ mobileTemplates.add('huurton_reaper')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('huurton_group_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('huurton_group_1', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/huurton_group_2.py b/scripts/mobiles/dynamicgroups/huurton_group_2.py
new file mode 100644
index 00000000..e66380e5
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/huurton_group_2.py
@@ -0,0 +1,20 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('huurton_bloodhunter')
+ mobileTemplates.add('huurton_howler')
+ mobileTemplates.add('huurton_huntress')
+ mobileTemplates.add('huurton_reaper')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('huurton_group_2')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('huurton_group_2', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/jantas_nw_group_1.py b/scripts/mobiles/dynamicgroups/jantas_nw_group_1.py
new file mode 100644
index 00000000..eca673e4
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/jantas_nw_group_1.py
@@ -0,0 +1,28 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('janta_clan_leader')
+ mobileTemplates.add('janta_harvester')
+ mobileTemplates.add('janta_herbalist')
+ mobileTemplates.add('janta_hunter')
+ mobileTemplates.add('janta_loreweaver')
+ mobileTemplates.add('janta_primalist')
+ mobileTemplates.add('janta_rockshaper')
+ mobileTemplates.add('janta_scout')
+ mobileTemplates.add('janta_shaman')
+ mobileTemplates.add('janta_soothsayer')
+ mobileTemplates.add('janta_tribesman')
+ mobileTemplates.add('janta_warrior')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('jantas_nw_group_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('jantas_nw_group_1', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/juvenile_krayts_wild_1.py b/scripts/mobiles/dynamicgroups/juvenile_krayts_wild_1.py
new file mode 100644
index 00000000..a65c74cc
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/juvenile_krayts_wild_1.py
@@ -0,0 +1,16 @@
+import sys
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+from java.util import Vector
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('juvenile_canyon_krayt_dragon')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(6)
+ dynamicGroup.setName('juvenile_krayts_wild_1')
+ dynamicGroup.setMaxSpawns(1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('juvenile_krayts_wild_1', dynamicGroup)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dynamicgroups/krayt_dragon_ancient_wild_1.py b/scripts/mobiles/dynamicgroups/krayt_dragon_ancient_wild_1.py
new file mode 100644
index 00000000..ec8ea7a8
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/krayt_dragon_ancient_wild_1.py
@@ -0,0 +1,16 @@
+import sys
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+from java.util import Vector
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('krayt_dragon_ancient')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(1)
+ dynamicGroup.setName('krayt_dragon_ancient_1')
+ dynamicGroup.setMaxSpawns(1)
+ dynamicGroup.setMinSpawnDistance(5)
+ core.spawnService.addDynamicGroup('krayt_dragon_ancient_1', dynamicGroup)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dynamicgroups/kunga_central_group_1.py b/scripts/mobiles/dynamicgroups/kunga_central_group_1.py
new file mode 100644
index 00000000..2c59e7c3
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/kunga_central_group_1.py
@@ -0,0 +1,28 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('kunga_clan_leader')
+ mobileTemplates.add('kunga_clan_primalist')
+ mobileTemplates.add('kunga_harvester')
+ mobileTemplates.add('kunga_herbalist')
+ mobileTemplates.add('kunga_hunter')
+ mobileTemplates.add('kunga_loreweaver')
+ mobileTemplates.add('kunga_rockshaper')
+ mobileTemplates.add('kunga_scout')
+ mobileTemplates.add('kunga_shaman')
+ mobileTemplates.add('kunga_soothsayer')
+ mobileTemplates.add('kunga_tribe_member')
+ mobileTemplates.add('kunga_warrior')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('kunga_central_group_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('kunga_central_group_1', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/mokk_group_1.py b/scripts/mobiles/dynamicgroups/mokk_group_1.py
new file mode 100644
index 00000000..ceb31446
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/mokk_group_1.py
@@ -0,0 +1,28 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('mokk_clan_leader')
+ mobileTemplates.add('mokk_clan_primalist')
+ mobileTemplates.add('mokk_harvester')
+ mobileTemplates.add('mokk_herbalist')
+ mobileTemplates.add('mokk_hunter')
+ mobileTemplates.add('mokk_loreweaver')
+ mobileTemplates.add('mokk_rockshaper')
+ mobileTemplates.add('mokk_scout')
+ mobileTemplates.add('mokk_shaman')
+ mobileTemplates.add('mokk_soothsayer')
+ mobileTemplates.add('mokk_tribesman')
+ mobileTemplates.add('mokk_warrior')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('mokk_group_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('mokk_group_1', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/nightsisters_dyn_1.py b/scripts/mobiles/dynamicgroups/nightsisters_dyn_1.py
new file mode 100644
index 00000000..90504a9b
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/nightsisters_dyn_1.py
@@ -0,0 +1,24 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('nightsister_initiate')
+ mobileTemplates.add('nightsister_outcast')
+ mobileTemplates.add('nightsister_protector')
+ mobileTemplates.add('nightsister_ranger')
+ mobileTemplates.add('nightsister_sentinel')
+ mobileTemplates.add('nightsister_sentry')
+ mobileTemplates.add('nightsister_spell_weaver')
+ mobileTemplates.add('nightsister_stalker')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-5)
+ dynamicGroup.setName('nightsisters_dyn_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(100)
+ core.spawnService.addDynamicGroup('nightsisters_dyn_1', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/piket_longhorn_group_1.py b/scripts/mobiles/dynamicgroups/piket_longhorn_group_1.py
new file mode 100644
index 00000000..6e5da709
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/piket_longhorn_group_1.py
@@ -0,0 +1,18 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('piket_longhorn')
+ mobileTemplates.add('piket_longhorn_female')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('piket_longhorn_group_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('piket_longhorn_group_1', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/piket_plains_walker_group.py b/scripts/mobiles/dynamicgroups/piket_plains_walker_group.py
new file mode 100644
index 00000000..2d6914b7
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/piket_plains_walker_group.py
@@ -0,0 +1,20 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('piket_plains_walker')
+ mobileTemplates.add('piket_plains_walker')
+ mobileTemplates.add('piket_plains_walker')
+ mobileTemplates.add('piket_plains_walker')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('piket_plains_walker_group')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('piket_plains_walker_group', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/quenker_group_south_1.py b/scripts/mobiles/dynamicgroups/quenker_group_south_1.py
new file mode 100644
index 00000000..c7a7382e
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/quenker_group_south_1.py
@@ -0,0 +1,18 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('quenker_ravager')
+ mobileTemplates.add('quenker_relic_reaper')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('quenker_group_south_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('quenker_group_south_1', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/quenker_relic_reaper_group.py b/scripts/mobiles/dynamicgroups/quenker_relic_reaper_group.py
new file mode 100644
index 00000000..ce21e847
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/quenker_relic_reaper_group.py
@@ -0,0 +1,17 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('quenker_relic_reaper')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('quenker_relic_reaper_group')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('quenker_relic_reaper_group', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/smc_dyn_1.py b/scripts/mobiles/dynamicgroups/smc_dyn_1.py
new file mode 100644
index 00000000..ecc20a13
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/smc_dyn_1.py
@@ -0,0 +1,24 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('singing_mountain_clan_sentry')
+ mobileTemplates.add('singing_mtn_clan_dragoon')
+ mobileTemplates.add('singing_mtn_clan_guardian')
+ mobileTemplates.add('singing_mtn_clan_huntress')
+ mobileTemplates.add('singing_mtn_clan_initiate')
+ mobileTemplates.add('singing_mtn_clan_outcast')
+ mobileTemplates.add('singing_mtn_clan_scout')
+ mobileTemplates.add('singing_mtn_clan_slave')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-5)
+ dynamicGroup.setName('smc_dyn_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(60)
+ core.spawnService.addDynamicGroup('smc_dyn_1', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/thune_group_2.py b/scripts/mobiles/dynamicgroups/thune_group_2.py
new file mode 100644
index 00000000..0be9a58f
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/thune_group_2.py
@@ -0,0 +1,19 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('thune')
+ mobileTemplates.add('thune_grassland_guardian')
+ mobileTemplates.add('thune_herd_leader')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('thune_group_2')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('thune_group_2', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/thunes_1.py b/scripts/mobiles/dynamicgroups/thunes_1.py
new file mode 100644
index 00000000..87f32125
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/thunes_1.py
@@ -0,0 +1,19 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('mammoth_thune')
+ mobileTemplates.add('thune')
+ mobileTemplates.add('thune_herd_leader')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('thunes_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('thunes_1', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/tuskens_wild_1.py b/scripts/mobiles/dynamicgroups/tuskens_wild_1.py
new file mode 100644
index 00000000..472747c0
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/tuskens_wild_1.py
@@ -0,0 +1,15 @@
+import sys
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+from java.util import Vector
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('tusken_raider')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setName('tuskens_wild_1')
+ dynamicGroup.setMaxSpawns(20)
+ dynamicGroup.setMinSpawnDistance(25)
+ core.spawnService.addDynamicGroup('tuskens_wild_1', dynamicGroup)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/dynamicgroups/voritor_nw_group_1.py b/scripts/mobiles/dynamicgroups/voritor_nw_group_1.py
new file mode 100644
index 00000000..6e2e927c
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/voritor_nw_group_1.py
@@ -0,0 +1,17 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('voritor_dasher')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('graul_mauler_nw_group_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('voritor_nw_group_1', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/voritors_east_group_1.py b/scripts/mobiles/dynamicgroups/voritors_east_group_1.py
new file mode 100644
index 00000000..db34fc32
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/voritors_east_group_1.py
@@ -0,0 +1,21 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('horned_voritor_jungle_lizard')
+ mobileTemplates.add('vexed_voritor_lizard')
+ mobileTemplates.add('voritor_dasher')
+ mobileTemplates.add('voritor_lizard')
+ mobileTemplates.add('spiked_slasher')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(-3)
+ dynamicGroup.setName('voritors_east_group_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('voritors_east_group_1', dynamicGroup)
+ return
diff --git a/scripts/mobiles/dynamicgroups/voritors_wild_1.py b/scripts/mobiles/dynamicgroups/voritors_wild_1.py
new file mode 100644
index 00000000..7bd480b2
--- /dev/null
+++ b/scripts/mobiles/dynamicgroups/voritors_wild_1.py
@@ -0,0 +1,18 @@
+import sys
+from services.spawn import DynamicSpawnGroup
+from services.spawn import MobileTemplate
+from java.util import Vector
+
+def addDynamicGroup(core):
+ dynamicGroup = DynamicSpawnGroup()
+ mobileTemplates = Vector()
+ mobileTemplates.add('slinking_voritor_hunter')
+ mobileTemplates.add('horned_voritor_jungle_lizard')
+ dynamicGroup.setMobiles(mobileTemplates)
+ dynamicGroup.setGroupMembersNumber(1)
+ dynamicGroup.setName('voritors_wild_1')
+ dynamicGroup.setMaxSpawns(-1)
+ dynamicGroup.setGroupMembersNumber(-5)
+ dynamicGroup.setMinSpawnDistance(150)
+ core.spawnService.addDynamicGroup('voritors_wild_1', dynamicGroup)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/aged_lantern_bird.py b/scripts/mobiles/endor/aged_lantern_bird.py
new file mode 100644
index 00000000..b0245822
--- /dev/null
+++ b/scripts/mobiles/endor/aged_lantern_bird.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('aged_lantern_bird')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(41)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(46)
+ mobileTemplate.setSocialGroup("lantern")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_lantern.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('aged_lantern_bird', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/arachne_hatchling.py b/scripts/mobiles/endor/arachne_hatchling.py
new file mode 100644
index 00000000..998d667a
--- /dev/null
+++ b/scripts/mobiles/endor/arachne_hatchling.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('arachne_hatchling')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(1)
+ mobileTemplate.setSocialGroup("arachne")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_arachne.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('arachne_hatchling', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/arachne_queen.py b/scripts/mobiles/endor/arachne_queen.py
new file mode 100644
index 00000000..e255f9e4
--- /dev/null
+++ b/scripts/mobiles/endor/arachne_queen.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('queen_arachne')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(60)
+ mobileTemplate.setSocialGroup("arachne")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_arachne.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('arachne_queen', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/arachne_webmaster.py b/scripts/mobiles/endor/arachne_webmaster.py
new file mode 100644
index 00000000..d0539151
--- /dev/null
+++ b/scripts/mobiles/endor/arachne_webmaster.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('arachne_webmaster')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(30)
+ mobileTemplate.setSocialGroup("arachne")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_arachne.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('arachne_webmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/arachne_widow.py b/scripts/mobiles/endor/arachne_widow.py
new file mode 100644
index 00000000..e7f858bf
--- /dev/null
+++ b/scripts/mobiles/endor/arachne_widow.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('arachne_widow')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(30)
+ mobileTemplate.setSocialGroup("arachne")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_arachne.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('arachne_widow', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/archaic_gondula_ritualist.py b/scripts/mobiles/endor/archaic_gondula_ritualist.py
new file mode 100644
index 00000000..4d2b3981
--- /dev/null
+++ b/scripts/mobiles/endor/archaic_gondula_ritualist.py
@@ -0,0 +1,72 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('archaid_gondula_ritualist')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('archaic_gondula_ritualist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/archaic_jinda_ritualist.py b/scripts/mobiles/endor/archaic_jinda_ritualist.py
new file mode 100644
index 00000000..d432d38d
--- /dev/null
+++ b/scripts/mobiles/endor/archaic_jinda_ritualist.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('archaic_jinda_ritualist')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('archaic_jinda_ritualist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/archaic_panshee_ritualist.py b/scripts/mobiles/endor/archaic_panshee_ritualist.py
new file mode 100644
index 00000000..6d8be713
--- /dev/null
+++ b/scripts/mobiles/endor/archaic_panshee_ritualist.py
@@ -0,0 +1,71 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('archaic_panshee_ritualist')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('archaic_panshee_ritualist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bark_mite_burrower.py b/scripts/mobiles/endor/bark_mite_burrower.py
new file mode 100644
index 00000000..ae677c2a
--- /dev/null
+++ b/scripts/mobiles/endor/bark_mite_burrower.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bark_mite_burrower')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("bark mite")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bark_mite_burrower', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bark_mite_burrower_collector.py b/scripts/mobiles/endor/bark_mite_burrower_collector.py
new file mode 100644
index 00000000..aa66d47c
--- /dev/null
+++ b/scripts/mobiles/endor/bark_mite_burrower_collector.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bark_mite_burrower')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("bark mite")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bark_mite_burrower_collector', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bark_mite_burrower_drone.py b/scripts/mobiles/endor/bark_mite_burrower_drone.py
new file mode 100644
index 00000000..44084b2c
--- /dev/null
+++ b/scripts/mobiles/endor/bark_mite_burrower_drone.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bark_mite_burrower_drone')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("bark mite")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bark_mite_burrower_drone', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bark_mite_burrower_swarmling.py b/scripts/mobiles/endor/bark_mite_burrower_swarmling.py
new file mode 100644
index 00000000..3beb10f2
--- /dev/null
+++ b/scripts/mobiles/endor/bark_mite_burrower_swarmling.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bark_mite_burrower_swarmling')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.7)
+ mobileTemplate.setSocialGroup("bark mite")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bark_mite_burrower_swarmling', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bark_mite_burrower_worker.py b/scripts/mobiles/endor/bark_mite_burrower_worker.py
new file mode 100644
index 00000000..58eebafb
--- /dev/null
+++ b/scripts/mobiles/endor/bark_mite_burrower_worker.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bark_mite_burrower_worker')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("bark mite")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bark_mite_burrower_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bedraggled_korga_laborer.py b/scripts/mobiles/endor/bedraggled_korga_laborer.py
new file mode 100644
index 00000000..525c5c62
--- /dev/null
+++ b/scripts/mobiles/endor/bedraggled_korga_laborer.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bedraggled_korga_laborer')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('bedraggled_korga_laborer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bedraggled_pubam_laborer.py b/scripts/mobiles/endor/bedraggled_pubam_laborer.py
new file mode 100644
index 00000000..bf574598
--- /dev/null
+++ b/scripts/mobiles/endor/bedraggled_pubam_laborer.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bedraggled_pubam_laborer')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('bedraggled_pubam_laborer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/beguilding_korga_scout.py b/scripts/mobiles/endor/beguilding_korga_scout.py
new file mode 100644
index 00000000..54990abf
--- /dev/null
+++ b/scripts/mobiles/endor/beguilding_korga_scout.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('beguiling_korga_scout')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('beguiling_korga_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/beguiling_donkuwah_scout.py b/scripts/mobiles/endor/beguiling_donkuwah_scout.py
new file mode 100644
index 00000000..18f80d28
--- /dev/null
+++ b/scripts/mobiles/endor/beguiling_donkuwah_scout.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('beguiling_donkuwah_scout')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('beguiling_donkuwah_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/beguiling_pubam_scout.py b/scripts/mobiles/endor/beguiling_pubam_scout.py
new file mode 100644
index 00000000..197ae8c4
--- /dev/null
+++ b/scripts/mobiles/endor/beguiling_pubam_scout.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('beguiling_pubam_scout')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('beguiling_pubam_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/berserk_marauder.py b/scripts/mobiles/endor/berserk_marauder.py
new file mode 100644
index 00000000..f58a0b69
--- /dev/null
+++ b/scripts/mobiles/endor/berserk_marauder.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('berserk_marauder')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("marauder")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_marauder_male_01.iff')
+ templates.add('object/mobile/shared_marauder_male_02.iff')
+ templates.add('object/mobile/shared_marauder_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_polearm_vibro_axe.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('berserk_marauder', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bewitching_donkuwah_shaman.py b/scripts/mobiles/endor/bewitching_donkuwah_shaman.py
new file mode 100644
index 00000000..43d2ed95
--- /dev/null
+++ b/scripts/mobiles/endor/bewitching_donkuwah_shaman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bewitching_donkuwah_shaman')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('beitching_donkuwah_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bewitching_korga_dark_shaman.py b/scripts/mobiles/endor/bewitching_korga_dark_shaman.py
new file mode 100644
index 00000000..85382e22
--- /dev/null
+++ b/scripts/mobiles/endor/bewitching_korga_dark_shaman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bewitching_korga_dark_shaman')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('beitching_korga_dark_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bewitching_pubam_dark_shaman.py b/scripts/mobiles/endor/bewitching_pubam_dark_shaman.py
new file mode 100644
index 00000000..bab0d5ad
--- /dev/null
+++ b/scripts/mobiles/endor/bewitching_pubam_dark_shaman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bewitching_pubam_dark_shaman')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('beitching_pubam_dark_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/black_sun_assassin.py b/scripts/mobiles/endor/black_sun_assassin.py
new file mode 100644
index 00000000..14ce26a2
--- /dev/null
+++ b/scripts/mobiles/endor/black_sun_assassin.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eow_mand_bunker_blksun_assassin')
+ mobileTemplate.setLevel(88)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("death watch")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_black_sun_assassin.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('black_sun_assassin', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/black_sun_guard.py b/scripts/mobiles/endor/black_sun_guard.py
new file mode 100644
index 00000000..fdc8999e
--- /dev/null
+++ b/scripts/mobiles/endor/black_sun_guard.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eow_mand_bunker_blksun_guard')
+ mobileTemplate.setLevel(88)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("death watch")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_black_sun_guard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('black_sun_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/black_sun_thug.py b/scripts/mobiles/endor/black_sun_thug.py
new file mode 100644
index 00000000..21bdb8f4
--- /dev/null
+++ b/scripts/mobiles/endor/black_sun_thug.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eow_mand_bunker_blksun_thug')
+ mobileTemplate.setLevel(86)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("death watch")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_black_sun_thug.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('black_sun_thug', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/blood_drenched_merek_king.py b/scripts/mobiles/endor/blood_drenched_merek_king.py
new file mode 100644
index 00000000..8e9f8d68
--- /dev/null
+++ b/scripts/mobiles/endor/blood_drenched_merek_king.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('blood_drenched_merek_king')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(55)
+ mobileTemplate.setSocialGroup("merek")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_merek.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blood_drenched_merek_king', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/blood_frenzied_boar_wolf.py b/scripts/mobiles/endor/blood_frenzied_boar_wolf.py
new file mode 100644
index 00000000..0cab5637
--- /dev/null
+++ b/scripts/mobiles/endor/blood_frenzied_boar_wolf.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('blood_frenzied_boar_wolf')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("boar wolf")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_boar_wolf.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blood_frenzied_boar_wolf', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/blood_stained_merek.py b/scripts/mobiles/endor/blood_stained_merek.py
new file mode 100644
index 00000000..936e35fd
--- /dev/null
+++ b/scripts/mobiles/endor/blood_stained_merek.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('blood_stained_merek')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(75)
+ mobileTemplate.setSocialGroup("merek")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_merek.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blood_stained_merek', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bloodseeker_mite_drone.py b/scripts/mobiles/endor/bloodseeker_mite_drone.py
new file mode 100644
index 00000000..8b1cc815
--- /dev/null
+++ b/scripts/mobiles/endor/bloodseeker_mite_drone.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bloodseeker_mite_drone')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("bloodseeker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bloodseeker.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bloodseeker_mite_drone', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bloodseeker_mite_queen.py b/scripts/mobiles/endor/bloodseeker_mite_queen.py
new file mode 100644
index 00000000..ee9dcbe5
--- /dev/null
+++ b/scripts/mobiles/endor/bloodseeker_mite_queen.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bloodseeker_mite_queen')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setSocialGroup("bloodseeker")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bloodseeker.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bloodseeker_mite_queen', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/blooming_jax.py b/scripts/mobiles/endor/blooming_jax.py
new file mode 100644
index 00000000..942fa6a7
--- /dev/null
+++ b/scripts/mobiles/endor/blooming_jax.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('blooming_jax')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setSocialGroup("jax")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jax.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blooming_jax', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/blurrg.py b/scripts/mobiles/endor/blurrg.py
new file mode 100644
index 00000000..791d992b
--- /dev/null
+++ b/scripts/mobiles/endor/blurrg.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('blurrg')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("blurrg")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_blurrg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blurrg', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/blurrg_hunter.py b/scripts/mobiles/endor/blurrg_hunter.py
new file mode 100644
index 00000000..cba89a23
--- /dev/null
+++ b/scripts/mobiles/endor/blurrg_hunter.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('blurrg_hunter')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("blurrg")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_blurrg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blurrg_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/blurrg_pup.py b/scripts/mobiles/endor/blurrg_pup.py
new file mode 100644
index 00000000..e4be7a4d
--- /dev/null
+++ b/scripts/mobiles/endor/blurrg_pup.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('blurrg_pup')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setSocialGroup("blurrg")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_blurrg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blurrg_pup', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/blurrg_raptor.py b/scripts/mobiles/endor/blurrg_raptor.py
new file mode 100644
index 00000000..3049bce3
--- /dev/null
+++ b/scripts/mobiles/endor/blurrg_raptor.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('blurrg_raptor')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("blurrg")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_blurrg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blurrg_raptor', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/blurrg_sand_crawler.py b/scripts/mobiles/endor/blurrg_sand_crawler.py
new file mode 100644
index 00000000..18bdcc45
--- /dev/null
+++ b/scripts/mobiles/endor/blurrg_sand_crawler.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('blurrg_sand_crawler')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("blurrg")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_blurrg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blurrg_sand_crawler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/blurrg_tracker.py b/scripts/mobiles/endor/blurrg_tracker.py
new file mode 100644
index 00000000..7bf9d70e
--- /dev/null
+++ b/scripts/mobiles/endor/blurrg_tracker.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('blurrg_tracker')
+ mobileTemplate.setLevel(54)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("blurrg")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_blurrg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blurrg_tracker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/blushing_jax.py b/scripts/mobiles/endor/blushing_jax.py
new file mode 100644
index 00000000..5d7d64a5
--- /dev/null
+++ b/scripts/mobiles/endor/blushing_jax.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('blushing_jax')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setSocialGroup("jax")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jax.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blushing_jax', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/boar_wolf.py b/scripts/mobiles/endor/boar_wolf.py
new file mode 100644
index 00000000..ef24834a
--- /dev/null
+++ b/scripts/mobiles/endor/boar_wolf.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('boar_wolf')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("boar wolf")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_boar_wolf.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('boar_wolf', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/boar_wolf_cub.py b/scripts/mobiles/endor/boar_wolf_cub.py
new file mode 100644
index 00000000..b3288cec
--- /dev/null
+++ b/scripts/mobiles/endor/boar_wolf_cub.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('boar_wolf_cub')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setSocialGroup("boar wolf")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_boar_wolf.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('boar_wolf_cub', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/boar_wolf_ravager.py b/scripts/mobiles/endor/boar_wolf_ravager.py
new file mode 100644
index 00000000..e7dce369
--- /dev/null
+++ b/scripts/mobiles/endor/boar_wolf_ravager.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('boar_wolf_ravager')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("boar wolf")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_boar_wolf.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('boar_wolf_ravager', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bolle_bol_bark_biter.py b/scripts/mobiles/endor/bolle_bol_bark_biter.py
new file mode 100644
index 00000000..9c524a65
--- /dev/null
+++ b/scripts/mobiles/endor/bolle_bol_bark_biter.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bolle_bol_bark_biter')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(300)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("bolle bol")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bolle_bol.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bolle_bol_bark_biter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bolle_bol_calf.py b/scripts/mobiles/endor/bolle_bol_calf.py
new file mode 100644
index 00000000..54427381
--- /dev/null
+++ b/scripts/mobiles/endor/bolle_bol_calf.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bolle_bol_calf')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(300)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("bolle bol")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bolle_bol.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bolle_bol_calf', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bolle_bol_colt.py b/scripts/mobiles/endor/bolle_bol_colt.py
new file mode 100644
index 00000000..249e29ce
--- /dev/null
+++ b/scripts/mobiles/endor/bolle_bol_colt.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bolle_bol_bolt')
+ mobileTemplate.setLevel(57)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(300)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("bolle bol")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bolle_bol.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bolle_bol_colt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bolle_bol_female.py b/scripts/mobiles/endor/bolle_bol_female.py
new file mode 100644
index 00000000..f954d854
--- /dev/null
+++ b/scripts/mobiles/endor/bolle_bol_female.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bolle_bol_female')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(300)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("bolle bol")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bolle_bol.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bolle_bol_female', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bolle_bol_herd_leader.py b/scripts/mobiles/endor/bolle_bol_herd_leader.py
new file mode 100644
index 00000000..49519ff6
--- /dev/null
+++ b/scripts/mobiles/endor/bolle_bol_herd_leader.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bolle_bol_herd_leader')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(300)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("bolle bol")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bolle_bol.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bolle_bol_herd_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bolle_bol_male.py b/scripts/mobiles/endor/bolle_bol_male.py
new file mode 100644
index 00000000..fc1c59b5
--- /dev/null
+++ b/scripts/mobiles/endor/bolle_bol_male.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bolle_bol_male')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(300)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("bolle bol")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bolle_bol.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bolle_bol_male', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bolle_bol_stomper.py b/scripts/mobiles/endor/bolle_bol_stomper.py
new file mode 100644
index 00000000..2276e31c
--- /dev/null
+++ b/scripts/mobiles/endor/bolle_bol_stomper.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bolle_bol_stomper')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(300)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("bolle bol")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bolle_bol.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bolle_bol_stomper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bordok_ancient.py b/scripts/mobiles/endor/bordok_ancient.py
new file mode 100644
index 00000000..6cf931b6
--- /dev/null
+++ b/scripts/mobiles/endor/bordok_ancient.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bordok_ancient')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("bordok")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bordok.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bordok_ancient', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bordok_foal.py b/scripts/mobiles/endor/bordok_foal.py
new file mode 100644
index 00000000..2df76fe4
--- /dev/null
+++ b/scripts/mobiles/endor/bordok_foal.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bordok_foal')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setSocialGroup("bordok")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bordok.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bordok_foal', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bordok_herd_master.py b/scripts/mobiles/endor/bordok_herd_master.py
new file mode 100644
index 00000000..d2580402
--- /dev/null
+++ b/scripts/mobiles/endor/bordok_herd_master.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bordok_herd_master')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setSocialGroup("bordok")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bordok.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bordok_herd_master', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bordok_mare.py b/scripts/mobiles/endor/bordok_mare.py
new file mode 100644
index 00000000..a9fd9e2e
--- /dev/null
+++ b/scripts/mobiles/endor/bordok_mare.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bordok_mare')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("bordok")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bordok.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bordok_mare', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/bounding_jax.py b/scripts/mobiles/endor/bounding_jax.py
new file mode 100644
index 00000000..6655fe84
--- /dev/null
+++ b/scripts/mobiles/endor/bounding_jax.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bounding_jax')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setSocialGroup("jax")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jax.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bounding_jax', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/competent_gondula_ritualist.py b/scripts/mobiles/endor/competent_gondula_ritualist.py
new file mode 100644
index 00000000..1e1ae82d
--- /dev/null
+++ b/scripts/mobiles/endor/competent_gondula_ritualist.py
@@ -0,0 +1,71 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('competent_gondula_ritualist')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('competent_gondula_ritualist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/competent_jinda_ritualist.py b/scripts/mobiles/endor/competent_jinda_ritualist.py
new file mode 100644
index 00000000..0e665bcb
--- /dev/null
+++ b/scripts/mobiles/endor/competent_jinda_ritualist.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('competent_jinda_ritualist')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('competent_jinda_ritualist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/competent_panshee_ritualist.py b/scripts/mobiles/endor/competent_panshee_ritualist.py
new file mode 100644
index 00000000..4bb444fd
--- /dev/null
+++ b/scripts/mobiles/endor/competent_panshee_ritualist.py
@@ -0,0 +1,70 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('competent_panshee_ritualist')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('competent_panshee_ritualist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/cowardly_gurreck.py b/scripts/mobiles/endor/cowardly_gurreck.py
new file mode 100644
index 00000000..c7c7422f
--- /dev/null
+++ b/scripts/mobiles/endor/cowardly_gurreck.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('cowardly_gurreck')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("gurreck")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gurreck.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('cowardly_gurreck', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/crafty_donkuwah_scout.py b/scripts/mobiles/endor/crafty_donkuwah_scout.py
new file mode 100644
index 00000000..19a54232
--- /dev/null
+++ b/scripts/mobiles/endor/crafty_donkuwah_scout.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crafty_donkuwah_scout')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('crafty_donkuwah_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/crafty_korga_scout.py b/scripts/mobiles/endor/crafty_korga_scout.py
new file mode 100644
index 00000000..8c7693e5
--- /dev/null
+++ b/scripts/mobiles/endor/crafty_korga_scout.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crafty_korga_scout')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('crafty_korga_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/crafty_pubam_scout.py b/scripts/mobiles/endor/crafty_pubam_scout.py
new file mode 100644
index 00000000..28ac20b0
--- /dev/null
+++ b/scripts/mobiles/endor/crafty_pubam_scout.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crafty_pubam_scout')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('crafty_pubam_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/crazed_gurreck.py b/scripts/mobiles/endor/crazed_gurreck.py
new file mode 100644
index 00000000..25681b8f
--- /dev/null
+++ b/scripts/mobiles/endor/crazed_gurreck.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crazed_gurreck')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("gurreck")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gurreck.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gurreck', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/crimson_blurrg.py b/scripts/mobiles/endor/crimson_blurrg.py
new file mode 100644
index 00000000..4658189c
--- /dev/null
+++ b/scripts/mobiles/endor/crimson_blurrg.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crimson_blurrg')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("blurrg")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_blurrg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('crimson_blurrg', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/delirious_merek_avenger.py b/scripts/mobiles/endor/delirious_merek_avenger.py
new file mode 100644
index 00000000..28f5c78e
--- /dev/null
+++ b/scripts/mobiles/endor/delirious_merek_avenger.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('delirious_merek_avenger')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(45)
+ mobileTemplate.setSocialGroup("merek")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_merek.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('delirious_merek_avenger', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/deranged_mantigrue.py b/scripts/mobiles/endor/deranged_mantigrue.py
new file mode 100644
index 00000000..26c25be3
--- /dev/null
+++ b/scripts/mobiles/endor/deranged_mantigrue.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('deranged_mantigrue')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("mantigrue")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_condor_dragon.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('deranged_mantigrue', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/deranged_ravisher.py b/scripts/mobiles/endor/deranged_ravisher.py
new file mode 100644
index 00000000..a11c2b47
--- /dev/null
+++ b/scripts/mobiles/endor/deranged_ravisher.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('squill_deranged_ravisher')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("squill")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_squill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('deranged_ravisher', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/desert_gurreck_charger.py b/scripts/mobiles/endor/desert_gurreck_charger.py
new file mode 100644
index 00000000..02afdbec
--- /dev/null
+++ b/scripts/mobiles/endor/desert_gurreck_charger.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('desert_gurreck_charger')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("gurreck")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gurreck.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('desert_gurreck_charger', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/desert_scavenger.py b/scripts/mobiles/endor/desert_scavenger.py
new file mode 100644
index 00000000..74ec2356
--- /dev/null
+++ b/scripts/mobiles/endor/desert_scavenger.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('borgle_desert_runner')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setSocialGroup("borgle")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_borgle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('desert_scavenger', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/diminutive_bounding_jax.py b/scripts/mobiles/endor/diminutive_bounding_jax.py
new file mode 100644
index 00000000..fe7fd2c9
--- /dev/null
+++ b/scripts/mobiles/endor/diminutive_bounding_jax.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jax_bounding_dwarf')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setSocialGroup("jax")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jax.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('diminutive_bounding_jax', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/diseased_blurrg.py b/scripts/mobiles/endor/diseased_blurrg.py
new file mode 100644
index 00000000..8ed0af4a
--- /dev/null
+++ b/scripts/mobiles/endor/diseased_blurrg.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('diseased_blurrg')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("self")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_blurrg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('diseased_blurrg', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/domesticated_blurrg.py b/scripts/mobiles/endor/domesticated_blurrg.py
new file mode 100644
index 00000000..387efca4
--- /dev/null
+++ b/scripts/mobiles/endor/domesticated_blurrg.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('domesticated_blurrg')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.8)
+ mobileTemplate.setSocialGroup("self")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_blurrg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+
+ core.spawnService.addMobileTemplate('domesticated_blurrg', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/domesticated_merek.py b/scripts/mobiles/endor/domesticated_merek.py
new file mode 100644
index 00000000..ef5ca26b
--- /dev/null
+++ b/scripts/mobiles/endor/domesticated_merek.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('domesticated_merek')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.8)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(45)
+ mobileTemplate.setSocialGroup("self")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_merek.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('domesticated_merek', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/donkuwah_battlelord.py b/scripts/mobiles/endor/donkuwah_battlelord.py
new file mode 100644
index 00000000..9e80467b
--- /dev/null
+++ b/scripts/mobiles/endor/donkuwah_battlelord.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('donkuwah_battlelord')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('donkuwah_battlelord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/donkuwah_chieftan.py b/scripts/mobiles/endor/donkuwah_chieftan.py
new file mode 100644
index 00000000..f6121fac
--- /dev/null
+++ b/scripts/mobiles/endor/donkuwah_chieftan.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('donkuwah_chieftan')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('donkuwah_chieftan', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/donkuwah_cub.py b/scripts/mobiles/endor/donkuwah_cub.py
new file mode 100644
index 00000000..0793e545
--- /dev/null
+++ b/scripts/mobiles/endor/donkuwah_cub.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('donkuwah_cub')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('donkuwah_cub', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/donkuwah_laborer.py b/scripts/mobiles/endor/donkuwah_laborer.py
new file mode 100644
index 00000000..414675c9
--- /dev/null
+++ b/scripts/mobiles/endor/donkuwah_laborer.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('donkuwah_laborer')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('donkuwah_laborer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/donkuwah_scout.py b/scripts/mobiles/endor/donkuwah_scout.py
new file mode 100644
index 00000000..12af41ef
--- /dev/null
+++ b/scripts/mobiles/endor/donkuwah_scout.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('donkuwah_scout')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('donkuwah_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/donkuwah_shaman.py b/scripts/mobiles/endor/donkuwah_shaman.py
new file mode 100644
index 00000000..0915ecc8
--- /dev/null
+++ b/scripts/mobiles/endor/donkuwah_shaman.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('donkuwah_shaman')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('donkuwah_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/donkuwah_spiritmaster.py b/scripts/mobiles/endor/donkuwah_spiritmaster.py
new file mode 100644
index 00000000..38054cb5
--- /dev/null
+++ b/scripts/mobiles/endor/donkuwah_spiritmaster.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('donkuwah_spiritmaster')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('donkuwah_spiritmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/donkuwah_tribesman.py b/scripts/mobiles/endor/donkuwah_tribesman.py
new file mode 100644
index 00000000..46a56efd
--- /dev/null
+++ b/scripts/mobiles/endor/donkuwah_tribesman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('donkuwah_tribesman')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('donkuwah_tribesman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/dulok_outcast.py b/scripts/mobiles/endor/dulok_outcast.py
new file mode 100644
index 00000000..12ca3972
--- /dev/null
+++ b/scripts/mobiles/endor/dulok_outcast.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dulok_outcast')
+ mobileTemplate.setLevel(72)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('dulok outpost')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('dulok_outcast', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/dulok_outcast_raider.py b/scripts/mobiles/endor/dulok_outcast_raider.py
new file mode 100644
index 00000000..b8c794a4
--- /dev/null
+++ b/scripts/mobiles/endor/dulok_outcast_raider.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dulok_outcast_raider')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('dulok outpost')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('dulok_outcast_raider', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/eerie_donkuwah_spiritmaster.py b/scripts/mobiles/endor/eerie_donkuwah_spiritmaster.py
new file mode 100644
index 00000000..8d11a81c
--- /dev/null
+++ b/scripts/mobiles/endor/eerie_donkuwah_spiritmaster.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eerie_donkuwah_spiritmaster')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('eerie_donkuwah_spiritmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/eerie_korga_spiritmaster.py b/scripts/mobiles/endor/eerie_korga_spiritmaster.py
new file mode 100644
index 00000000..e058170a
--- /dev/null
+++ b/scripts/mobiles/endor/eerie_korga_spiritmaster.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eerie_korga_spiritmaster')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('eerie_korga_spiritmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/eerie_pubam_spiritmaster.py b/scripts/mobiles/endor/eerie_pubam_spiritmaster.py
new file mode 100644
index 00000000..53a236ab
--- /dev/null
+++ b/scripts/mobiles/endor/eerie_pubam_spiritmaster.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eerie_pubam_spiritmaster')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('eerie_pubam_spiritmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/elder_hanadak_matriarch.py b/scripts/mobiles/endor/elder_hanadak_matriarch.py
new file mode 100644
index 00000000..1e76fbd1
--- /dev/null
+++ b/scripts/mobiles/endor/elder_hanadak_matriarch.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elder_hanadak_matriarch')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(35)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(35)
+ mobileTemplate.setSocialGroup("hanadak")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_hanadak.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elder_hanadak_matriarch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/elder_squall.py b/scripts/mobiles/endor/elder_squall.py
new file mode 100644
index 00000000..90784af3
--- /dev/null
+++ b/scripts/mobiles/endor/elder_squall.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elder_squall')
+ mobileTemplate.setLevel(72)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(12)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(8)
+ mobileTemplate.setSocialGroup("squall")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_squall.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elder_squall', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/enraged_donkuwah.py b/scripts/mobiles/endor/enraged_donkuwah.py
new file mode 100644
index 00000000..38330b98
--- /dev/null
+++ b/scripts/mobiles/endor/enraged_donkuwah.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('enraged_donkuwah')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('enraged_donkuwah', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/enraged_korga.py b/scripts/mobiles/endor/enraged_korga.py
new file mode 100644
index 00000000..4a1230aa
--- /dev/null
+++ b/scripts/mobiles/endor/enraged_korga.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('enraged_korga')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('enraged_korga', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/enraged_pubam.py b/scripts/mobiles/endor/enraged_pubam.py
new file mode 100644
index 00000000..99cf03ea
--- /dev/null
+++ b/scripts/mobiles/endor/enraged_pubam.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('enraged_pubam')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('enraged_pubam', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/erratic_swirl_prong.py b/scripts/mobiles/endor/erratic_swirl_prong.py
new file mode 100644
index 00000000..5fa40517
--- /dev/null
+++ b/scripts/mobiles/endor/erratic_swirl_prong.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('erratic_swirl_prong')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("swirl prong")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_swirl_prong.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('erratic_swirl_prong', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/ewok_outcast.py b/scripts/mobiles/endor/ewok_outcast.py
new file mode 100644
index 00000000..28f721c5
--- /dev/null
+++ b/scripts/mobiles/endor/ewok_outcast.py
@@ -0,0 +1,70 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ewok_outcast')
+ mobileTemplate.setLevel(72)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('ewok outcast')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_base_ranged_weapon.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('ewok_outcast', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/ewok_outcast_raider.py b/scripts/mobiles/endor/ewok_outcast_raider.py
new file mode 100644
index 00000000..1b8812ee
--- /dev/null
+++ b/scripts/mobiles/endor/ewok_outcast_raider.py
@@ -0,0 +1,70 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ewok_outcast_raider')
+ mobileTemplate.setLevel(73)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('ewok outcast')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_base_ranged_weapon.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('ewok_outcast_raider', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/feral_marauder.py b/scripts/mobiles/endor/feral_marauder.py
new file mode 100644
index 00000000..46722d05
--- /dev/null
+++ b/scripts/mobiles/endor/feral_marauder.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('feral_marauder')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("marauder")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_marauder_male_01.iff')
+ templates.add('object/mobile/shared_marauder_male_02.iff')
+ templates.add('object/mobile/shared_marauder_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('feral_marauder', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/festering_squill.py b/scripts/mobiles/endor/festering_squill.py
new file mode 100644
index 00000000..2b90129c
--- /dev/null
+++ b/scripts/mobiles/endor/festering_squill.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('festering_squill')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("squill")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_squill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('festering_squill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/fierce_borgle.py b/scripts/mobiles/endor/fierce_borgle.py
new file mode 100644
index 00000000..f57174d8
--- /dev/null
+++ b/scripts/mobiles/endor/fierce_borgle.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fierce_borgle')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setSocialGroup("borgle")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_borgle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('fierce_borgle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/foul_donkuwah_laborer.py b/scripts/mobiles/endor/foul_donkuwah_laborer.py
new file mode 100644
index 00000000..a00d514b
--- /dev/null
+++ b/scripts/mobiles/endor/foul_donkuwah_laborer.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('foul_donkuwah_laborer')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('foul_donkuwah_laborer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/foul_korga_laborer.py b/scripts/mobiles/endor/foul_korga_laborer.py
new file mode 100644
index 00000000..c72a1d21
--- /dev/null
+++ b/scripts/mobiles/endor/foul_korga_laborer.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('foul_korga_laborer')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('foul_korga_laborer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/foul_pubam_laborer.py b/scripts/mobiles/endor/foul_pubam_laborer.py
new file mode 100644
index 00000000..0af2e911
--- /dev/null
+++ b/scripts/mobiles/endor/foul_pubam_laborer.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('foul_pubam_laborer')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('foul_pubam_laborer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/frenzied_donkuwah.py b/scripts/mobiles/endor/frenzied_donkuwah.py
new file mode 100644
index 00000000..b87bc001
--- /dev/null
+++ b/scripts/mobiles/endor/frenzied_donkuwah.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('frenzied_donkuwah')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('frenzied_donkuwah', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/frenzied_korga.py b/scripts/mobiles/endor/frenzied_korga.py
new file mode 100644
index 00000000..aa8c93c5
--- /dev/null
+++ b/scripts/mobiles/endor/frenzied_korga.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('frenzied_korga')
+ mobileTemplate.setLevel(75)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('frenzied_korga', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/frenzied_marauder.py b/scripts/mobiles/endor/frenzied_marauder.py
new file mode 100644
index 00000000..a577e756
--- /dev/null
+++ b/scripts/mobiles/endor/frenzied_marauder.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('frenzied_marauder')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("marauder")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_marauder_male_01.iff')
+ templates.add('object/mobile/shared_marauder_male_02.iff')
+ templates.add('object/mobile/shared_marauder_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('frenzied_marauder', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/frenzied_pubam.py b/scripts/mobiles/endor/frenzied_pubam.py
new file mode 100644
index 00000000..4c0aeeb6
--- /dev/null
+++ b/scripts/mobiles/endor/frenzied_pubam.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('frenzied_pubam')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('frenzied_pubam', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gifted_gondula_shaman.py b/scripts/mobiles/endor/gifted_gondula_shaman.py
new file mode 100644
index 00000000..f69e3769
--- /dev/null
+++ b/scripts/mobiles/endor/gifted_gondula_shaman.py
@@ -0,0 +1,72 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gifted_gondula_shaman')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gifted_gondula_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gifted_jinda_shaman.py b/scripts/mobiles/endor/gifted_jinda_shaman.py
new file mode 100644
index 00000000..45207a4c
--- /dev/null
+++ b/scripts/mobiles/endor/gifted_jinda_shaman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gifted_jinda_shaman')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gifted_jinda_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gifted_panshee_shaman.py b/scripts/mobiles/endor/gifted_panshee_shaman.py
new file mode 100644
index 00000000..7078622d
--- /dev/null
+++ b/scripts/mobiles/endor/gifted_panshee_shaman.py
@@ -0,0 +1,71 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gifted_panshee_shaman')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gifted_panshee_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gleaming_lantern_bird.py b/scripts/mobiles/endor/gleaming_lantern_bird.py
new file mode 100644
index 00000000..56d8a363
--- /dev/null
+++ b/scripts/mobiles/endor/gleaming_lantern_bird.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gleaming_lantern_bird')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(41)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(46)
+ mobileTemplate.setSocialGroup("lantern")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_lantern_bird.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gleaming_lantern_bird', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gnarled_donkuwah_spiritmaster.py b/scripts/mobiles/endor/gnarled_donkuwah_spiritmaster.py
new file mode 100644
index 00000000..1ebfe172
--- /dev/null
+++ b/scripts/mobiles/endor/gnarled_donkuwah_spiritmaster.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gnarled_donkuwah_spiritmaster')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gnarled_donkuwah_spiritmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gnarled_korga_spiritmaster.py b/scripts/mobiles/endor/gnarled_korga_spiritmaster.py
new file mode 100644
index 00000000..b78e3bf4
--- /dev/null
+++ b/scripts/mobiles/endor/gnarled_korga_spiritmaster.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gnarled_korga_spiritmaster')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gnarled_korga_spiritmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gnarled_pubam_spiritmaster.py b/scripts/mobiles/endor/gnarled_pubam_spiritmaster.py
new file mode 100644
index 00000000..e915bb47
--- /dev/null
+++ b/scripts/mobiles/endor/gnarled_pubam_spiritmaster.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gnarled_pubam_spiritmaster')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gnarled_pubam_spiritmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gondula_chief.py b/scripts/mobiles/endor/gondula_chief.py
new file mode 100644
index 00000000..043c77da
--- /dev/null
+++ b/scripts/mobiles/endor/gondula_chief.py
@@ -0,0 +1,71 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gondula_chief')
+ mobileTemplate.setLevel(81)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gondula_chief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gondula_cub.py b/scripts/mobiles/endor/gondula_cub.py
new file mode 100644
index 00000000..24dcf5dd
--- /dev/null
+++ b/scripts/mobiles/endor/gondula_cub.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gondula_cub')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gondula_cub', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gondula_elder.py b/scripts/mobiles/endor/gondula_elder.py
new file mode 100644
index 00000000..98d374f9
--- /dev/null
+++ b/scripts/mobiles/endor/gondula_elder.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gondula_elder')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gondula_elder', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gondula_elder_worker.py b/scripts/mobiles/endor/gondula_elder_worker.py
new file mode 100644
index 00000000..31112bcc
--- /dev/null
+++ b/scripts/mobiles/endor/gondula_elder_worker.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gondula_elder_worker')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gondula_elder_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gondula_kelbe.py b/scripts/mobiles/endor/gondula_kelbe.py
new file mode 100644
index 00000000..59637cd7
--- /dev/null
+++ b/scripts/mobiles/endor/gondula_kelbe.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gondula_kelbe')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gondula_kelbe', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gondula_loremaster.py b/scripts/mobiles/endor/gondula_loremaster.py
new file mode 100644
index 00000000..3ef2c7cc
--- /dev/null
+++ b/scripts/mobiles/endor/gondula_loremaster.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gondula_loremaster')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gondula_loremaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gondula_matriarch.py b/scripts/mobiles/endor/gondula_matriarch.py
new file mode 100644
index 00000000..fb44f1c8
--- /dev/null
+++ b/scripts/mobiles/endor/gondula_matriarch.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gondula_matriarch')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gondula_matriarch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gondula_outcast.py b/scripts/mobiles/endor/gondula_outcast.py
new file mode 100644
index 00000000..bdf83a0e
--- /dev/null
+++ b/scripts/mobiles/endor/gondula_outcast.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gondula_outcast')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gondula_outcast', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gondula_ritualist.py b/scripts/mobiles/endor/gondula_ritualist.py
new file mode 100644
index 00000000..be7f3924
--- /dev/null
+++ b/scripts/mobiles/endor/gondula_ritualist.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gondula_ritualist')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gondula_ritualist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gondula_shaman.py b/scripts/mobiles/endor/gondula_shaman.py
new file mode 100644
index 00000000..7fb1cdc3
--- /dev/null
+++ b/scripts/mobiles/endor/gondula_shaman.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gondula_shaman')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gondula_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gondula_tribesman.py b/scripts/mobiles/endor/gondula_tribesman.py
new file mode 100644
index 00000000..6049d8c9
--- /dev/null
+++ b/scripts/mobiles/endor/gondula_tribesman.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gondula_tribesman')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gondula_tribesman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gondula_veteran.py b/scripts/mobiles/endor/gondula_veteran.py
new file mode 100644
index 00000000..087c94bb
--- /dev/null
+++ b/scripts/mobiles/endor/gondula_veteran.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gondula_veteran')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gondula_veteran', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gondula_warrior.py b/scripts/mobiles/endor/gondula_warrior.py
new file mode 100644
index 00000000..926bc22d
--- /dev/null
+++ b/scripts/mobiles/endor/gondula_warrior.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gondula_warrior')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('gondula_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/grassland_blood_marauder.py b/scripts/mobiles/endor/grassland_blood_marauder.py
new file mode 100644
index 00000000..2f638a71
--- /dev/null
+++ b/scripts/mobiles/endor/grassland_blood_marauder.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('grassland_blood_marauder')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("marauder")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_marauder_male_01.iff')
+ templates.add('object/mobile/shared_marauder_male_02.iff')
+ templates.add('object/mobile/shared_marauder_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('grassland_blood_marauder', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/grassland_raider.py b/scripts/mobiles/endor/grassland_raider.py
new file mode 100644
index 00000000..19b37a18
--- /dev/null
+++ b/scripts/mobiles/endor/grassland_raider.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('grassland_raider')
+ mobileTemplate.setLevel(75)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("marauder")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_marauder_male_01.iff')
+ templates.add('object/mobile/shared_marauder_male_02.iff')
+ templates.add('object/mobile/shared_marauder_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('grassland_raider', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/grungy_donkuwah_laborer.py b/scripts/mobiles/endor/grungy_donkuwah_laborer.py
new file mode 100644
index 00000000..85a8cd12
--- /dev/null
+++ b/scripts/mobiles/endor/grungy_donkuwah_laborer.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('grungy_donkuwah_laborer')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('grungy_donkuwah_laborer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/grungy_korga_laborer.py b/scripts/mobiles/endor/grungy_korga_laborer.py
new file mode 100644
index 00000000..fe83f4c8
--- /dev/null
+++ b/scripts/mobiles/endor/grungy_korga_laborer.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('grungy_korga_laborer')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('grungy_korga_laborer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/grungy_pubam_laborer.py b/scripts/mobiles/endor/grungy_pubam_laborer.py
new file mode 100644
index 00000000..fb411f6c
--- /dev/null
+++ b/scripts/mobiles/endor/grungy_pubam_laborer.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('grungy_pubam_laborer')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('grungy_pubam_laborer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gurreck.py b/scripts/mobiles/endor/gurreck.py
new file mode 100644
index 00000000..8c8f2773
--- /dev/null
+++ b/scripts/mobiles/endor/gurreck.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gurreck')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("gurreck")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gurreck.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gurreck', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/gurreck_forest_stalker.py b/scripts/mobiles/endor/gurreck_forest_stalker.py
new file mode 100644
index 00000000..e3e57611
--- /dev/null
+++ b/scripts/mobiles/endor/gurreck_forest_stalker.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('woodland_gurreck')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("gurreck")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gurreck.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gurreck_forest_stalker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/haggard_donkuwah_battlelord.py b/scripts/mobiles/endor/haggard_donkuwah_battlelord.py
new file mode 100644
index 00000000..03364a19
--- /dev/null
+++ b/scripts/mobiles/endor/haggard_donkuwah_battlelord.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('haggard_donkuwah_battlelord')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('haggard_donkuwah_battlelord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/haggard_pubam_battlelord.py b/scripts/mobiles/endor/haggard_pubam_battlelord.py
new file mode 100644
index 00000000..16c17892
--- /dev/null
+++ b/scripts/mobiles/endor/haggard_pubam_battlelord.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('haggard_pubam_battlelord')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('haggard_pubam_battlelord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/hanadak_ancient.py b/scripts/mobiles/endor/hanadak_ancient.py
new file mode 100644
index 00000000..2bc94a65
--- /dev/null
+++ b/scripts/mobiles/endor/hanadak_ancient.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hanadak_ancient')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(40)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(40)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setSocialGroup("hanadak")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_hanadak.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('hanadak_ancient', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/hanadak_drifter.py b/scripts/mobiles/endor/hanadak_drifter.py
new file mode 100644
index 00000000..fe1ab44f
--- /dev/null
+++ b/scripts/mobiles/endor/hanadak_drifter.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hanadak_drifter')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(35)
+ mobileTemplate.setSocialGroup("bageraset")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_hanadak.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('hanadak', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/hardened_gondula_warrior.py b/scripts/mobiles/endor/hardened_gondula_warrior.py
new file mode 100644
index 00000000..357a615c
--- /dev/null
+++ b/scripts/mobiles/endor/hardened_gondula_warrior.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hardened_gondula_warrior')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('hardened_gondula_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/hardened_jinda_warrior.py b/scripts/mobiles/endor/hardened_jinda_warrior.py
new file mode 100644
index 00000000..e39a43c8
--- /dev/null
+++ b/scripts/mobiles/endor/hardened_jinda_warrior.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hardened_jinda_warrior')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('hardened_jinda_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/hardened_panshee_warrior.py b/scripts/mobiles/endor/hardened_panshee_warrior.py
new file mode 100644
index 00000000..40abb572
--- /dev/null
+++ b/scripts/mobiles/endor/hardened_panshee_warrior.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hardened_panshee_warrior')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('hardened_panshee_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/highland_remmer.py b/scripts/mobiles/endor/highland_remmer.py
new file mode 100644
index 00000000..d0bdd12b
--- /dev/null
+++ b/scripts/mobiles/endor/highland_remmer.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('highland_remmer')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("remmer")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_remmer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureSpitAttack')
+ mobileTemplate.setAttacks(attacks)
+
+
+ core.spawnService.addMobileTemplate('highland_remmer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/hilltop_gurreck_hunter.py b/scripts/mobiles/endor/hilltop_gurreck_hunter.py
new file mode 100644
index 00000000..e09120a4
--- /dev/null
+++ b/scripts/mobiles/endor/hilltop_gurreck_hunter.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hilltop_gurreck_hunter')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("gurreck")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gurreck.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('hilltop_gurreck_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/infuriated_roba_protector.py b/scripts/mobiles/endor/infuriated_roba_protector.py
new file mode 100644
index 00000000..b4bed883
--- /dev/null
+++ b/scripts/mobiles/endor/infuriated_roba_protector.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('roba_infuriated_protectorate')
+ mobileTemplate.setLevel(45)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("roba")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_roba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('infuriated_roba_protector', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/insane_mantigrue_berserker.py b/scripts/mobiles/endor/insane_mantigrue_berserker.py
new file mode 100644
index 00000000..eb9b8783
--- /dev/null
+++ b/scripts/mobiles/endor/insane_mantigrue_berserker.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mantigrue_insane_berserker')
+ mobileTemplate.setLevel(45)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("mantigrue")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_condor_dragon.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('insane_mantigrue_berserker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/jinda_chief.py b/scripts/mobiles/endor/jinda_chief.py
new file mode 100644
index 00000000..e8e1601c
--- /dev/null
+++ b/scripts/mobiles/endor/jinda_chief.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jinda_chief')
+ mobileTemplate.setLevel(67)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('jinda_chief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/jinda_cub.py b/scripts/mobiles/endor/jinda_cub.py
new file mode 100644
index 00000000..eaa8ae18
--- /dev/null
+++ b/scripts/mobiles/endor/jinda_cub.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jinda_cub')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('jinda_cub', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/jinda_elder.py b/scripts/mobiles/endor/jinda_elder.py
new file mode 100644
index 00000000..5d4ae53f
--- /dev/null
+++ b/scripts/mobiles/endor/jinda_elder.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jinda_elder')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('jinda_elder', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/jinda_elder_worker.py b/scripts/mobiles/endor/jinda_elder_worker.py
new file mode 100644
index 00000000..03601b2e
--- /dev/null
+++ b/scripts/mobiles/endor/jinda_elder_worker.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jinda_elder_worker')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('jinda_elder_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/jinda_loremaster.py b/scripts/mobiles/endor/jinda_loremaster.py
new file mode 100644
index 00000000..810838c2
--- /dev/null
+++ b/scripts/mobiles/endor/jinda_loremaster.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jinda_loremaster')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('jinda_loremaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/jinda_matriarch.py b/scripts/mobiles/endor/jinda_matriarch.py
new file mode 100644
index 00000000..9620e146
--- /dev/null
+++ b/scripts/mobiles/endor/jinda_matriarch.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jinda_matriarch')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('jinda_matriarch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/jinda_outcast.py b/scripts/mobiles/endor/jinda_outcast.py
new file mode 100644
index 00000000..3528c30a
--- /dev/null
+++ b/scripts/mobiles/endor/jinda_outcast.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jinda_outcast')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('jinda_outcast', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/jinda_ritualist.py b/scripts/mobiles/endor/jinda_ritualist.py
new file mode 100644
index 00000000..30d49c4e
--- /dev/null
+++ b/scripts/mobiles/endor/jinda_ritualist.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jinda_ritualist')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('jinda_ritualist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/jinda_shaman.py b/scripts/mobiles/endor/jinda_shaman.py
new file mode 100644
index 00000000..577a1717
--- /dev/null
+++ b/scripts/mobiles/endor/jinda_shaman.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jinda_shaman')
+ mobileTemplate.setLevel(67)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('jinda_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/jinda_tribesman.py b/scripts/mobiles/endor/jinda_tribesman.py
new file mode 100644
index 00000000..f854065f
--- /dev/null
+++ b/scripts/mobiles/endor/jinda_tribesman.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jinda_tribesman')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('jinda_tribesman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/jinda_veteran.py b/scripts/mobiles/endor/jinda_veteran.py
new file mode 100644
index 00000000..c1f06564
--- /dev/null
+++ b/scripts/mobiles/endor/jinda_veteran.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jinda_veteran')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('jinda_veteran', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/jinda_warrior.py b/scripts/mobiles/endor/jinda_warrior.py
new file mode 100644
index 00000000..d11207ad
--- /dev/null
+++ b/scripts/mobiles/endor/jinda_warrior.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jinda_warrior')
+ mobileTemplate.setLevel(67)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('jinda_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/jinda_worker.py b/scripts/mobiles/endor/jinda_worker.py
new file mode 100644
index 00000000..14191b38
--- /dev/null
+++ b/scripts/mobiles/endor/jinda_worker.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jinda_worker')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('jinda_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/king_merek_harvester.py b/scripts/mobiles/endor/king_merek_harvester.py
new file mode 100644
index 00000000..3b86a0af
--- /dev/null
+++ b/scripts/mobiles/endor/king_merek_harvester.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('king_merek_harvester')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(50)
+ mobileTemplate.setSocialGroup("merek")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_merek.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('king_merek_harvester', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/korga_adept.py b/scripts/mobiles/endor/korga_adept.py
new file mode 100644
index 00000000..702e1ea2
--- /dev/null
+++ b/scripts/mobiles/endor/korga_adept.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('korga_adept')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('korga_adept', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/korga_ancient.py b/scripts/mobiles/endor/korga_ancient.py
new file mode 100644
index 00000000..bd7587de
--- /dev/null
+++ b/scripts/mobiles/endor/korga_ancient.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('korga_ancient')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('korga_ancient', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/korga_battlelord.py b/scripts/mobiles/endor/korga_battlelord.py
new file mode 100644
index 00000000..e4090f3c
--- /dev/null
+++ b/scripts/mobiles/endor/korga_battlelord.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('korga_battlelord')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('korga_battlelord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/korga_chieftan.py b/scripts/mobiles/endor/korga_chieftan.py
new file mode 100644
index 00000000..5e711248
--- /dev/null
+++ b/scripts/mobiles/endor/korga_chieftan.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('korga_chieftan')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('korga_chieftan', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/korga_cub.py b/scripts/mobiles/endor/korga_cub.py
new file mode 100644
index 00000000..df2f9b32
--- /dev/null
+++ b/scripts/mobiles/endor/korga_cub.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('korga_cub')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('korga_cub', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/korga_dark_shaman.py b/scripts/mobiles/endor/korga_dark_shaman.py
new file mode 100644
index 00000000..993bdc02
--- /dev/null
+++ b/scripts/mobiles/endor/korga_dark_shaman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('korga_dark_shaman')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('korga_dark_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/korga_elder.py b/scripts/mobiles/endor/korga_elder.py
new file mode 100644
index 00000000..3cf74376
--- /dev/null
+++ b/scripts/mobiles/endor/korga_elder.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('korga_elder')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('korga_elder', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/korga_laborer.py b/scripts/mobiles/endor/korga_laborer.py
new file mode 100644
index 00000000..f072bd12
--- /dev/null
+++ b/scripts/mobiles/endor/korga_laborer.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('korga_laborer')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('korga_laborer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/korga_scout.py b/scripts/mobiles/endor/korga_scout.py
new file mode 100644
index 00000000..9b9451a9
--- /dev/null
+++ b/scripts/mobiles/endor/korga_scout.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('korga_scout')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('korga_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/korga_spiritmaster.py b/scripts/mobiles/endor/korga_spiritmaster.py
new file mode 100644
index 00000000..24809a74
--- /dev/null
+++ b/scripts/mobiles/endor/korga_spiritmaster.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('korga_spiritmaster')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('korga_spiritmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/lantern_bird.py b/scripts/mobiles/endor/lantern_bird.py
new file mode 100644
index 00000000..b41a66ca
--- /dev/null
+++ b/scripts/mobiles/endor/lantern_bird.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lantern_bird')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(41)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(46)
+ mobileTemplate.setSocialGroup("lantern")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_lantern_bird.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('lantern_bird', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/lice_ridden_remmer_queen.py b/scripts/mobiles/endor/lice_ridden_remmer_queen.py
new file mode 100644
index 00000000..eeb24160
--- /dev/null
+++ b/scripts/mobiles/endor/lice_ridden_remmer_queen.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lice_ridden_remmer_queen')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setSocialGroup("remmer")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_remmer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureSpitAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('lice_ridden_remmer_queen', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/mantigrue_hunter.py b/scripts/mobiles/endor/mantigrue_hunter.py
new file mode 100644
index 00000000..d4ddd9bf
--- /dev/null
+++ b/scripts/mobiles/endor/mantigrue_hunter.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mantigrue_hunter')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("mantigrue")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_condor_dragon.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mantigrue_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/mantigrue_night_stalker.py b/scripts/mobiles/endor/mantigrue_night_stalker.py
new file mode 100644
index 00000000..af37154e
--- /dev/null
+++ b/scripts/mobiles/endor/mantigrue_night_stalker.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mantigrue_night_stalker')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("mantigrue")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_condor_dragon.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mantigrue_night_stalker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/mantigrue_reaper.py b/scripts/mobiles/endor/mantigrue_reaper.py
new file mode 100644
index 00000000..32049433
--- /dev/null
+++ b/scripts/mobiles/endor/mantigrue_reaper.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mantigrue_reaper')
+ mobileTemplate.setLevel(72)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("mantigrue")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_condor_dragon.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mantigrue_reaper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/mantigrue_screecher.py b/scripts/mobiles/endor/mantigrue_screecher.py
new file mode 100644
index 00000000..18f2de92
--- /dev/null
+++ b/scripts/mobiles/endor/mantigrue_screecher.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mantigrue_screecher')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.8)
+ mobileTemplate.setSocialGroup("mantigrue")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_condor_dragon.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mantigrue_screecher', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/marauder.py b/scripts/mobiles/endor/marauder.py
new file mode 100644
index 00000000..0107c297
--- /dev/null
+++ b/scripts/mobiles/endor/marauder.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('marauder')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("marauder")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_marauder_male_01.iff')
+ templates.add('object/mobile/shared_marauder_male_02.iff')
+ templates.add('object/mobile/shared_marauder_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('marauder', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/masterful_ewok_warrior.py b/scripts/mobiles/endor/masterful_ewok_warrior.py
new file mode 100644
index 00000000..69b458f5
--- /dev/null
+++ b/scripts/mobiles/endor/masterful_ewok_warrior.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('masterful_ewok_warrior')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('masterful_ewok_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/masterful_jinda_warrior.py b/scripts/mobiles/endor/masterful_jinda_warrior.py
new file mode 100644
index 00000000..e3f54bdc
--- /dev/null
+++ b/scripts/mobiles/endor/masterful_jinda_warrior.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('masterful_jinda_warrior')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('masterful_jinda_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/masterful_panshee_warrior.py b/scripts/mobiles/endor/masterful_panshee_warrior.py
new file mode 100644
index 00000000..ca78aa51
--- /dev/null
+++ b/scripts/mobiles/endor/masterful_panshee_warrior.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('masterful_panshee_warrior')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('masterful_panshee_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/mature_hanadak.py b/scripts/mobiles/endor/mature_hanadak.py
new file mode 100644
index 00000000..946a4d49
--- /dev/null
+++ b/scripts/mobiles/endor/mature_hanadak.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mature_hanadak')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(20)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(20)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setSocialGroup("hanadak")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_hanadak.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mature_hanadak', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/mature_hanadak_rock_smasher.py b/scripts/mobiles/endor/mature_hanadak_rock_smasher.py
new file mode 100644
index 00000000..dbc64f86
--- /dev/null
+++ b/scripts/mobiles/endor/mature_hanadak_rock_smasher.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mature_hanadak_rock_smasher')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(35)
+ mobileTemplate.setSocialGroup("hanadak")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_hanadak.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mature_hanadak_rock_smasher', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/merek_assassin.py b/scripts/mobiles/endor/merek_assassin.py
new file mode 100644
index 00000000..8a6720f5
--- /dev/null
+++ b/scripts/mobiles/endor/merek_assassin.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('merek_assassin')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(45)
+ mobileTemplate.setSocialGroup("merek")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_merek.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('merek_assassin', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/merek_cavern_creeper.py b/scripts/mobiles/endor/merek_cavern_creeper.py
new file mode 100644
index 00000000..8431fdc7
--- /dev/null
+++ b/scripts/mobiles/endor/merek_cavern_creeper.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('merek_cavern_creeper')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(45)
+ mobileTemplate.setSocialGroup("merek")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_merek.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('merek_cavern_creeper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/merek_deaths_head.py b/scripts/mobiles/endor/merek_deaths_head.py
new file mode 100644
index 00000000..2327d0f4
--- /dev/null
+++ b/scripts/mobiles/endor/merek_deaths_head.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('merek_deaths_head')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(45)
+ mobileTemplate.setSocialGroup("merek")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_merek.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('merek_deaths_head', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/merek_harvester.py b/scripts/mobiles/endor/merek_harvester.py
new file mode 100644
index 00000000..04d278a5
--- /dev/null
+++ b/scripts/mobiles/endor/merek_harvester.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('merek_harvester')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(45)
+ mobileTemplate.setSocialGroup("merek")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_merek.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('merek_harvester', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/mine_rat.py b/scripts/mobiles/endor/mine_rat.py
new file mode 100644
index 00000000..9864ab7d
--- /dev/null
+++ b/scripts/mobiles/endor/mine_rat.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('death_watch_quenker')
+ mobileTemplate.setLevel(83)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(.6)
+ mobileTemplate.setSocialGroup("death watch")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_barbed_quenker.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mine_rat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/miner.py b/scripts/mobiles/endor/miner.py
new file mode 100644
index 00000000..ae214a53
--- /dev/null
+++ b/scripts/mobiles/endor/miner.py
@@ -0,0 +1,47 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('miner')
+ mobileTemplate.setLevel(85)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("death watch")
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_mand_miner_aqualish.iff')
+ templates.add('object/mobile/shared_dressed_mand_miner_bith.iff')
+ templates.add('object/mobile/shared_dressed_mand_miner_hum_01.iff')
+ templates.add('object/mobile/shared_dressed_mand_miner_hum_02.iff')
+ templates.add('object/mobile/shared_dressed_mand_miner_hum_03.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('miner', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/minor_gorax.py b/scripts/mobiles/endor/minor_gorax.py
new file mode 100644
index 00000000..26381725
--- /dev/null
+++ b/scripts/mobiles/endor/minor_gorax.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('minor_gorax')
+ mobileTemplate.setLevel(83)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(.75)
+ mobileTemplate.setSocialGroup("gorax")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gorax.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('minor_gorax', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/noxious_squill.py b/scripts/mobiles/endor/noxious_squill.py
new file mode 100644
index 00000000..a7754b48
--- /dev/null
+++ b/scripts/mobiles/endor/noxious_squill.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('noxious_squill')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("squill")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_squill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('noxious_squill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/panshee_chief.py b/scripts/mobiles/endor/panshee_chief.py
new file mode 100644
index 00000000..54aafac9
--- /dev/null
+++ b/scripts/mobiles/endor/panshee_chief.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('panshee_chief')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('panshee_chief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/panshee_cub.py b/scripts/mobiles/endor/panshee_cub.py
new file mode 100644
index 00000000..b44cd061
--- /dev/null
+++ b/scripts/mobiles/endor/panshee_cub.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('panshee_cub')
+ mobileTemplate.setLevel(69)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('panshee_cub', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/panshee_elder.py b/scripts/mobiles/endor/panshee_elder.py
new file mode 100644
index 00000000..e27f50ff
--- /dev/null
+++ b/scripts/mobiles/endor/panshee_elder.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('panshee_elder')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('panshee_elder', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/panshee_elder_warrior.py b/scripts/mobiles/endor/panshee_elder_warrior.py
new file mode 100644
index 00000000..6514b299
--- /dev/null
+++ b/scripts/mobiles/endor/panshee_elder_warrior.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('panshee_elder_worker')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('panshee_elder_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/panshee_loremaster.py b/scripts/mobiles/endor/panshee_loremaster.py
new file mode 100644
index 00000000..9fc40987
--- /dev/null
+++ b/scripts/mobiles/endor/panshee_loremaster.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('panshee_loremaster')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('panshee_loremaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/panshee_matriarch.py b/scripts/mobiles/endor/panshee_matriarch.py
new file mode 100644
index 00000000..5de9bd16
--- /dev/null
+++ b/scripts/mobiles/endor/panshee_matriarch.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('panshee_matriarch')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('panshee_matriarch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/panshee_ritualist.py b/scripts/mobiles/endor/panshee_ritualist.py
new file mode 100644
index 00000000..247a1ad2
--- /dev/null
+++ b/scripts/mobiles/endor/panshee_ritualist.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('panshee_ritualist')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('panshee_ritualist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/panshee_shaman.py b/scripts/mobiles/endor/panshee_shaman.py
new file mode 100644
index 00000000..28875d0f
--- /dev/null
+++ b/scripts/mobiles/endor/panshee_shaman.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('panshee_shaman')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('panshee_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/panshee_tribesman.py b/scripts/mobiles/endor/panshee_tribesman.py
new file mode 100644
index 00000000..09cd9c33
--- /dev/null
+++ b/scripts/mobiles/endor/panshee_tribesman.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('panshee_tribesman')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('panshee_tribesman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/panshee_veteran.py b/scripts/mobiles/endor/panshee_veteran.py
new file mode 100644
index 00000000..d8f72bb2
--- /dev/null
+++ b/scripts/mobiles/endor/panshee_veteran.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('panshee_veteran')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('panshee_veteran', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/panshee_warrior.py b/scripts/mobiles/endor/panshee_warrior.py
new file mode 100644
index 00000000..c6fdb910
--- /dev/null
+++ b/scripts/mobiles/endor/panshee_warrior.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('panshee_warrior')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('panshee_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/panshee_worker.py b/scripts/mobiles/endor/panshee_worker.py
new file mode 100644
index 00000000..42f15770
--- /dev/null
+++ b/scripts/mobiles/endor/panshee_worker.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('panshee_worker')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('panshee_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/proficient_gondula_worker.py b/scripts/mobiles/endor/proficient_gondula_worker.py
new file mode 100644
index 00000000..a86760e3
--- /dev/null
+++ b/scripts/mobiles/endor/proficient_gondula_worker.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('proficient_gondula_worker')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('proficient_gondula_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/proficient_jinda_worker.py b/scripts/mobiles/endor/proficient_jinda_worker.py
new file mode 100644
index 00000000..7c69d4da
--- /dev/null
+++ b/scripts/mobiles/endor/proficient_jinda_worker.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('proficient_jinda_worker')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('proficient_jinda_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/proficient_panshee_worker.py b/scripts/mobiles/endor/proficient_panshee_worker.py
new file mode 100644
index 00000000..6209d853
--- /dev/null
+++ b/scripts/mobiles/endor/proficient_panshee_worker.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('proficient_panshee_worker')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('proficient_panshee_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/prowling_gurreck.py b/scripts/mobiles/endor/prowling_gurreck.py
new file mode 100644
index 00000000..a01f7f7c
--- /dev/null
+++ b/scripts/mobiles/endor/prowling_gurreck.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gurreck_prowler')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("gurreck")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gurreck.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('prowling_gurreck', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/pubam_battlelord.py b/scripts/mobiles/endor/pubam_battlelord.py
new file mode 100644
index 00000000..bd9fc47d
--- /dev/null
+++ b/scripts/mobiles/endor/pubam_battlelord.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('pubam_battlelord')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('pubam_battlelord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/pubam_chieftan.py b/scripts/mobiles/endor/pubam_chieftan.py
new file mode 100644
index 00000000..6062e7e6
--- /dev/null
+++ b/scripts/mobiles/endor/pubam_chieftan.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('pubam_chieftan')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('pubam_chieftan', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/pubam_cub.py b/scripts/mobiles/endor/pubam_cub.py
new file mode 100644
index 00000000..956c66d7
--- /dev/null
+++ b/scripts/mobiles/endor/pubam_cub.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('pubam_cub')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('pubam_cub', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/pubam_dark_shaman.py b/scripts/mobiles/endor/pubam_dark_shaman.py
new file mode 100644
index 00000000..02a45335
--- /dev/null
+++ b/scripts/mobiles/endor/pubam_dark_shaman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('pubam_dark_shaman')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('pubam_dark_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/pubam_scout.py b/scripts/mobiles/endor/pubam_scout.py
new file mode 100644
index 00000000..628635f7
--- /dev/null
+++ b/scripts/mobiles/endor/pubam_scout.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('pubam_scout')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('pubam_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/pubam_spiritmaster.py b/scripts/mobiles/endor/pubam_spiritmaster.py
new file mode 100644
index 00000000..734eee80
--- /dev/null
+++ b/scripts/mobiles/endor/pubam_spiritmaster.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('pubam_spiritmaster')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('pubam_spiritmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/pubam_tribesman.py b/scripts/mobiles/endor/pubam_tribesman.py
new file mode 100644
index 00000000..4022ffa1
--- /dev/null
+++ b/scripts/mobiles/endor/pubam_tribesman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('pubam_tribesman')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('pubam_tribesman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/putrid_borgle.py b/scripts/mobiles/endor/putrid_borgle.py
new file mode 100644
index 00000000..136f8aaa
--- /dev/null
+++ b/scripts/mobiles/endor/putrid_borgle.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('putrid_borgle')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setSocialGroup("borgle")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_borgle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('putrid_borgle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/queen_merek_harvester.py b/scripts/mobiles/endor/queen_merek_harvester.py
new file mode 100644
index 00000000..28b1706f
--- /dev/null
+++ b/scripts/mobiles/endor/queen_merek_harvester.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('queen_merek_harvester')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(50)
+ mobileTemplate.setSocialGroup("merek")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_merek.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('queen_merek_harvester', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/rabid_squall.py b/scripts/mobiles/endor/rabid_squall.py
new file mode 100644
index 00000000..826b7abb
--- /dev/null
+++ b/scripts/mobiles/endor/rabid_squall.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rabid_squall')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(12)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(8)
+ mobileTemplate.setSocialGroup("squall")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_squall.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rabid_squall', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/radiant_lantern_bird.py b/scripts/mobiles/endor/radiant_lantern_bird.py
new file mode 100644
index 00000000..04cab08f
--- /dev/null
+++ b/scripts/mobiles/endor/radiant_lantern_bird.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('radiant_lantern_bird')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(41)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(46)
+ mobileTemplate.setSocialGroup("lantern")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_lantern_bird.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('radiant_lantern_bird', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/rancid_remmer_warrior.py b/scripts/mobiles/endor/rancid_remmer_warrior.py
new file mode 100644
index 00000000..ed4c611d
--- /dev/null
+++ b/scripts/mobiles/endor/rancid_remmer_warrior.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rancid_remmer_warrior')
+ mobileTemplate.setLevel(56)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("remmer")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_remmer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureSpitAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rancid_remmer_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/ravenous_roba_stalker.py b/scripts/mobiles/endor/ravenous_roba_stalker.py
new file mode 100644
index 00000000..370997b9
--- /dev/null
+++ b/scripts/mobiles/endor/ravenous_roba_stalker.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ravenous_roba_stalker')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("roba")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_roba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('ravenous_roba_stalker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/reclusive_roba.py b/scripts/mobiles/endor/reclusive_roba.py
new file mode 100644
index 00000000..960b0785
--- /dev/null
+++ b/scripts/mobiles/endor/reclusive_roba.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('reclusive_roba')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("roba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_roba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('reclusive_roba', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/remmer_carrion_keeper.py b/scripts/mobiles/endor/remmer_carrion_keeper.py
new file mode 100644
index 00000000..da8cb837
--- /dev/null
+++ b/scripts/mobiles/endor/remmer_carrion_keeper.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('remmer_carrion_keeper')
+ mobileTemplate.setLevel(55)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("remmer")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_remmer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('remmer_carrion_keeper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/remmer_dune_scavenger.py b/scripts/mobiles/endor/remmer_dune_scavenger.py
new file mode 100644
index 00000000..338bd1eb
--- /dev/null
+++ b/scripts/mobiles/endor/remmer_dune_scavenger.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('remmer_dune_scavenger')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("remmer")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_remmer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureSpitAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('remmer_dune_scavenger', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/revered_panshee_matriarch.py b/scripts/mobiles/endor/revered_panshee_matriarch.py
new file mode 100644
index 00000000..c4cabb10
--- /dev/null
+++ b/scripts/mobiles/endor/revered_panshee_matriarch.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('revered_panshee_matriarch')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('revered_panshee_matriarch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/roaming_bordok_stud.py b/scripts/mobiles/endor/roaming_bordok_stud.py
new file mode 100644
index 00000000..a2935c51
--- /dev/null
+++ b/scripts/mobiles/endor/roaming_bordok_stud.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('roaming_bordok_stud')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("bordok")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bordok.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('roaming_bordok_stud', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/roaming_desert_borgle.py b/scripts/mobiles/endor/roaming_desert_borgle.py
new file mode 100644
index 00000000..4c3c5c0d
--- /dev/null
+++ b/scripts/mobiles/endor/roaming_desert_borgle.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('borgle_desert_roamer')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setSocialGroup("borgle")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_borgle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('roaming_desert_borgle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/roba.py b/scripts/mobiles/endor/roba.py
new file mode 100644
index 00000000..e290e4dc
--- /dev/null
+++ b/scripts/mobiles/endor/roba.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('roba')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("roba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_roba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('roba', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/roba_boar.py b/scripts/mobiles/endor/roba_boar.py
new file mode 100644
index 00000000..333481ae
--- /dev/null
+++ b/scripts/mobiles/endor/roba_boar.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('roba_boar')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.1)
+ mobileTemplate.setSocialGroup("roba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_roba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('roba_boar', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/roba_pack_leader.py b/scripts/mobiles/endor/roba_pack_leader.py
new file mode 100644
index 00000000..d24375b3
--- /dev/null
+++ b/scripts/mobiles/endor/roba_pack_leader.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('roba_pack_leader')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("bageraset")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_roba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('roba_pack_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/roba_runt.py b/scripts/mobiles/endor/roba_runt.py
new file mode 100644
index 00000000..bf7c0e26
--- /dev/null
+++ b/scripts/mobiles/endor/roba_runt.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('roba_runt')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setSocialGroup("roba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_roba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('roba_runt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/rotten_gut_remmer_king.py b/scripts/mobiles/endor/rotten_gut_remmer_king.py
new file mode 100644
index 00000000..646ad605
--- /dev/null
+++ b/scripts/mobiles/endor/rotten_gut_remmer_king.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rotten_gut_remmer_king')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setSocialGroup("remmer")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_remmer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rotten_gut_remmer_king', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/sanguin_bloodseeker_hierarch.py b/scripts/mobiles/endor/sanguin_bloodseeker_hierarch.py
new file mode 100644
index 00000000..eaae12ac
--- /dev/null
+++ b/scripts/mobiles/endor/sanguin_bloodseeker_hierarch.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bloodseeker_mite_sanguine_hierarch')
+ mobileTemplate.setLevel(59)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("bloodseeker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bloodseeker.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sanguin_bloodseeker_hierarch.', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/seasoned_gondula_warrior.py b/scripts/mobiles/endor/seasoned_gondula_warrior.py
new file mode 100644
index 00000000..1d952b88
--- /dev/null
+++ b/scripts/mobiles/endor/seasoned_gondula_warrior.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('seasoned_gondula_warrior')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('seasoned_gondula_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/seasoned_jinda_warrior.py b/scripts/mobiles/endor/seasoned_jinda_warrior.py
new file mode 100644
index 00000000..363f994e
--- /dev/null
+++ b/scripts/mobiles/endor/seasoned_jinda_warrior.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('seasoned_jinda_warrior')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('seasoned_jinda_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/seasoned_panshee_warrior.py b/scripts/mobiles/endor/seasoned_panshee_warrior.py
new file mode 100644
index 00000000..38ff33a9
--- /dev/null
+++ b/scripts/mobiles/endor/seasoned_panshee_warrior.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('seasoned_panshee_warrior')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('seasoned_panshee_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/shaggy_donkuwah_youth.py b/scripts/mobiles/endor/shaggy_donkuwah_youth.py
new file mode 100644
index 00000000..ebb448e1
--- /dev/null
+++ b/scripts/mobiles/endor/shaggy_donkuwah_youth.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('shaggy_donkuwah_youth')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('shaggy_donkuwah_youth', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/shaggy_korga_youth.py b/scripts/mobiles/endor/shaggy_korga_youth.py
new file mode 100644
index 00000000..f2d40766
--- /dev/null
+++ b/scripts/mobiles/endor/shaggy_korga_youth.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('shaggy_korga_youth')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('shaggy_korga_youth', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/shaggy_pubam_youth.py b/scripts/mobiles/endor/shaggy_pubam_youth.py
new file mode 100644
index 00000000..635ed21f
--- /dev/null
+++ b/scripts/mobiles/endor/shaggy_pubam_youth.py
@@ -0,0 +1,50 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('shaggy_pubam_youth')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('shaggy_pubam_youth', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/shimmering_lantern_bird.py b/scripts/mobiles/endor/shimmering_lantern_bird.py
new file mode 100644
index 00000000..9a280dc9
--- /dev/null
+++ b/scripts/mobiles/endor/shimmering_lantern_bird.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('shimmering_lantern_bird')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(41)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(46)
+ mobileTemplate.setSocialGroup("lantern")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_lantern_bird.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('shimmering_lantern_bird', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/skilled_gondula_worker.py b/scripts/mobiles/endor/skilled_gondula_worker.py
new file mode 100644
index 00000000..7e272bfa
--- /dev/null
+++ b/scripts/mobiles/endor/skilled_gondula_worker.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('skilled_gondula_worker')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('skilled_gondula_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/skilled_jinda_worker.py b/scripts/mobiles/endor/skilled_jinda_worker.py
new file mode 100644
index 00000000..160eb2b8
--- /dev/null
+++ b/scripts/mobiles/endor/skilled_jinda_worker.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('skilled_jinda_worker')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('skilled_jinda_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/skilled_panshee_worker.py b/scripts/mobiles/endor/skilled_panshee_worker.py
new file mode 100644
index 00000000..9d06ab6e
--- /dev/null
+++ b/scripts/mobiles/endor/skilled_panshee_worker.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('skilled_panshee_worker')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('skilled_panshee_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/spooky_donkuwah_spiritmaster.py b/scripts/mobiles/endor/spooky_donkuwah_spiritmaster.py
new file mode 100644
index 00000000..52f74733
--- /dev/null
+++ b/scripts/mobiles/endor/spooky_donkuwah_spiritmaster.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('spooky_donkuwah_spiritmaster')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('spooky_donkuwah_spiritmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/spooky_korga_spiritmaster.py b/scripts/mobiles/endor/spooky_korga_spiritmaster.py
new file mode 100644
index 00000000..660d59af
--- /dev/null
+++ b/scripts/mobiles/endor/spooky_korga_spiritmaster.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('spooky_korga_spiritmaster')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('spooky_korga_spiritmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/spooky_pubam_spiritmaster.py b/scripts/mobiles/endor/spooky_pubam_spiritmaster.py
new file mode 100644
index 00000000..df1f1a01
--- /dev/null
+++ b/scripts/mobiles/endor/spooky_pubam_spiritmaster.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('spooky_pubam_spiritmaster')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('spooky_pubam_spiritmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/squall.py b/scripts/mobiles/endor/squall.py
new file mode 100644
index 00000000..2bf89f7a
--- /dev/null
+++ b/scripts/mobiles/endor/squall.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('squall')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(12)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(8)
+ mobileTemplate.setSocialGroup("squall")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_squall.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('squall', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/stoneskin_hanadak.py b/scripts/mobiles/endor/stoneskin_hanadak.py
new file mode 100644
index 00000000..a8887f74
--- /dev/null
+++ b/scripts/mobiles/endor/stoneskin_hanadak.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stoneskin_hanadak')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(40)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(40)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setSocialGroup("hanadak")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_hanadak.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stoneskin_hanadak', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/swirl_prong.py b/scripts/mobiles/endor/swirl_prong.py
new file mode 100644
index 00000000..80755636
--- /dev/null
+++ b/scripts/mobiles/endor/swirl_prong.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('swirl_prong')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("swirl prong")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_swirl_prong.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('swirl_prong', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/swirl_prong_impaler.py b/scripts/mobiles/endor/swirl_prong_impaler.py
new file mode 100644
index 00000000..b821835f
--- /dev/null
+++ b/scripts/mobiles/endor/swirl_prong_impaler.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('swirl_prong_impaler')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("swirl prong")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_swirl_prong.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('swirl_prong_impaler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/swirl_prong_pack_leader.py b/scripts/mobiles/endor/swirl_prong_pack_leader.py
new file mode 100644
index 00000000..fc4545d4
--- /dev/null
+++ b/scripts/mobiles/endor/swirl_prong_pack_leader.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('swirl_prong_pack_leader')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("swirl prong")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_swirl_prong.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('swirl_prong_pack_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/tainted_donkuwah_dark_shaman.py b/scripts/mobiles/endor/tainted_donkuwah_dark_shaman.py
new file mode 100644
index 00000000..e01351d7
--- /dev/null
+++ b/scripts/mobiles/endor/tainted_donkuwah_dark_shaman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tainted_donkuwah_dark_shaman')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('tainted_donkuwah_dark_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/tainted_korga_dark_shaman.py b/scripts/mobiles/endor/tainted_korga_dark_shaman.py
new file mode 100644
index 00000000..9c8b932f
--- /dev/null
+++ b/scripts/mobiles/endor/tainted_korga_dark_shaman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tainted_korga_dark_shaman')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('tainted_korga_dark_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/tainted_pubam_dark_shaman.py b/scripts/mobiles/endor/tainted_pubam_dark_shaman.py
new file mode 100644
index 00000000..e7d6b836
--- /dev/null
+++ b/scripts/mobiles/endor/tainted_pubam_dark_shaman.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tainted_pubam_dark_shaman')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('tainted_pubam_dark_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/toxic_merek_battlelord.py b/scripts/mobiles/endor/toxic_merek_battlelord.py
new file mode 100644
index 00000000..41347453
--- /dev/null
+++ b/scripts/mobiles/endor/toxic_merek_battlelord.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('toxic_merek_battlelord')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(45)
+ mobileTemplate.setSocialGroup("merek")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_merek.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('toxic_merek_battlelord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/tricky_donkuwah_scout.py b/scripts/mobiles/endor/tricky_donkuwah_scout.py
new file mode 100644
index 00000000..44496a24
--- /dev/null
+++ b/scripts/mobiles/endor/tricky_donkuwah_scout.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tricky_donkuwah_scout')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('tricky_donkuwah_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/tricky_korga_scout.py b/scripts/mobiles/endor/tricky_korga_scout.py
new file mode 100644
index 00000000..2aae3dde
--- /dev/null
+++ b/scripts/mobiles/endor/tricky_korga_scout.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tricky_korga_scout')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('tricky_korga_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/tricky_pubam_scout.py b/scripts/mobiles/endor/tricky_pubam_scout.py
new file mode 100644
index 00000000..2062c2c6
--- /dev/null
+++ b/scripts/mobiles/endor/tricky_pubam_scout.py
@@ -0,0 +1,48 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tricky_pubam_scout')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('tricky_pubam_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/venom_filled_arachne.py b/scripts/mobiles/endor/venom_filled_arachne.py
new file mode 100644
index 00000000..cbbca23d
--- /dev/null
+++ b/scripts/mobiles/endor/venom_filled_arachne.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('venom_filled_arachne')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setSocialGroup("arachne")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_angler.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('venom_filled_arachne', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/vicious_donkuwah_battlelord.py b/scripts/mobiles/endor/vicious_donkuwah_battlelord.py
new file mode 100644
index 00000000..e0bc9153
--- /dev/null
+++ b/scripts/mobiles/endor/vicious_donkuwah_battlelord.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('vicious_donkuwah_battlelord')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('vicious_donkuwah_battlelord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/vicious_korga_battlelord.py b/scripts/mobiles/endor/vicious_korga_battlelord.py
new file mode 100644
index 00000000..f23838f1
--- /dev/null
+++ b/scripts/mobiles/endor/vicious_korga_battlelord.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('vicious_korga_battlelord')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('vicious_korga_battlelord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/vicious_pubam_battlelord.py b/scripts/mobiles/endor/vicious_pubam_battlelord.py
new file mode 100644
index 00000000..3b6ab684
--- /dev/null
+++ b/scripts/mobiles/endor/vicious_pubam_battlelord.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('vicious_pubam_battlelord')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('pubam tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('vicious_pubam_battlelord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/vile_donkuwah_battlelord.py b/scripts/mobiles/endor/vile_donkuwah_battlelord.py
new file mode 100644
index 00000000..b53003c9
--- /dev/null
+++ b/scripts/mobiles/endor/vile_donkuwah_battlelord.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('vile_donkuwah_battlelord')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('donkuwah tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('vile_donkuwah_battlelord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/vile_korga_battlelord.py b/scripts/mobiles/endor/vile_korga_battlelord.py
new file mode 100644
index 00000000..715abf14
--- /dev/null
+++ b/scripts/mobiles/endor/vile_korga_battlelord.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('vile_korga_battlelord')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup('korga tribe')
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dulok_male.iff')
+ templates.add('object/mobile/shared_dulok_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('vile_korga_battlelord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/wandering_desert_marauder.py b/scripts/mobiles/endor/wandering_desert_marauder.py
new file mode 100644
index 00000000..51647877
--- /dev/null
+++ b/scripts/mobiles/endor/wandering_desert_marauder.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('wandering_desert_marauder')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("marauder")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_marauder_male_01.iff')
+ templates.add('object/mobile/shared_marauder_male_02.iff')
+ templates.add('object/mobile/shared_marauder_male_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('wandering_desert_marauder', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/weathered_gondula_shaman.py b/scripts/mobiles/endor/weathered_gondula_shaman.py
new file mode 100644
index 00000000..a903a2be
--- /dev/null
+++ b/scripts/mobiles/endor/weathered_gondula_shaman.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('weathered_gondula_shaman')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('weathered_gondula_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/weathered_jinda_shaman.py b/scripts/mobiles/endor/weathered_jinda_shaman.py
new file mode 100644
index 00000000..aa39bbc0
--- /dev/null
+++ b/scripts/mobiles/endor/weathered_jinda_shaman.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('weathered_jinda_shaman')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('weathered_jinda_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/weathered_panshee_shaman.py b/scripts/mobiles/endor/weathered_panshee_shaman.py
new file mode 100644
index 00000000..23f52eaf
--- /dev/null
+++ b/scripts/mobiles/endor/weathered_panshee_shaman.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('weathered_panshee_shaman')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('weathered_panshee_shaman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/wise_gondula_ritualist.py b/scripts/mobiles/endor/wise_gondula_ritualist.py
new file mode 100644
index 00000000..1c9d0ecc
--- /dev/null
+++ b/scripts/mobiles/endor/wise_gondula_ritualist.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('wise_gondula_ritualist')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('gondula tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('wise_gondula_ritualist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/wise_jinda_ritualist.py b/scripts/mobiles/endor/wise_jinda_ritualist.py
new file mode 100644
index 00000000..f49bbd75
--- /dev/null
+++ b/scripts/mobiles/endor/wise_jinda_ritualist.py
@@ -0,0 +1,51 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('wise_jinda_ritualist')
+ mobileTemplate.setLevel(67)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('jinda tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jinda_male.iff')
+ templates.add('object/mobile/shared_jinda_female.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('wise_jinda_ritualist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/endor/wise_panshee_ritualist.py b/scripts/mobiles/endor/wise_panshee_ritualist.py
new file mode 100644
index 00000000..60d2e2f6
--- /dev/null
+++ b/scripts/mobiles/endor/wise_panshee_ritualist.py
@@ -0,0 +1,73 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('wise_panshee_ritualist')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(3)
+ mobileTemplate.setMaxSpawnDistance(5)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup('panshee tribe')
+ mobileTemplate.setAssistRange(1)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_ewok_f_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_f_12.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_01.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_02.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_03.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_04.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_05.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_06.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_07.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_08.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_09.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_10.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_11.iff')
+ templates.add('object/mobile/shared_dressed_ewok_m_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['random_loot_primitives']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 35
+ mobileTemplate.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ core.spawnService.addMobileTemplate('wise_panshee_ritualist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/forage/goon.py b/scripts/mobiles/forage/goon.py
new file mode 100644
index 00000000..16dbc898
--- /dev/null
+++ b/scripts/mobiles/forage/goon.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('forage_goon')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_assassin_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_assassin_human_male_01.iff')
+ templates.add('object/mobile/shared_twilek_male.iff')
+ templates.add('object/mobile/shared_dressed_binayre_pirate_zabrak_male_01.iff')
+ templates.add('object/mobile/shared_dressed_borvos_thug.iff')
+ templates.add('object/mobile/shared_wookiee_male.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_dh17.iff', 1, 0.6)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_dl44.iff', 2, 0.4)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_dlt20a.iff', 0, 0.8)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('forage_goon', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/forage/treasure_guard.py b/scripts/mobiles/forage/treasure_guard.py
new file mode 100644
index 00000000..4071449b
--- /dev/null
+++ b/scripts/mobiles/forage/treasure_guard.py
@@ -0,0 +1,57 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('treasure_guard')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_human_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_human_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_human_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_human_04.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_human_05.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_human_06.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_human_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_human_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_human_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_human_04.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_twk_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_twk_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_twk_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_zab_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_zab_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_male_zab_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_twk_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_twk_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_twk_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_zab_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_zab_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_female_zab_03.iff')
+
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff', 9, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff', 11, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('saberHit')
+ mobileTemplate.setDefaultAttack('fs_flurry_1')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('treasure_guard', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/forage/worm.py b/scripts/mobiles/forage/worm.py
new file mode 100644
index 00000000..c8e96a8c
--- /dev/null
+++ b/scripts/mobiles/forage/worm.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('forage_worm')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_col_forage_aggravated_worm.iff')
+ templates.add('object/mobile/shared_col_forage_angry_worm.iff')
+ templates.add('object/mobile/shared_col_forage_brutal_worm.iff')
+ templates.add('object/mobile/shared_col_forage_carnivorous_worm.iff')
+ templates.add('object/mobile/shared_col_forage_ferocious_worm.iff')
+ templates.add('object/mobile/shared_col_forage_fierce_worm.iff')
+ templates.add('object/mobile/shared_col_forage_hungry_worm.iff')
+ templates.add('object/mobile/shared_col_forage_oozing_worm.iff')
+ templates.add('object/mobile/shared_col_forage_savage_worm.iff')
+ templates.add('object/mobile/shared_col_forage_territorial_worm.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ #mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('forage_worm', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/ace_imp_bombardier_50.py b/scripts/mobiles/generic/faction/imperial/ace_imp_bombardier_50.py
new file mode 100644
index 00000000..99d66d7f
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/ace_imp_bombardier_50.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_bombardier_hard')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_bombardier_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_bombardier_50', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/ace_imp_bombardier_74.py b/scripts/mobiles/generic/faction/imperial/ace_imp_bombardier_74.py
new file mode 100644
index 00000000..96ecca64
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/ace_imp_bombardier_74.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_bombardier_hard')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_bombardier_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_bombardier_74', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/ace_imp_bombardier_89.py b/scripts/mobiles/generic/faction/imperial/ace_imp_bombardier_89.py
new file mode 100644
index 00000000..366d5e69
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/ace_imp_bombardier_89.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_bombardier_hard')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_bombardier_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_bombardier_89', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/ace_imp_storm_com_70.py b/scripts/mobiles/generic/faction/imperial/ace_imp_storm_com_70.py
new file mode 100644
index 00000000..8eebeeff
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/ace_imp_storm_com_70.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_storm_commando_hard')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_bombardier_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_bombardier_50', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/ace_imp_storm_com_87.py b/scripts/mobiles/generic/faction/imperial/ace_imp_storm_com_87.py
new file mode 100644
index 00000000..23843948
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/ace_imp_storm_com_87.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_storm_commando_hard')
+ mobileTemplate.setLevel(87)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_bombardier_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_bombardier_87', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/ace_imp_storm_com_89.py b/scripts/mobiles/generic/faction/imperial/ace_imp_storm_com_89.py
new file mode 100644
index 00000000..c07765bc
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/ace_imp_storm_com_89.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_storm_commando_hard')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_bombardier_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_bombardier_89', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/battle_droid_imp.py b/scripts/mobiles/generic/faction/imperial/battle_droid_imp.py
new file mode 100644
index 00000000..e53d8f03
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/battle_droid_imp.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from resources.datatables import FactionStatus
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_battle_droid')
+ mobileTemplate.setLevel(83)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_battle_droid.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('battle_droid_imperial', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/battle_shocked_imp_noncom_32.py b/scripts/mobiles/generic/faction/imperial/battle_shocked_imp_noncom_32.py
new file mode 100644
index 00000000..196596e7
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/battle_shocked_imp_noncom_32.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_noncom_hard')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_blue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('battle-shocked_imp_noncom_32', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/battle_shocked_imp_noncom_77.py b/scripts/mobiles/generic/faction/imperial/battle_shocked_imp_noncom_77.py
new file mode 100644
index 00000000..eb20d9ab
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/battle_shocked_imp_noncom_77.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_noncom_hard')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_black.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('battle-shocked_imp_noncom_77', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/bombardier.py b/scripts/mobiles/generic/faction/imperial/bombardier.py
new file mode 100644
index 00000000..e18c226b
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/bombardier.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bombardier')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_bombardier_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_bombardier', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/civil_patrol_captain.py b/scripts/mobiles/generic/faction/imperial/civil_patrol_captain.py
new file mode 100644
index 00000000..15295c67
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/civil_patrol_captain.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_civil_patrol_captain')
+ mobileTemplate.setLevel(7)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_patrol_member_01.iff')
+ templates.add('object/mobile/shared_dressed_patrol_member_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('civil_partrol_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/civil_patrol_commander.py b/scripts/mobiles/generic/faction/imperial/civil_patrol_commander.py
new file mode 100644
index 00000000..6117eb27
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/civil_patrol_commander.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_civil_patrol_commander')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_patrol_member_01.iff')
+ templates.add('object/mobile/shared_dressed_patrol_member_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('civil_partrol_commander', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/civil_patrol_corporal.py b/scripts/mobiles/generic/faction/imperial/civil_patrol_corporal.py
new file mode 100644
index 00000000..200f148e
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/civil_patrol_corporal.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_civil_patrol_corporal')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_patrol_member_01.iff')
+ templates.add('object/mobile/shared_dressed_patrol_member_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('civil_partrol_corporal', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/civil_patrol_sergeant.py b/scripts/mobiles/generic/faction/imperial/civil_patrol_sergeant.py
new file mode 100644
index 00000000..64087a12
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/civil_patrol_sergeant.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_civil_patrol_sergeant')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_patrol_member_01.iff')
+ templates.add('object/mobile/shared_dressed_patrol_member_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('civil_partrol_sergeant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/civillian_patrolman.py b/scripts/mobiles/generic/faction/imperial/civillian_patrolman.py
new file mode 100644
index 00000000..0671e5f3
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/civillian_patrolman.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_civil_patrolman')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_patrol_member_01.iff')
+ templates.add('object/mobile/shared_dressed_patrol_member_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('civilian_patrolman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/comm_operator.py b/scripts/mobiles/generic/faction/imperial/comm_operator.py
new file mode 100644
index 00000000..1d8e5fd0
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/comm_operator.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('comm_operator')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_lieutenant_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('comm_operator', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/command_security_guard.py b/scripts/mobiles/generic/faction/imperial/command_security_guard.py
new file mode 100644
index 00000000..a2e49cc7
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/command_security_guard.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('command_security_guard')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_imp_security_01.iff')
+ templates.add('object/mobile/shared_imp_security_02.iff')
+ templates.add('object/mobile/shared_imp_security_03.iff')
+ templates.add('object/mobile/shared_imp_security_04.iff')
+ templates.add('object/mobile/shared_imp_security_05.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('command_security_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/commander_byrne.py b/scripts/mobiles/generic/faction/imperial/commander_byrne.py
new file mode 100644
index 00000000..c188b7f2
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/commander_byrne.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('commander_byrne')
+ mobileTemplate.setLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_lian_byrne.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('commander_byrne', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/crackdown_stormtrooper_captain.py b/scripts/mobiles/generic/faction/imperial/crackdown_stormtrooper_captain.py
new file mode 100644
index 00000000..77046a4a
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/crackdown_stormtrooper_captain.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_army_captain_hard')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_captain_black_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_captain_black_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_captain_white_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('crackdown_stormtrooper_captain_hard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/dark_nova_trooper.py b/scripts/mobiles/generic/faction/imperial/dark_nova_trooper.py
new file mode 100644
index 00000000..2bc2b28d
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/dark_nova_trooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stormtrooper_dark_trooper_novatrooper')
+ mobileTemplate.setLevel(82)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_trooper_black_hole.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dark_novatrooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/dark_trooper.py b/scripts/mobiles/generic/faction/imperial/dark_trooper.py
new file mode 100644
index 00000000..079d3c25
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/dark_trooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dark_trooper')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dark_trooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dark_trooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/decorated_imperial_colonel_50.py b/scripts/mobiles/generic/faction/imperial/decorated_imperial_colonel_50.py
new file mode 100644
index 00000000..3779e04f
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/decorated_imperial_colonel_50.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_colonel_hard')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_colonel_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('decorated_imperial_col_50', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/decorated_imperial_colonel_87.py b/scripts/mobiles/generic/faction/imperial/decorated_imperial_colonel_87.py
new file mode 100644
index 00000000..3a766343
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/decorated_imperial_colonel_87.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_colonel_hard')
+ mobileTemplate.setLevel(87)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_colonel_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('decorated_imperial_col_87', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/detention_security_guard.py b/scripts/mobiles/generic/faction/imperial/detention_security_guard.py
new file mode 100644
index 00000000..b45bb0d6
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/detention_security_guard.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('detention_security_guard')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stormtrooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('detention_security_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/droid_corps_junior_technican.py b/scripts/mobiles/generic/faction/imperial/droid_corps_junior_technican.py
new file mode 100644
index 00000000..937a96dc
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/droid_corps_junior_technican.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_probot_handler')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_mechanic_nils_cridmeen.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_striker.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('droid_corps_junior_technican', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_dark_trooper.py b/scripts/mobiles/generic/faction/imperial/elite_dark_trooper.py
new file mode 100644
index 00000000..cb8084be
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_dark_trooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dark_trooper')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dark_trooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dark_trooper_elite', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_exogen_class_dark_trooper.py b/scripts/mobiles/generic/faction/imperial/elite_exogen_class_dark_trooper.py
new file mode 100644
index 00000000..8a494ecf
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_exogen_class_dark_trooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_elite_dark_trooper')
+ mobileTemplate.setLevel(88)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_assault_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('exogen_dark_trooper_elite', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_master_sergant_34.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_master_sergant_34.py
new file mode 100644
index 00000000..34770523
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_master_sergant_34.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_master_sergeant_hard')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_black.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_master_serg_34', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_master_sergant_79.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_master_sergant_79.py
new file mode 100644
index 00000000..9bc7c6d1
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_master_sergant_79.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_master_sergeant_hard')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_black.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_master_serg_79', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_sand_trooper_50.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_sand_trooper_50.py
new file mode 100644
index 00000000..59417fe9
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_sand_trooper_50.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_sand_trooper_hard')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sand_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_sand_trooper_50', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_sand_trooper_85.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_sand_trooper_85.py
new file mode 100644
index 00000000..93202c44
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_sand_trooper_85.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_sand_trooper_hard')
+ mobileTemplate.setLevel(85)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sand_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_sand_trooper_85', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_scout_trooper_45.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_scout_trooper_45.py
new file mode 100644
index 00000000..19011c10
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_scout_trooper_45.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_scout_trooper_hard')
+ mobileTemplate.setLevel(45)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_scout_trooper_white_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_scout_trooper_45', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_scout_trooper_84.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_scout_trooper_84.py
new file mode 100644
index 00000000..dab6c43f
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_scout_trooper_84.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_scout_trooper_hard')
+ mobileTemplate.setLevel(84)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_scout_trooper_white_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_scout_trooper_84', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_security_guard_25.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_security_guard_25.py
new file mode 100644
index 00000000..38d9f5cf
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_security_guard_25.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_command_security_guard_hard')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_black.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_secuirty_guard_25', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_security_guard_76.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_security_guard_76.py
new file mode 100644
index 00000000..d59d4eb2
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_security_guard_76.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_command_security_guard_hard')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_black.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_secuirty_guard_76', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_stormcaptain.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormcaptain.py
new file mode 100644
index 00000000..93678b38
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormcaptain.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_captain')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_captain_black_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_captain_black_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_captain_white_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_stormcaptain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_stormrifle_50.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormrifle_50.py
new file mode 100644
index 00000000..387bf8b8
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormrifle_50.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_rifleman_hard')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_rifleman_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_stormrifle_50', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_stormrifle_85.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormrifle_85.py
new file mode 100644
index 00000000..1f04d9f6
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormrifle_85.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_rifleman_hard')
+ mobileTemplate.setLevel(85)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_rifleman_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_stormrifle_85', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_stormrifle_88.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormrifle_88.py
new file mode 100644
index 00000000..f20a9ca7
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormrifle_88.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_rifleman_hard')
+ mobileTemplate.setLevel(88)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_rifleman_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_stormrifle_88', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_stormsniper_50.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormsniper_50.py
new file mode 100644
index 00000000..9f4c25cb
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormsniper_50.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_sniper_hard')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sniper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_stormsniper_50', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_stormsniper_85.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormsniper_85.py
new file mode 100644
index 00000000..7acccd0a
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormsniper_85.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_sniper_hard')
+ mobileTemplate.setLevel(85)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sniper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_stormsniper_85', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_stormsniper_89.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormsniper_89.py
new file mode 100644
index 00000000..ae834b53
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormsniper_89.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_sniper_hard')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sniper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_stormsniper_89', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_stormtrooper_50.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormtrooper_50.py
new file mode 100644
index 00000000..70ad5c82
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormtrooper_50.py
@@ -0,0 +1,52 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_hard')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_blue.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_green.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_grey.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_red.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_white.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_blue.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_green.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_grey.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_red.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_stormrifle_50', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_stormtrooper_84.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormtrooper_84.py
new file mode 100644
index 00000000..2e8ef43a
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormtrooper_84.py
@@ -0,0 +1,52 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_hard')
+ mobileTemplate.setLevel(84)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_blue.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_green.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_grey.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_red.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_white.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_blue.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_green.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_grey.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_red.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_stormrifle_84', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_imperial_stormtrooper_89.py b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormtrooper_89.py
new file mode 100644
index 00000000..6ca7b509
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_imperial_stormtrooper_89.py
@@ -0,0 +1,52 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_hard')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_blue.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_green.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_grey.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_red.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_white.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_blue.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_green.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_grey.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_red.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_white_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_imperial_stormrifle_89', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_novatrooper.py b/scripts/mobiles/generic/faction/imperial/elite_novatrooper.py
new file mode 100644
index 00000000..1ef82853
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_novatrooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stormtrooper_novatrooper_elite')
+ mobileTemplate.setLevel(82)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_restuss_dark_trooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_novatrooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_novatrooper_commander.py b/scripts/mobiles/generic/faction/imperial/elite_novatrooper_commander.py
new file mode 100644
index 00000000..67c5d347
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_novatrooper_commander.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stormtrooper_novatrooper_elite_commander')
+ mobileTemplate.setLevel(83)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_restuss_dark_trooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_novatrooper_commander', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_45_1.py b/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_45_1.py
new file mode 100644
index 00000000..d2603a01
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_45_1.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_elite_sand_trooper')
+ mobileTemplate.setLevel(45)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sandtrooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_sandtrooper_45_1', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_45_2.py b/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_45_2.py
new file mode 100644
index 00000000..d4814148
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_45_2.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_elite_sand_trooper')
+ mobileTemplate.setLevel(45)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sandtrooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_sandtrooper_45_2', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_81.py b/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_81.py
new file mode 100644
index 00000000..e58e3f32
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_81.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_elite_sand_trooper')
+ mobileTemplate.setLevel(81)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sandtrooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_sandtrooper_81', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_commando_75.py b/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_commando_75.py
new file mode 100644
index 00000000..acc542e9
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_commando_75.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_elite_sand_trooper_hard')
+ mobileTemplate.setLevel(75)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sandtrooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_sandtrooper_commando_75', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_commando_87.py b/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_commando_87.py
new file mode 100644
index 00000000..43261c13
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_commando_87.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_elite_sand_trooper_hard')
+ mobileTemplate.setLevel(87)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sandtrooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_sandtrooper_commando_87', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_commando_vet.py b/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_commando_vet.py
new file mode 100644
index 00000000..c506a64c
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/elite_sand_trooper_commando_vet.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_elite_sand_trooper_extreme')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sandtrooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_sandtrooper_commando_vet', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/emperors_hand.py b/scripts/mobiles/generic/faction/imperial/emperors_hand.py
new file mode 100644
index 00000000..65456f74
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/emperors_hand.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('emperors_hand')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_emperors_hand_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_emperors_hand_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_emperors_hand_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_emperors_hand_zabrak_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('emperors_hand', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/eow_fbase_imperial_corporal.py b/scripts/mobiles/generic/faction/imperial/eow_fbase_imperial_corporal.py
new file mode 100644
index 00000000..7cca0708
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/eow_fbase_imperial_corporal.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eow_fbase_imperial_corporal')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ #mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_captain_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ #mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ #mobileTemplate.setDefaultAttack('rangedShot')
+ #mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('eow_fbase_imperial_corporal', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/eow_fbase_stormtrooper.py b/scripts/mobiles/generic/faction/imperial/eow_fbase_stormtrooper.py
new file mode 100644
index 00000000..10a31f91
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/eow_fbase_stormtrooper.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eow_fbase_stormtrooper')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ #mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ #mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ #mobileTemplate.setDefaultAttack('rangedShot')
+ #mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('eow_fbase_stormtrooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/exogen_class_dark_trooper.py b/scripts/mobiles/generic/faction/imperial/exogen_class_dark_trooper.py
new file mode 100644
index 00000000..74c29bc2
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/exogen_class_dark_trooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_elite_dark_trooper')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dark_trooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('exogen_dark_trooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/experienced_imp_captain_45.py b/scripts/mobiles/generic/faction/imperial/experienced_imp_captain_45.py
new file mode 100644
index 00000000..feeb06c8
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/experienced_imp_captain_45.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_army_captain_hard')
+ mobileTemplate.setLevel(45)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_captain_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('exp_imp_captain_45', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/experienced_imp_captain_85.py b/scripts/mobiles/generic/faction/imperial/experienced_imp_captain_85.py
new file mode 100644
index 00000000..47a000b1
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/experienced_imp_captain_85.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_army_captain_hard')
+ mobileTemplate.setLevel(85)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_captain_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('exp_imp_captain_85', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/experienced_imp_corporal_40.py b/scripts/mobiles/generic/faction/imperial/experienced_imp_corporal_40.py
new file mode 100644
index 00000000..82fa8c0f
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/experienced_imp_corporal_40.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_corporal_hard')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_captain_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('exp_imp_corporal_40', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/experienced_imp_corporal_78.py b/scripts/mobiles/generic/faction/imperial/experienced_imp_corporal_78.py
new file mode 100644
index 00000000..f006a0a0
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/experienced_imp_corporal_78.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_corporal_hard')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_captain_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('exp_imp_corporal_78', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/general_otto.py b/scripts/mobiles/generic/faction/imperial/general_otto.py
new file mode 100644
index 00000000..37ae9e0b
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/general_otto.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('general_otto')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_general_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('general_otto', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/glory_class_dark_trooper.py b/scripts/mobiles/generic/faction/imperial/glory_class_dark_trooper.py
new file mode 100644
index 00000000..8ef5350a
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/glory_class_dark_trooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_dark_trooper_hard')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sand_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('glory_trooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/glory_class_dark_trooper_2.py b/scripts/mobiles/generic/faction/imperial/glory_class_dark_trooper_2.py
new file mode 100644
index 00000000..75645b7d
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/glory_class_dark_trooper_2.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_dark_trooper_hard')
+ mobileTemplate.setLevel(86)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sand_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('glory_trooper_2', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/grizzled_elite_sand_trooper.py b/scripts/mobiles/generic/faction/imperial/grizzled_elite_sand_trooper.py
new file mode 100644
index 00000000..a2d8637c
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/grizzled_elite_sand_trooper.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_scout_trooper_extreme')
+ mobileTemplate.setLevel(88)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_scout_trooper_white_white.iff')
+ templates.add('object/mobile/shared_dressed_scout_trooper_m.iff')
+ templates.add('object/mobile/shared_dressed_scout_trooper_black_black.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('grizzled_elite_scouttrooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/grizzled_elite_scout_trooper.py b/scripts/mobiles/generic/faction/imperial/grizzled_elite_scout_trooper.py
new file mode 100644
index 00000000..319b009b
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/grizzled_elite_scout_trooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_sand_trooper_extreme')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sandtrooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('grizzled_elite_sandtrooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/grizzled_imp_colonel.py b/scripts/mobiles/generic/faction/imperial/grizzled_imp_colonel.py
new file mode 100644
index 00000000..9e77381c
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/grizzled_imp_colonel.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_imperial_colonel_extreme')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_colonel_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('grizzled_imp_colonel', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/grizzled_imp_exterminator.py b/scripts/mobiles/generic/faction/imperial/grizzled_imp_exterminator.py
new file mode 100644
index 00000000..e4dc431c
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/grizzled_imp_exterminator.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_imperial_exterminator_extreme')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_exterminator.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('grizzled_imp_exterminator', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/gunner.py b/scripts/mobiles/generic/faction/imperial/gunner.py
new file mode 100644
index 00000000..553f3928
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/gunner.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_gunner')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_gunner_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gunner', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/hardened_swamp_trooper_25.py b/scripts/mobiles/generic/faction/imperial/hardened_swamp_trooper_25.py
new file mode 100644
index 00000000..aecc489a
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/hardened_swamp_trooper_25.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_swamp_trooper_hard')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_swamp_trooper.iff')
+ templates.add('object/mobile/shared_dressed_swamp_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('hardened_swamp_troop_25', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/high_colonel.py b/scripts/mobiles/generic/faction/imperial/high_colonel.py
new file mode 100644
index 00000000..b2686056
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/high_colonel.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('high_colonel')
+ mobileTemplate.setLevel(24)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_colonel_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('high_colonel', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_1st_lieutenant_20.py b/scripts/mobiles/generic/faction/imperial/imp_1st_lieutenant_20.py
new file mode 100644
index 00000000..fc042194
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_1st_lieutenant_20.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_first_lieutenant')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_lieutenant_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_fst_lieutenant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_1st_lieutenant_20_2.py b/scripts/mobiles/generic/faction/imperial/imp_1st_lieutenant_20_2.py
new file mode 100644
index 00000000..4a4f3898
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_1st_lieutenant_20_2.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_first_lieutenant')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_lieutenant_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_fst_lieutenant_20_2', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_1st_lieutenant_68.py b/scripts/mobiles/generic/faction/imperial/imp_1st_lieutenant_68.py
new file mode 100644
index 00000000..620ad55b
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_1st_lieutenant_68.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_first_lieutenant')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_lieutenant_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_fst_lieutenant_68', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_army_captain.py b/scripts/mobiles/generic/faction/imperial/imp_army_captain.py
new file mode 100644
index 00000000..82b6cfaf
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_army_captain.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_army_captain')
+ mobileTemplate.setLevel(21)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_captain_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_army_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_assault_trooper.py b/scripts/mobiles/generic/faction/imperial/imp_assault_trooper.py
new file mode 100644
index 00000000..ecc796be
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_assault_trooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('assault_trooper')
+ mobileTemplate.setLevel(26)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_assault_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_assault_trooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_assault_trooper_squad_leader.py b/scripts/mobiles/generic/faction/imperial/imp_assault_trooper_squad_leader.py
new file mode 100644
index 00000000..d891d25e
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_assault_trooper_squad_leader.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_squad_leader')
+ mobileTemplate.setLevel(27)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_assault_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_assault_trooper_squadleader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_bombardier_25.py b/scripts/mobiles/generic/faction/imperial/imp_bombardier_25.py
new file mode 100644
index 00000000..175e508a
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_bombardier_25.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_bombardier')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_bombardier_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_bombardier_25', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_bombardier_75.py b/scripts/mobiles/generic/faction/imperial/imp_bombardier_75.py
new file mode 100644
index 00000000..f011ed76
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_bombardier_75.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_bombardier')
+ mobileTemplate.setLevel(75)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_bombardier_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_bombardier_75', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_brigadier_general.py b/scripts/mobiles/generic/faction/imperial/imp_brigadier_general.py
new file mode 100644
index 00000000..43d93116
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_brigadier_general.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_brigadier_general')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_general_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imperial_brigadier_general', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_cadet.py b/scripts/mobiles/generic/faction/imperial/imp_cadet.py
new file mode 100644
index 00000000..bf6dc621
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_cadet.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_cadet')
+ mobileTemplate.setLevel(7)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_soldier_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_cadet', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_cadet_squad.py b/scripts/mobiles/generic/faction/imperial/imp_cadet_squad.py
new file mode 100644
index 00000000..b85ebda8
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_cadet_squad.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_cadet_squadleader')
+ mobileTemplate.setLevel(7)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_soldier_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_cadet_squadl', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_captain_21.py b/scripts/mobiles/generic/faction/imperial/imp_captain_21.py
new file mode 100644
index 00000000..f1ed31c4
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_captain_21.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_army_captain')
+ mobileTemplate.setLevel(21)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_captain_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_captain_21', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_captain_69.py b/scripts/mobiles/generic/faction/imperial/imp_captain_69.py
new file mode 100644
index 00000000..29438eaf
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_captain_69.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_army_captain')
+ mobileTemplate.setLevel(69)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_captain_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_captain_69', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_colonel.py b/scripts/mobiles/generic/faction/imperial/imp_colonel.py
new file mode 100644
index 00000000..9e77381c
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_colonel.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_imperial_colonel_extreme')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_colonel_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('grizzled_imp_colonel', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_colonel_23.py b/scripts/mobiles/generic/faction/imperial/imp_colonel_23.py
new file mode 100644
index 00000000..c939f22d
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_colonel_23.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_colonel')
+ mobileTemplate.setLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_colonel_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_colonel_23', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_colonel_77.py b/scripts/mobiles/generic/faction/imperial/imp_colonel_77.py
new file mode 100644
index 00000000..2320abb5
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_colonel_77.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_colonel')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_colonel_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_colonel_77', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_comm_security_guard_15.py b/scripts/mobiles/generic/faction/imperial/imp_comm_security_guard_15.py
new file mode 100644
index 00000000..e710c3ff
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_comm_security_guard_15.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_command_security_guard')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_comm_security_guard_15', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_comm_security_guard_67.py b/scripts/mobiles/generic/faction/imperial/imp_comm_security_guard_67.py
new file mode 100644
index 00000000..6ddd90d2
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_comm_security_guard_67.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_command_security_guard')
+ mobileTemplate.setLevel(67)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_comm_security_guard_67', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_comm_specialist_35.py b/scripts/mobiles/generic/faction/imperial/imp_comm_specialist_35.py
new file mode 100644
index 00000000..56493dc3
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_comm_specialist_35.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_comm_operator_hard')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_comm_specialist_77', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_comm_specialist_77.py b/scripts/mobiles/generic/faction/imperial/imp_comm_specialist_77.py
new file mode 100644
index 00000000..1685a7df
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_comm_specialist_77.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_comm_operator_hard')
+ mobileTemplate.setLevel(35)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_comm_specialist_35', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_commop_14.py b/scripts/mobiles/generic/faction/imperial/imp_commop_14.py
new file mode 100644
index 00000000..6084ef71
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_commop_14.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_comm_operator')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_comm_op_14', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_commop_64.py b/scripts/mobiles/generic/faction/imperial/imp_commop_64.py
new file mode 100644
index 00000000..2dbf9a69
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_commop_64.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_comm_operator')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_comm_op_64', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_corporal_16.py b/scripts/mobiles/generic/faction/imperial/imp_corporal_16.py
new file mode 100644
index 00000000..a76dbe4d
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_corporal_16.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_corporal')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_corporal_16', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_corporal_66.py b/scripts/mobiles/generic/faction/imperial/imp_corporal_66.py
new file mode 100644
index 00000000..ac377ff2
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_corporal_66.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_corporal')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_corporal_66', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_dead-eye_36.py b/scripts/mobiles/generic/faction/imperial/imp_dead-eye_36.py
new file mode 100644
index 00000000..d43d6bc0
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_dead-eye_36.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_sharpshooter_hard')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_dead-eye_36', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_dead-eye_78.py b/scripts/mobiles/generic/faction/imperial/imp_dead-eye_78.py
new file mode 100644
index 00000000..4a87a4a1
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_dead-eye_78.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_sharpshooter_hard')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_dead-eye_78', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_exterminator.py b/scripts/mobiles/generic/faction/imperial/imp_exterminator.py
new file mode 100644
index 00000000..9ccb2c04
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_exterminator.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_exterminator')
+ mobileTemplate.setLevel(28)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_exterminator.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_exterminator', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_general.py b/scripts/mobiles/generic/faction/imperial/imp_general.py
new file mode 100644
index 00000000..dfc7f87e
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_general.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_general')
+ mobileTemplate.setLevel(28)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_general_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_general', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_high_general.py b/scripts/mobiles/generic/faction/imperial/imp_high_general.py
new file mode 100644
index 00000000..2c20bb4e
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_high_general.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_high_general')
+ mobileTemplate.setLevel(29)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_general_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_high_general', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_inquisitor_80.py b/scripts/mobiles/generic/faction/imperial/imp_inquisitor_80.py
new file mode 100644
index 00000000..c07118cd
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_inquisitor_80.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_inquisitor')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_inquisitor_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_imperial_inquisitor_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_imperial_inquisitor_human_male_03.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/baton/shared_baton_stun.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_inquisitor_80', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_inquisitor_83.py b/scripts/mobiles/generic/faction/imperial/imp_inquisitor_83.py
new file mode 100644
index 00000000..19e156a3
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_inquisitor_83.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_inquisitor')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_inquisitor_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_imperial_inquisitor_human_male_02.iff')
+ templates.add('object/mobile/shared_dressed_imperial_inquisitor_human_male_03.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_corporal_16', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_lance_corporal.py b/scripts/mobiles/generic/faction/imperial/imp_lance_corporal.py
new file mode 100644
index 00000000..e5810fcd
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_lance_corporal.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_lance_corporal')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_lance_corp', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_lieutenant_colonel.py b/scripts/mobiles/generic/faction/imperial/imp_lieutenant_colonel.py
new file mode 100644
index 00000000..0cc698bd
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_lieutenant_colonel.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_lieutenant_colonel')
+ mobileTemplate.setLevel(22)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_colonel_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_lieutenant_colonel', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_lieutenant_general.py b/scripts/mobiles/generic/faction/imperial/imp_lieutenant_general.py
new file mode 100644
index 00000000..b6e52466
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_lieutenant_general.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_lieutenant_general')
+ mobileTemplate.setLevel(27)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_general_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_lieutenant_general', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_major.py b/scripts/mobiles/generic/faction/imperial/imp_major.py
new file mode 100644
index 00000000..aaf2b9ff
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_major.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_major')
+ mobileTemplate.setLevel(21)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_major_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_major', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_major_general.py b/scripts/mobiles/generic/faction/imperial/imp_major_general.py
new file mode 100644
index 00000000..04edf015
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_major_general.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_major_general')
+ mobileTemplate.setLevel(26)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_general_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_major_general', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_master_sergant_18.py b/scripts/mobiles/generic/faction/imperial/imp_master_sergant_18.py
new file mode 100644
index 00000000..ce9f08e6
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_master_sergant_18.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_master_sergeant')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_master_sergant_18', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_master_sergant_67.py b/scripts/mobiles/generic/faction/imperial/imp_master_sergant_67.py
new file mode 100644
index 00000000..99e92ad0
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_master_sergant_67.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_master_sergeant')
+ mobileTemplate.setLevel(67)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_master_sergant_67', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_medic_16.py b/scripts/mobiles/generic/faction/imperial/imp_medic_16.py
new file mode 100644
index 00000000..e9f46309
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_medic_16.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_medic')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_medic1_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_imperial_medic3_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_medic_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_medic_16', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_medic_65.py b/scripts/mobiles/generic/faction/imperial/imp_medic_65.py
new file mode 100644
index 00000000..eabbc37a
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_medic_65.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_medic')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_medic1_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_imperial_medic3_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_medic_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_medic_65', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_noncom_14.py b/scripts/mobiles/generic/faction/imperial/imp_noncom_14.py
new file mode 100644
index 00000000..84223f52
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_noncom_14.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_noncom')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_noncom_14', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_noncom_64.py b/scripts/mobiles/generic/faction/imperial/imp_noncom_64.py
new file mode 100644
index 00000000..23594506
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_noncom_64.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_noncom')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_noncom_64', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_pilot.py b/scripts/mobiles/generic/faction/imperial/imp_pilot.py
new file mode 100644
index 00000000..f9b46448
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_pilot.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('storyteller_imperial_pilot')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tie_pilot_f.iff')
+ templates.add('object/mobile/shared_tie_pilot_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_pilot', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_private.py b/scripts/mobiles/generic/faction/imperial/imp_private.py
new file mode 100644
index 00000000..1439ad02
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_private.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_private')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_private', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_sandtrooper_25.py b/scripts/mobiles/generic/faction/imperial/imp_sandtrooper_25.py
new file mode 100644
index 00000000..2aa37cfd
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_sandtrooper_25.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_sand_trooper')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sand_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_sandtrooper_25', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_sandtrooper_75.py b/scripts/mobiles/generic/faction/imperial/imp_sandtrooper_75.py
new file mode 100644
index 00000000..39250a46
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_sandtrooper_75.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_sand_trooper')
+ mobileTemplate.setLevel(75)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sand_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_sandtrooper_75', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_scouttrooper_23.py b/scripts/mobiles/generic/faction/imperial/imp_scouttrooper_23.py
new file mode 100644
index 00000000..91c361f7
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_scouttrooper_23.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_scout_trooper')
+ mobileTemplate.setLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_scout_trooper_white_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_scout_trooper_23', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_scouttrooper_67.py b/scripts/mobiles/generic/faction/imperial/imp_scouttrooper_67.py
new file mode 100644
index 00000000..2e6eff56
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_scouttrooper_67.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_scout_trooper')
+ mobileTemplate.setLevel(67)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_scout_trooper_white_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_scout_trooper_67', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_second_lieutenant.py b/scripts/mobiles/generic/faction/imperial/imp_second_lieutenant.py
new file mode 100644
index 00000000..3ba3a6dc
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_second_lieutenant.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_second_lieutenant')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_lieutenant_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_2nd_lieutenant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_senior_cadet.py b/scripts/mobiles/generic/faction/imperial/imp_senior_cadet.py
new file mode 100644
index 00000000..f02086f2
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_senior_cadet.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_senior_cadet')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_soldier_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_senior_cadet', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_sergeant_16.py b/scripts/mobiles/generic/faction/imperial/imp_sergeant_16.py
new file mode 100644
index 00000000..668fa8f3
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_sergeant_16.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_sergeant')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_sergeant_16', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_sergeant_65.py b/scripts/mobiles/generic/faction/imperial/imp_sergeant_65.py
new file mode 100644
index 00000000..60e57e86
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_sergeant_65.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_sergeant')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_sergeant_65', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_sergeant_major.py b/scripts/mobiles/generic/faction/imperial/imp_sergeant_major.py
new file mode 100644
index 00000000..499f8f66
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_sergeant_major.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_sergeant_major')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_sergeant_major', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_sharpshooter_17.py b/scripts/mobiles/generic/faction/imperial/imp_sharpshooter_17.py
new file mode 100644
index 00000000..36d399f6
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_sharpshooter_17.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_sharpshooter')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_sharpshooter_17', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_sharpshooter_66.py b/scripts/mobiles/generic/faction/imperial/imp_sharpshooter_66.py
new file mode 100644
index 00000000..d729278f
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_sharpshooter_66.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_sharpshooter')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_sharpshooter_66', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_specialist_13.py b/scripts/mobiles/generic/faction/imperial/imp_specialist_13.py
new file mode 100644
index 00000000..1428ffd7
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_specialist_13.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_specialist_noncom')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_specialist_13', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_specialist_65.py b/scripts/mobiles/generic/faction/imperial/imp_specialist_65.py
new file mode 100644
index 00000000..3ef94922
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_specialist_65.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_specialist_noncom')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_specialist_65', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_staff_corporal.py b/scripts/mobiles/generic/faction/imperial/imp_staff_corporal.py
new file mode 100644
index 00000000..ee337374
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_staff_corporal.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_staff_corporal')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_staff_corp', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_staff_sergeant.py b/scripts/mobiles/generic/faction/imperial/imp_staff_sergeant.py
new file mode 100644
index 00000000..8addc0e6
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_staff_sergeant.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_staff_sergeant')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_staff_serg', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stealth_operative.py b/scripts/mobiles/generic/faction/imperial/imp_stealth_operative.py
new file mode 100644
index 00000000..92a7fceb
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stealth_operative.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('assassin_mission_recruiter_imperial')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stealth_op', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_storm_captain_29.py b/scripts/mobiles/generic/faction/imperial/imp_storm_captain_29.py
new file mode 100644
index 00000000..36c2b05c
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_storm_captain_29.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_captain')
+ mobileTemplate.setLevel(29)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_captain_black_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_captain_black_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_captain_white_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_storm_captain_29', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_storm_captain_81.py b/scripts/mobiles/generic/faction/imperial/imp_storm_captain_81.py
new file mode 100644
index 00000000..7e87dda5
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_storm_captain_81.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_captain')
+ mobileTemplate.setLevel(81)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_captain_black_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_captain_black_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_captain_white_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_storm_captain_81', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_storm_commando_29.py b/scripts/mobiles/generic/faction/imperial/imp_storm_commando_29.py
new file mode 100644
index 00000000..2b462191
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_storm_commando_29.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_storm_commando')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_commando_m.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_commando1_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_storm_commando_16', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_storm_commando_80.py b/scripts/mobiles/generic/faction/imperial/imp_storm_commando_80.py
new file mode 100644
index 00000000..7fff379e
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_storm_commando_80.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_storm_commando')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_commando_m.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_commando1_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_storm_commando_80', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormmedic_25.py b/scripts/mobiles/generic/faction/imperial/imp_stormmedic_25.py
new file mode 100644
index 00000000..39761871
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormmedic_25.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_medic')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_medic1_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_imperial_medic3_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_medic_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormmedic_25', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormmedic_74.py b/scripts/mobiles/generic/faction/imperial/imp_stormmedic_74.py
new file mode 100644
index 00000000..7072dac1
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormmedic_74.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_medic')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_medic1_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_imperial_medic3_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_medic_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormmedic_74', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormrifle_25.py b/scripts/mobiles/generic/faction/imperial/imp_stormrifle_25.py
new file mode 100644
index 00000000..d05826ec
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormrifle_25.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_rifleman')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_rifleman_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormrifle_25', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormrifle_79.py b/scripts/mobiles/generic/faction/imperial/imp_stormrifle_79.py
new file mode 100644
index 00000000..a0d32eb9
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormrifle_79.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_rifleman')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_rifleman_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormrifle_79', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormsniper_25.py b/scripts/mobiles/generic/faction/imperial/imp_stormsniper_25.py
new file mode 100644
index 00000000..5e597eca
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormsniper_25.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_sniper')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sniper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormsniper_25', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormsniper_79.py b/scripts/mobiles/generic/faction/imperial/imp_stormsniper_79.py
new file mode 100644
index 00000000..eb5b16aa
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormsniper_79.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_sniper')
+ mobileTemplate.setLevel(75)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sniper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormsniper_75', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormsurgeon_50.py b/scripts/mobiles/generic/faction/imperial/imp_stormsurgeon_50.py
new file mode 100644
index 00000000..8794f0c7
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormsurgeon_50.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_medic_hard')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_medic1_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_imperial_medic3_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_medic_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormsurgeon_50', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormsurgeon_85.py b/scripts/mobiles/generic/faction/imperial/imp_stormsurgeon_85.py
new file mode 100644
index 00000000..75cdf96b
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormsurgeon_85.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_medic_hard')
+ mobileTemplate.setLevel(85)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_medic1_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_imperial_medic3_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_medic_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormsurgeon_85', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormsurgeon_89.py b/scripts/mobiles/generic/faction/imperial/imp_stormsurgeon_89.py
new file mode 100644
index 00000000..4cb9f5e4
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormsurgeon_89.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper_medic_hard')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_medic1_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_imperial_medic3_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_medic_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormsurgeon_89', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_25.py b/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_25.py
new file mode 100644
index 00000000..9951511e
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_25.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stormtrooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormtrooper_25', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_80.py b/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_80.py
new file mode 100644
index 00000000..20617178
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_80.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_stormtrooper')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stormtrooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormtrooper_80', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_colonel_55.py b/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_colonel_55.py
new file mode 100644
index 00000000..fa22af52
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_colonel_55.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_stormtrooper_squad_leader_extreme')
+ mobileTemplate.setLevel(55)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stormtrooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormtrooper_colonel_55', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_colonel_86.py b/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_colonel_86.py
new file mode 100644
index 00000000..9ffb1607
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_colonel_86.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_stormtrooper_squad_leader_extreme')
+ mobileTemplate.setLevel(86)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stormtrooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormtrooper_colonel_86', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_colonel_89.py b/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_colonel_89.py
new file mode 100644
index 00000000..a40e5ebb
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_colonel_89.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_stormtrooper_squad_leader_extreme')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stormtrooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormtrooper_colonel_89', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_squad_leader_27.py b/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_squad_leader_27.py
new file mode 100644
index 00000000..91695b01
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_squad_leader_27.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_stormtrooper_squad_leader')
+ mobileTemplate.setLevel(27)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stormtrooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormtrooper_squad_leader_27', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_squad_leader_76.py b/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_squad_leader_76.py
new file mode 100644
index 00000000..75cd634f
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_stormtrooper_squad_leader_76.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_stormtrooper_squad_leader')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stormtrooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_stormtrooper_squad_leader_76', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_surface_marshall.py b/scripts/mobiles/generic/faction/imperial/imp_surface_marshall.py
new file mode 100644
index 00000000..9c94d781
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_surface_marshall.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_surface_marshal')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_surface_marshall', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_surgeon_33.py b/scripts/mobiles/generic/faction/imperial/imp_surgeon_33.py
new file mode 100644
index 00000000..869eb854
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_surgeon_33.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_medic_hard')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_medic1_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_imperial_medic3_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_medic_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_surgeon_33', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_surgeon_77.py b/scripts/mobiles/generic/faction/imperial/imp_surgeon_77.py
new file mode 100644
index 00000000..b63705b1
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_surgeon_77.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_medic_hard')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_medic1_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_imperial_medic3_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_medic_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_surgeon_77', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_swamp_trooper.py b/scripts/mobiles/generic/faction/imperial/imp_swamp_trooper.py
new file mode 100644
index 00000000..65c794b1
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_swamp_trooper.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_swamp_trooper')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_swamp_trooper.iff')
+ templates.add('object/mobile/shared_dressed_swamp_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('swamp_trooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_trooper.py b/scripts/mobiles/generic/faction/imperial/imp_trooper.py
new file mode 100644
index 00000000..3c37938c
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_trooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_trooper')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stormtrooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_trooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_warant_officer_i.py b/scripts/mobiles/generic/faction/imperial/imp_warant_officer_i.py
new file mode 100644
index 00000000..9bb2e1ef
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_warant_officer_i.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_warrant_officer_i')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_warrant_offi_i', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_warant_officer_ii.py b/scripts/mobiles/generic/faction/imperial/imp_warant_officer_ii.py
new file mode 100644
index 00000000..d0bc9036
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_warant_officer_ii.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_warrant_officer_ii')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_warrant_offi_ii', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_warant_officer_ii_1st_class_33.py b/scripts/mobiles/generic/faction/imperial/imp_warant_officer_ii_1st_class_33.py
new file mode 100644
index 00000000..d2007979
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_warant_officer_ii_1st_class_33.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_warrant_officer_ii_hard')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_warrant_offi_1st_class_ii_33', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_warant_officer_ii_1st_class_79.py b/scripts/mobiles/generic/faction/imperial/imp_warant_officer_ii_1st_class_79.py
new file mode 100644
index 00000000..90b8f652
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_warant_officer_ii_1st_class_79.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_warrant_officer_ii_hard')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_warrant_offi_1st_class_ii_79', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_warant_officer_ii_2nd_class_18.py b/scripts/mobiles/generic/faction/imperial/imp_warant_officer_ii_2nd_class_18.py
new file mode 100644
index 00000000..b08b94fc
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_warant_officer_ii_2nd_class_18.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_warrant_officer_ii')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_warrant_offi_2nd_class_ii_18', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imp_warant_officer_ii_2nd_class_67.py b/scripts/mobiles/generic/faction/imperial/imp_warant_officer_ii_2nd_class_67.py
new file mode 100644
index 00000000..412fed84
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imp_warant_officer_ii_2nd_class_67.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_warrant_officer_ii')
+ mobileTemplate.setLevel(67)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_warrant_offi_2nd_class_ii_67', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/imprisoned_imp_offi.py b/scripts/mobiles/generic/faction/imperial/imprisoned_imp_offi.py
new file mode 100644
index 00000000..1fdd9db7
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/imprisoned_imp_offi.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imprisoned_imperial')
+ mobileTemplate.setLevel(11)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('imp_imp_officer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/lance_bombardier.py b/scripts/mobiles/generic/faction/imperial/lance_bombardier.py
new file mode 100644
index 00000000..781ea7b3
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/lance_bombardier.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lance_bombardier')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_bombardier_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('lance_bombardier', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/lesser_prophet_dark.py b/scripts/mobiles/generic/faction/imperial/lesser_prophet_dark.py
new file mode 100644
index 00000000..3ab7b70d
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/lesser_prophet_dark.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lesser_prophet_of_the_dark_side')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(9)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_jedi_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gcw_s01_gen4.iff', 9, 1.0)
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gcw_s01_gen5.iff', 9, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('saberhit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('lesser_prophet_dark_side', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/master_prophet_dark.py b/scripts/mobiles/generic/faction/imperial/master_prophet_dark.py
new file mode 100644
index 00000000..a859156a
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/master_prophet_dark.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('master_prophet_of_the_dark_side')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(9)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_female_human_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_female_human_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_female_human_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_male_human_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_male_human_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_male_human_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_male_human_04.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gcw_s01_gen4.iff', 9, 1.0)
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gcw_s01_gen5.iff', 9, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('saberhit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('master_prophet_dark_side', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/nova_trooper.py b/scripts/mobiles/generic/faction/imperial/nova_trooper.py
new file mode 100644
index 00000000..8d1a09b8
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/nova_trooper.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stormtrooper_novatrooper')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_blue.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_green.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_grey.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_red.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('novatrooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/nova_trooper_cadet.py b/scripts/mobiles/generic/faction/imperial/nova_trooper_cadet.py
new file mode 100644
index 00000000..6304ed88
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/nova_trooper_cadet.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stormtrooper_novatrooper_cadet')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(8)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_blue.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_green.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_grey.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_red.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('novatrooper_cadet', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/nova_trooper_captain.py b/scripts/mobiles/generic/faction/imperial/nova_trooper_captain.py
new file mode 100644
index 00000000..58367eed
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/nova_trooper_captain.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stormtrooper_novatrooper_captain')
+ mobileTemplate.setLevel(82)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_blue.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_green.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_grey.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_red.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('novatrooper_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/nova_trooper_commander.py b/scripts/mobiles/generic/faction/imperial/nova_trooper_commander.py
new file mode 100644
index 00000000..f9a5d63e
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/nova_trooper_commander.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stormtrooper_novatrooper_commander')
+ mobileTemplate.setLevel(82)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_blue.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_green.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_grey.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_red.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('novatrooper_commander', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/nova_trooper_ensign.py b/scripts/mobiles/generic/faction/imperial/nova_trooper_ensign.py
new file mode 100644
index 00000000..2243e49a
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/nova_trooper_ensign.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stormtrooper_novatrooper_ensign')
+ mobileTemplate.setLevel(81)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_blue.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_green.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_grey.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_red.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('novatrooper_ensign', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/nova_trooper_medic.py b/scripts/mobiles/generic/faction/imperial/nova_trooper_medic.py
new file mode 100644
index 00000000..8ca2ac78
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/nova_trooper_medic.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stormtrooper_novatrooper_medic')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_blue.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_green.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_grey.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_red.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('novatrooper_medic', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/nova_trooper_squad_leader.py b/scripts/mobiles/generic/faction/imperial/nova_trooper_squad_leader.py
new file mode 100644
index 00000000..64e32a14
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/nova_trooper_squad_leader.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stormtrooper_novatrooper_squad_leader')
+ mobileTemplate.setLevel(81)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_blue.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_green.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_grey.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_red.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_black_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('novatrooper_squad_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/opressor_7_dark_trooper_80.py b/scripts/mobiles/generic/faction/imperial/opressor_7_dark_trooper_80.py
new file mode 100644
index 00000000..b3812249
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/opressor_7_dark_trooper_80.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_elite_dark_trooper_hard')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dark_trooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('opp_7_80', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/opressor_7_dark_trooper_88.py b/scripts/mobiles/generic/faction/imperial/opressor_7_dark_trooper_88.py
new file mode 100644
index 00000000..06b9629e
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/opressor_7_dark_trooper_88.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_elite_dark_trooper_extreme')
+ mobileTemplate.setLevel(88)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_trooper_black_hole.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('opp_7_88', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/opressor_9_dark_trooper.py b/scripts/mobiles/generic/faction/imperial/opressor_9_dark_trooper.py
new file mode 100644
index 00000000..d2ef9b48
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/opressor_9_dark_trooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_elite_dark_trooper_hard')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dark_trooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('opp_9', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/probot_drone.py b/scripts/mobiles/generic/faction/imperial/probot_drone.py
new file mode 100644
index 00000000..55374b6d
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/probot_drone.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_dark_trooper')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_probot.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('probot_drone', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/probot_seeker.py b/scripts/mobiles/generic/faction/imperial/probot_seeker.py
new file mode 100644
index 00000000..2ed5b8d6
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/probot_seeker.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_probot_drone')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_probot.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('probot_seeker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/prophet_dark.py b/scripts/mobiles/generic/faction/imperial/prophet_dark.py
new file mode 100644
index 00000000..1a5ed129
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/prophet_dark.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('prophet_of_the_dark_side')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(9)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_female_human_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_female_human_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_female_human_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_male_human_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_male_human_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_male_human_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_male_human_04.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gcw_s01_gen4.iff', 9, 1.0)
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gcw_s01_gen5.iff', 9, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('saberhit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('prophet_dark_side', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/sand_trooper.py b/scripts/mobiles/generic/faction/imperial/sand_trooper.py
new file mode 100644
index 00000000..9df51e20
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/sand_trooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_sand_trooper')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sand_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sandtrooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/scouttrooper.py b/scripts/mobiles/generic/faction/imperial/scouttrooper.py
new file mode 100644
index 00000000..7f3635bb
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/scouttrooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_scout_trooper')
+ mobileTemplate.setLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_scout_trooper_white_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('scouttrooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/senior_prophet_dark.py b/scripts/mobiles/generic/faction/imperial/senior_prophet_dark.py
new file mode 100644
index 00000000..db8ec696
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/senior_prophet_dark.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('senior_prophet_of_the_dark_side')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(9)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_female_human_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_female_human_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_female_human_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_male_human_01.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_male_human_02.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_male_human_03.iff')
+ templates.add('object/mobile/shared_dressed_dark_jedi_elder_male_human_04.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gcw_s01_gen4.iff', 9, 1.0)
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gcw_s01_gen5.iff', 9, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('saberhit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('senior_prophet_dark_side', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/signalman.py b/scripts/mobiles/generic/faction/imperial/signalman.py
new file mode 100644
index 00000000..3aca2683
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/signalman.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_signalman')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('signalman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/skilled_1st_lieutenant_35.py b/scripts/mobiles/generic/faction/imperial/skilled_1st_lieutenant_35.py
new file mode 100644
index 00000000..6d2f943e
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/skilled_1st_lieutenant_35.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_first_lieutenant_hard')
+ mobileTemplate.setLevel(35)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_lieutenant_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('skilled_1st_lieut_35', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/skilled_1st_lieutenant_80.py b/scripts/mobiles/generic/faction/imperial/skilled_1st_lieutenant_80.py
new file mode 100644
index 00000000..6c43928b
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/skilled_1st_lieutenant_80.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_imperial_first_lieutenant_hard')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_lieutenant_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('skilled_1st_lieut_80', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/special_missions_engineer.py b/scripts/mobiles/generic/faction/imperial/special_missions_engineer.py
new file mode 100644
index 00000000..34319439
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/special_missions_engineer.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_special_missions_engineer')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('special_missions_engineer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/specialis_noncom.py b/scripts/mobiles/generic/faction/imperial/specialis_noncom.py
new file mode 100644
index 00000000..3ac69bb8
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/specialis_noncom.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_specialist_noncom')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('special_noncom', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/storm_commando.py b/scripts/mobiles/generic/faction/imperial/storm_commando.py
new file mode 100644
index 00000000..14a4c0dc
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/storm_commando.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_storm_commando')
+ mobileTemplate.setLevel(29)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_commando_m.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_commando1_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stormcommando', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/stormtrooper.py b/scripts/mobiles/generic/faction/imperial/stormtrooper.py
new file mode 100644
index 00000000..9f61e58b
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/stormtrooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_stormtrooper')
+ mobileTemplate.setLevel(3)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(5)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stormtrooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stormtrooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/stormtrooper_2.py b/scripts/mobiles/generic/faction/imperial/stormtrooper_2.py
new file mode 100644
index 00000000..7e335032
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/stormtrooper_2.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_stormtrooper')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(5)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stormtrooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stormtrooper_2', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/stormtrooper_25.py b/scripts/mobiles/generic/faction/imperial/stormtrooper_25.py
new file mode 100644
index 00000000..2e1bee6a
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/stormtrooper_25.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_stormtrooper')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_dark_trooper_black_hole.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stormtrooper_25', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/super_battle_droid_imp.py b/scripts/mobiles/generic/faction/imperial/super_battle_droid_imp.py
new file mode 100644
index 00000000..82ccd9ff
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/super_battle_droid_imp.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('imperial_battle_droid')
+ mobileTemplate.setLevel(86)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_super_battle_droid.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sbd_imperials', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/triumphant_class_dark_trooper.py b/scripts/mobiles/generic/faction/imperial/triumphant_class_dark_trooper.py
new file mode 100644
index 00000000..11e1ee32
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/triumphant_class_dark_trooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_elite_dark_trooper_hard')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dark_trooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('opp_9', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_ imperial_storm_captain.py b/scripts/mobiles/generic/faction/imperial/veteran_ imperial_storm_captain.py
new file mode 100644
index 00000000..2012353a
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_ imperial_storm_captain.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_stormtrooper_captain')
+ mobileTemplate.setLevel(72)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_captain_black_black.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_captain_black_gold.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_captain_white_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_stormtrooper_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_ imperial_storm_commando.py b/scripts/mobiles/generic/faction/imperial/veteran_ imperial_storm_commando.py
new file mode 100644
index 00000000..1d9ee80d
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_ imperial_storm_commando.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_storm_commando')
+ mobileTemplate.setLevel(75)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_commando_m.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_commando1_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_storm_commando', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_ imperial_stormmedic.py b/scripts/mobiles/generic/faction/imperial/veteran_ imperial_stormmedic.py
new file mode 100644
index 00000000..ca8c8d06
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_ imperial_stormmedic.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_stormtrooper_medic')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_medic1_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_imperial_medic3_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_medic_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_stormtrooper_medic', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_ imperial_stormrifle.py b/scripts/mobiles/generic/faction/imperial/veteran_ imperial_stormrifle.py
new file mode 100644
index 00000000..514aff82
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_ imperial_stormrifle.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_stormtrooper_rifleman')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_rifleman_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_stormtrooper_rifleman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_ imperial_stormsniper.py b/scripts/mobiles/generic/faction/imperial/veteran_ imperial_stormsniper.py
new file mode 100644
index 00000000..d9dfcbd3
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_ imperial_stormsniper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_stormtrooper_sniper')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sniper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_stormtrooper_sniper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_ imperial_stormtrooper_squad_leader.py b/scripts/mobiles/generic/faction/imperial/veteran_ imperial_stormtrooper_squad_leader.py
new file mode 100644
index 00000000..56c2f4ba
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_ imperial_stormtrooper_squad_leader.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_stormtrooper_squad_leader')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stormtrooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_stormtrooper_squad_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_assault_trooper.py b/scripts/mobiles/generic/faction/imperial/veteran_assault_trooper.py
new file mode 100644
index 00000000..af52fa71
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_assault_trooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_assault_trooper')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(5)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_assault_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_assault_trooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_assault_trooper_squad.py b/scripts/mobiles/generic/faction/imperial/veteran_assault_trooper_squad.py
new file mode 100644
index 00000000..a3f542e6
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_assault_trooper_squad.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_assault_trooper_squad_leader')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(5)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_assault_trooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('Vet_assault_trooper_squad', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_brigadier_general.py b/scripts/mobiles/generic/faction/imperial/veteran_brigadier_general.py
new file mode 100644
index 00000000..a031301e
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_brigadier_general.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_brigadier_general')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_general_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imperial_brigadier_general', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_com_security_guard.py b/scripts/mobiles/generic/faction/imperial/veteran_com_security_guard.py
new file mode 100644
index 00000000..39c85464
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_com_security_guard.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_command_security_guard')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stormtrooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_com_sec_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_compforce_trooper.py b/scripts/mobiles/generic/faction/imperial/veteran_compforce_trooper.py
new file mode 100644
index 00000000..d7f7521a
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_compforce_trooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_army_captain')
+ mobileTemplate.setLevel(53)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stormtrooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imperial_army_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_dark_trooper.py b/scripts/mobiles/generic/faction/imperial/veteran_dark_trooper.py
new file mode 100644
index 00000000..0068e29d
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_dark_trooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_dark_trooper')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dark_trooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('victory_class_dark_trooper_32', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_first_lieutenant.py b/scripts/mobiles/generic/faction/imperial/veteran_first_lieutenant.py
new file mode 100644
index 00000000..8dcff480
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_first_lieutenant.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_first_lieutenant')
+ mobileTemplate.setLevel(49)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_lieutenant_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_fst_lieutenant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imp_army_captain.py b/scripts/mobiles/generic/faction/imperial/veteran_imp_army_captain.py
new file mode 100644
index 00000000..2decf27a
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imp_army_captain.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_army_captain')
+ mobileTemplate.setLevel(53)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_captain_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_army_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imp_captain.py b/scripts/mobiles/generic/faction/imperial/veteran_imp_captain.py
new file mode 100644
index 00000000..44a4a7d0
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imp_captain.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_imperial_army_captain_extreme')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_captain_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imperial_army_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imp_colonel.py b/scripts/mobiles/generic/faction/imperial/veteran_imp_colonel.py
new file mode 100644
index 00000000..e54068fe
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imp_colonel.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_colonel')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_colonel_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_colonel', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imp_corporal.py b/scripts/mobiles/generic/faction/imperial/veteran_imp_corporal.py
new file mode 100644
index 00000000..44b9e335
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imp_corporal.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_corporal')
+ mobileTemplate.setLevel(35)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_officer_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_corporal', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imp_lance_corporal.py b/scripts/mobiles/generic/faction/imperial/veteran_imp_lance_corporal.py
new file mode 100644
index 00000000..b427089b
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imp_lance_corporal.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_lance_corporal')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_officer_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_lance_corporal', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imp_lieutenant_colonel.py b/scripts/mobiles/generic/faction/imperial/veteran_imp_lieutenant_colonel.py
new file mode 100644
index 00000000..a4bd5337
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imp_lieutenant_colonel.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_lieutenant_colonel')
+ mobileTemplate.setLevel(58)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_lieutenant_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_lieutenant_colonel', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imp_lieutenant_general.py b/scripts/mobiles/generic/faction/imperial/veteran_imp_lieutenant_general.py
new file mode 100644
index 00000000..fa4c79fb
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imp_lieutenant_general.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_lieutenant_general')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_general_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_lieutenant_general', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_2nd_lieutenant.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_2nd_lieutenant.py
new file mode 100644
index 00000000..8eef291d
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_2nd_lieutenant.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_second_lieutenant')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_lieutenant_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_second_lieutenant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_army_captain.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_army_captain.py
new file mode 100644
index 00000000..f3446390
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_army_captain.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_army_captain')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_captain_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imperial_army_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_bombardier.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_bombardier.py
new file mode 100644
index 00000000..5eb2d696
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_bombardier.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_stormtrooper_bombardier')
+ mobileTemplate.setLevel(55)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_bombardier_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('veteran_stormtrooper_bombardier', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_general.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_general.py
new file mode 100644
index 00000000..72fda8df
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_general.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_general')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_general_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_general', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_high_general.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_high_general.py
new file mode 100644
index 00000000..56b58cbf
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_high_general.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_high_general')
+ mobileTemplate.setLevel(73)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_general_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_high_general', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_major.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_major.py
new file mode 100644
index 00000000..9cfd83d8
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_major.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_major')
+ mobileTemplate.setLevel(55)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_major_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_major', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_major_general.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_major_general.py
new file mode 100644
index 00000000..7c05546d
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_major_general.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_major_general')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_general_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_major_general', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_master_sergeant.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_master_sergeant.py
new file mode 100644
index 00000000..839b6e43
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_master_sergeant.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_master_sergeant')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_master_sergant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_medic.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_medic.py
new file mode 100644
index 00000000..625b961f
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_medic.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_medic')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_medic1_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_imperial_medic3_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_stormtrooper_medic_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_medic', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_sandtrooper.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_sandtrooper.py
new file mode 100644
index 00000000..50bf6258
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_sandtrooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_sand_trooper')
+ mobileTemplate.setLevel(49)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stormtrooper_sandtrooper_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_sand_trooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_scouttrooper.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_scouttrooper.py
new file mode 100644
index 00000000..e086ee82
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_scouttrooper.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_scout_trooper')
+ mobileTemplate.setLevel(46)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_scout_trooper_white_white.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_scout_trooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_sergeant.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_sergeant.py
new file mode 100644
index 00000000..4156ae66
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_sergeant.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_sergeant')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_sergeant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_sergeant_major.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_sergeant_major.py
new file mode 100644
index 00000000..c19e3387
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_sergeant_major.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_sergeant_major')
+ mobileTemplate.setLevel(46)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_major_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_sergeant_major', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_sharpshooter.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_sharpshooter.py
new file mode 100644
index 00000000..02f30a84
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_sharpshooter.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_sharpshooter')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_sharpshooter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_staff_corporal.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_staff_corporal.py
new file mode 100644
index 00000000..8703019c
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_staff_corporal.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_staff_corporal')
+ mobileTemplate.setLevel(38)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_officer_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_staff_corporal', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_staff_sergeant.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_staff_sergeant.py
new file mode 100644
index 00000000..233e75ad
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_staff_sergeant.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_staff_sergeant')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_staff_sergeant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_surface_marshall.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_surface_marshall.py
new file mode 100644
index 00000000..adc3ba11
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_surface_marshall.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_surface_marshal')
+ mobileTemplate.setLevel(75)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_surface_marshall', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_warant_officer_i.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_warant_officer_i.py
new file mode 100644
index 00000000..594694f7
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_warant_officer_i.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_warrant_officer_i')
+ mobileTemplate.setLevel(48)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_warrant_offi_i', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/veteran_imperial_warant_officer_ii.py b/scripts/mobiles/generic/faction/imperial/veteran_imperial_warant_officer_ii.py
new file mode 100644
index 00000000..0600b4d9
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/veteran_imperial_warant_officer_ii.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veteran_imperial_warrant_officer_ii')
+ mobileTemplate.setLevel(45)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_npe_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vet_imp_warrant_offi_ii', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/victory_class_dark_trooper_32.py b/scripts/mobiles/generic/faction/imperial/victory_class_dark_trooper_32.py
new file mode 100644
index 00000000..f9b79886
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/victory_class_dark_trooper_32.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_dark_trooper')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dark_trooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vic_dark_trooper_32', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/imperial/victory_class_dark_trooper_80.py b/scripts/mobiles/generic/faction/imperial/victory_class_dark_trooper_80.py
new file mode 100644
index 00000000..c30c312c
--- /dev/null
+++ b/scripts/mobiles/generic/faction/imperial/victory_class_dark_trooper_80.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crackdown_dark_trooper')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dark_trooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vic_dark_trooper_80', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/rebel/battle_droid_reb.py b/scripts/mobiles/generic/faction/rebel/battle_droid_reb.py
new file mode 100644
index 00000000..5325c108
--- /dev/null
+++ b/scripts/mobiles/generic/faction/rebel/battle_droid_reb.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from resources.datatables import FactionStatus
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rebel_battle_droid')
+ mobileTemplate.setLevel(83)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(24)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("rebel")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_battle_droid.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('battle_droid_rebel', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/rebel/decorated_sith_hunter.py b/scripts/mobiles/generic/faction/rebel/decorated_sith_hunter.py
new file mode 100644
index 00000000..5a4fba78
--- /dev/null
+++ b/scripts/mobiles/generic/faction/rebel/decorated_sith_hunter.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from resources.datatables import FactionStatus
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fbase_rebel_elite_heavy_trooper_extreme')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("rebel")
+ mobileTemplate.setAssistRange(24)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("rebel")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_rebel_ris_01.iff')
+ templates.add('object/mobile/shared_dressed_rebel_ris_02.iff')
+ templates.add('object/mobile/shared_dressed_rebel_ris_03.iff')
+ templates.add('object/mobile/shared_dressed_rebel_ris_04.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('decorated_sith_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/rebel/tamed_gurrcat.py b/scripts/mobiles/generic/faction/rebel/tamed_gurrcat.py
new file mode 100644
index 00000000..b9374fc1
--- /dev/null
+++ b/scripts/mobiles/generic/faction/rebel/tamed_gurrcat.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rebel_tamed_gurrcat')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("dire cat")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("rebel")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gurrcat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tamed_gurrcat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/rebel/tamed_huurton.py b/scripts/mobiles/generic/faction/rebel/tamed_huurton.py
new file mode 100644
index 00000000..88ddc47a
--- /dev/null
+++ b/scripts/mobiles/generic/faction/rebel/tamed_huurton.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rebel_tamed_huurton')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("rebel")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("rebel")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_huurton.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tamed_huurton', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/rebel/tamed_razor_cat.py b/scripts/mobiles/generic/faction/rebel/tamed_razor_cat.py
new file mode 100644
index 00000000..214a2f5b
--- /dev/null
+++ b/scripts/mobiles/generic/faction/rebel/tamed_razor_cat.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rebel_tamed_razor_cat')
+ mobileTemplate.setLevel(10)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("razor cat")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("rebel")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_sand_panther.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tamed_razor_cat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/generic/faction/rebel/tamed_slice_hound.py b/scripts/mobiles/generic/faction/rebel/tamed_slice_hound.py
new file mode 100644
index 00000000..4ee80f60
--- /dev/null
+++ b/scripts/mobiles/generic/faction/rebel/tamed_slice_hound.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rebel_tamed_slice_hound')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("slice hound")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setFaction("rebel")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_corellian_slice_hound.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tamed_slice_hound', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/bestine_police_officer.py b/scripts/mobiles/instances/tuskenking/mosespa/bestine_police_officer.py
new file mode 100644
index 00000000..8899d636
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/bestine_police_officer.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_bestine_police_offcier')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_mos_eisley_police_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_bestine_police_officer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/bioengineer.py b/scripts/mobiles/instances/tuskenking/mosespa/bioengineer.py
new file mode 100644
index 00000000..ee75731b
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/bioengineer.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_bio_engineer')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_bioengineer_trainer_01.iff')
+ templates.add('object/mobile/shared_dressed_bioengineer_trainer_02.iff')
+ templates.add('object/mobile/shared_dressed_bioengineer_trainer_03.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_bio_engineer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/blood_hunter.py b/scripts/mobiles/instances/tuskenking/mosespa/blood_hunter.py
new file mode 100644
index 00000000..68e4f218
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/blood_hunter.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_blood_hunter')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_commando_trainer_trandoshan_male_01.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_trandoshan_female_01.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_trandoshan_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_t21.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_blood_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/buisnessman.py b/scripts/mobiles/instances/tuskenking/mosespa/buisnessman.py
new file mode 100644
index 00000000..99cfaa12
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/buisnessman.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_businessman')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_merchant_trainer_01.iff')
+ templates.add('object/mobile/shared_dressed_merchant_trainer_02.iff')
+ templates.add('object/mobile/shared_dressed_merchant_trainer_03.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_businessman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/citizien.py b/scripts/mobiles/instances/tuskenking/mosespa/citizien.py
new file mode 100644
index 00000000..79259e94
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/citizien.py
@@ -0,0 +1,106 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_mos_espa_citizen')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_warren_research_scientist.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_female_06.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_male_05.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_06.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_rodian_female_04.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_devaronian_male_03.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_sullustan_male_03.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_female_02.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_male_01.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_male_08.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_bith_female_03.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_bith_male_04.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_ishitib_male_02.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_male_08.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_02.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_rodian_male_01.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_trandoshan_female_02.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_female_07.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_male_04.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_bith_male_01.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_trandoshan_male_02.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_bith_female_06.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_07.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_rodian_male_04.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_sullustan_male_02.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_female_03.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_bith_male_05.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_devaronian_male_02.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_ishitib_male_03.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_03.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_rodian_female_01.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_trandoshan_female_03.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_male_09.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_bith_female_02.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_sullustan_male_06.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_devaronian_male_01.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_sullustan_male_01.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_female_04.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_male_07.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_bith_female_05.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_bith_male_02.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_04.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_trandoshan_female_04.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_rodian_female_02.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_sullustan_male_05.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_male_03.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_bith_female_01.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_bith_male_06.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_rodian_male_03.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_male_06.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_bith_male_03.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_05.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_female_05.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_bith_female_04.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_trandoshan_male_01.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_sullustan_male_04.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_devaronian_male_04.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_male_02.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_ishitib_male_01.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_female_01.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_01.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_rodian_female_03.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_trandoshan_female_01.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_aqualish_female_08.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_08.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_rodian_male_02.iff')
+ templates.add('object/mobile/shared_dressed_twi_female_scientist_01.iff')
+ templates.add('object/mobile/shared_warren_scientist_s01.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_mos_espa_citizen', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/droidengineer.py b/scripts/mobiles/instances/tuskenking/mosespa/droidengineer.py
new file mode 100644
index 00000000..43baf61f
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/droidengineer.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_droid_engineer')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_droidengineer_trainer_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_droidengineer_trainer_moncal_male_01.iff')
+ templates.add('object/mobile/shared_dressed_droidengineer_trainer_rodian_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_droid_engineer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/expert.py b/scripts/mobiles/instances/tuskenking/mosespa/expert.py
new file mode 100644
index 00000000..d13b4996
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/expert.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_mos_espa_expert')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_twi_female_scientist_01.iff')
+ templates.add('object/mobile/shared_warren_research_scientist.iff')
+ templates.add('object/mobile/shared_warren_scientist_s03.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_mos_espa_expert', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/kav_goldor.py b/scripts/mobiles/instances/tuskenking/mosespa/kav_goldor.py
new file mode 100644
index 00000000..4905caf3
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/kav_goldor.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_kav_goldor')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_heroic_tusken_kav_golder.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_kav_golder', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/medic.py b/scripts/mobiles/instances/tuskenking/mosespa/medic.py
new file mode 100644
index 00000000..5891df3a
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/medic.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_mos_espa_medic')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_medic_trainer_03.iff')
+ templates.add('object/mobile/shared_dressed_medic_trainer_02.iff')
+ templates.add('object/mobile/shared_dressed_medic_trainer_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_mos_espa_medic', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/mercanary.py b/scripts/mobiles/instances/tuskenking/mosespa/mercanary.py
new file mode 100644
index 00000000..7cfbf893
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/mercanary.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_mos_espa_mercenary')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_borvos_mercenary.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_mos_espa_mercenary', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/militia.py b/scripts/mobiles/instances/tuskenking/mosespa/militia.py
new file mode 100644
index 00000000..c2091ec1
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/militia.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_mos_espa_militia')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_militiaman.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_mos_espa_militia', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/mos_eisley_police_officer.py b/scripts/mobiles/instances/tuskenking/mosespa/mos_eisley_police_officer.py
new file mode 100644
index 00000000..a3bd2b8c
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/mos_eisley_police_officer.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_mos_eisley_police_officer')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_mos_eisley_police_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_mos_eisley_police_officer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/mos_espa_police_officer.py b/scripts/mobiles/instances/tuskenking/mosespa/mos_espa_police_officer.py
new file mode 100644
index 00000000..7f096ee2
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/mos_espa_police_officer.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_mos_espa_police_officer')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_mos_eisley_police_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_mos_espa_police_officer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/mse_droid.py b/scripts/mobiles/instances/tuskenking/mosespa/mse_droid.py
new file mode 100644
index 00000000..fc09ce71
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/mse_droid.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_mse_droid')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mouse_droid.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_mse_droid', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/nova_trooper.py b/scripts/mobiles/instances/tuskenking/mosespa/nova_trooper.py
new file mode 100644
index 00000000..eface2ad
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/nova_trooper.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_nova_trooper')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dark_trooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_bounty_ee3.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_nova_trooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/pilot.py b/scripts/mobiles/instances/tuskenking/mosespa/pilot.py
new file mode 100644
index 00000000..9d239188
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/pilot.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_flight_crew')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_miner_pilot.iff')
+ templates.add('object/mobile/shared_space_newbie_generic_pilot_male_01.iff')
+ templates.add('object/mobile/shared_dressed_royal_pilot_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_royal_pilot_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_bth_spynet_pilot_f_01.iff')
+ templates.add('object/mobile/shared_dressed_bth_spynet_pilot_m_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_flight_crew', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/pit_droid.py b/scripts/mobiles/instances/tuskenking/mosespa/pit_droid.py
new file mode 100644
index 00000000..0ae25ecd
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/pit_droid.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_pit_droid')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_pit_droid.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_pit_droid', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/power_droid.py b/scripts/mobiles/instances/tuskenking/mosespa/power_droid.py
new file mode 100644
index 00000000..e7ca0a16
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/power_droid.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_power_droid')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_eg6_power_droid.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_power_droid', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/mosespa/scholar.py b/scripts/mobiles/instances/tuskenking/mosespa/scholar.py
new file mode 100644
index 00000000..ea942f78
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/mosespa/scholar.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_scholar')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic mos espa citizien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_scholar_szingo.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_scholar', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/prequest/tusken_relic_fanatic.py b/scripts/mobiles/instances/tuskenking/prequest/tusken_relic_fanatic.py
new file mode 100644
index 00000000..460624e9
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/prequest/tusken_relic_fanatic.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('feeder_tusken_patrol')
+ mobileTemplate.setLevel(85)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_relic_fanatic', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/prequest/tusken_relic_guard.py b/scripts/mobiles/instances/tuskenking/prequest/tusken_relic_guard.py
new file mode 100644
index 00000000..715e3af1
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/prequest/tusken_relic_guard.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('feeder_tusken_guard')
+ mobileTemplate.setLevel(85)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_relic_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/prequest/tusken_relic_worshiper.py b/scripts/mobiles/instances/tuskenking/prequest/tusken_relic_worshiper.py
new file mode 100644
index 00000000..080e4929
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/prequest/tusken_relic_worshiper.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('feeder_tusken_raider')
+ mobileTemplate.setLevel(85)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_relic_worshiper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/tusken/tusken_bantha.py b/scripts/mobiles/instances/tuskenking/tusken/tusken_bantha.py
new file mode 100644
index 00000000..1b2c745a
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/tusken/tusken_bantha.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_bantha')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bantha_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_bantha', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/tusken/tusken_berserker.py b/scripts/mobiles/instances/tuskenking/tusken/tusken_berserker.py
new file mode 100644
index 00000000..ffe982b9
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/tusken/tusken_berserker.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_berserker')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_berserker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/tusken/tusken_champion.py b/scripts/mobiles/instances/tuskenking/tusken/tusken_champion.py
new file mode 100644
index 00000000..cd636e03
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/tusken/tusken_champion.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_champion')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_champion', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/tusken/tusken_flesh_hunter.py b/scripts/mobiles/instances/tuskenking/tusken/tusken_flesh_hunter.py
new file mode 100644
index 00000000..816d3715
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/tusken/tusken_flesh_hunter.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_flesh_hunter')
+ mobileTemplate.setLevel(91)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_flesh_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/tusken/tusken_honor_guard.py b/scripts/mobiles/instances/tuskenking/tusken/tusken_honor_guard.py
new file mode 100644
index 00000000..f926ede6
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/tusken/tusken_honor_guard.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_honor_guard')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_honor_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/tusken/tusken_king.py b/scripts/mobiles/instances/tuskenking/tusken/tusken_king.py
new file mode 100644
index 00000000..67c0cad3
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/tusken/tusken_king.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_king')
+ mobileTemplate.setLevel(95)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_king.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_king', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/tusken/tusken_massiff.py b/scripts/mobiles/instances/tuskenking/tusken/tusken_massiff.py
new file mode 100644
index 00000000..68ef9fd9
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/tusken/tusken_massiff.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_massiff')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_massif.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_massiff', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/tusken/tusken_pack_master.py b/scripts/mobiles/instances/tuskenking/tusken/tusken_pack_master.py
new file mode 100644
index 00000000..7890ceb4
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/tusken/tusken_pack_master.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_pack_master')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_pack_master', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/tusken/tusken_raid_leader.py b/scripts/mobiles/instances/tuskenking/tusken/tusken_raid_leader.py
new file mode 100644
index 00000000..a01d688f
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/tusken/tusken_raid_leader.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_raid_leader')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_raid_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/tusken/tusken_raider.py b/scripts/mobiles/instances/tuskenking/tusken/tusken_raider.py
new file mode 100644
index 00000000..754a0820
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/tusken/tusken_raider.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_raider')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_raider', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/tusken/tusken_savage.py b/scripts/mobiles/instances/tuskenking/tusken/tusken_savage.py
new file mode 100644
index 00000000..3986bfa7
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/tusken/tusken_savage.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_savage')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_savage', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/tusken/tusken_sniper.py b/scripts/mobiles/instances/tuskenking/tusken/tusken_sniper.py
new file mode 100644
index 00000000..c523749b
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/tusken/tusken_sniper.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_sniper')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_sniper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/tusken/tusken_warlord.py b/scripts/mobiles/instances/tuskenking/tusken/tusken_warlord.py
new file mode 100644
index 00000000..a87a34e3
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/tusken/tusken_warlord.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_warlord')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_warlord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/tusken/tusken_warmaster.py b/scripts/mobiles/instances/tuskenking/tusken/tusken_warmaster.py
new file mode 100644
index 00000000..6549b6b6
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/tusken/tusken_warmaster.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_war_master')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_warmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/instances/tuskenking/tusken/tusken_warrior.py b/scripts/mobiles/instances/tuskenking/tusken/tusken_warrior.py
new file mode 100644
index 00000000..68b609b4
--- /dev/null
+++ b/scripts/mobiles/instances/tuskenking/tusken/tusken_warrior.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_warrior')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("heroic tusken")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/baton/shared_baton_gaderiffi_elite.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ attacks.add('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('heroic_tusken_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/kashyyyk/general_grievous.py b/scripts/mobiles/kashyyyk/general_grievous.py
new file mode 100644
index 00000000..c6b18095
--- /dev/null
+++ b/scripts/mobiles/kashyyyk/general_grievous.py
@@ -0,0 +1,30 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ep3_general_grievous')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(6)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(9)
+
+ templates = Vector()
+ templates.add('object/mobile/ep3/shared_general_grievous.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('saberHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('general_grievous', mobileTemplate)
+
\ No newline at end of file
diff --git a/scripts/mobiles/lairgroups/bol_lair_group_1.py b/scripts/mobiles/lairgroups/bol_lair_group_1.py
new file mode 100644
index 00000000..0aff2d4d
--- /dev/null
+++ b/scripts/mobiles/lairgroups/bol_lair_group_1.py
@@ -0,0 +1,11 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from services.spawn import LairSpawnTemplate
+from java.util import Vector
+
+def addLairGroup(core):
+ spawnTemplates = Vector()
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_bol_lair_1', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ core.spawnService.addLairGroup('bol_lair_group_1', spawnTemplates)
+ return
diff --git a/scripts/mobiles/lairgroups/dantooine_mining_area.py b/scripts/mobiles/lairgroups/dantooine_mining_area.py
new file mode 100644
index 00000000..19cf6d7d
--- /dev/null
+++ b/scripts/mobiles/lairgroups/dantooine_mining_area.py
@@ -0,0 +1,19 @@
+import sys
+from services.spawn import LairSpawnTemplate
+from java.util import Vector
+
+def addLairGroup(core):
+ spawnTemplate1 = LairSpawnTemplate(-1, 'dantooine_huurton_lair_1', -1, -1)
+ spawnTemplate2 = LairSpawnTemplate(-1, 'dantooine_huurton_lair_2', -1, -1)
+ spawnTemplate3 = LairSpawnTemplate(-1, 'dantooine_bol_lair_1', -1, -1)
+ spawnTemplate4 = LairSpawnTemplate(-1, 'dantooine_piket_lair_1',-1, -1)
+ spawnTemplate5 = LairSpawnTemplate(-1, 'dantooine_piket_longhorn_lair_1',-1, -1)
+ spawnTemplate6 = LairSpawnTemplate(-1, 'dantooine_quenker_lair_1', -1, -1)
+ spawnTemplates = Vector()
+ spawnTemplates.add(spawnTemplate1)
+ spawnTemplates.add(spawnTemplate2)
+ spawnTemplates.add(spawnTemplate3)
+ spawnTemplates.add(spawnTemplate4)
+
+ core.spawnService.addLairGroup('dantooine_mining_area', spawnTemplates)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/lairgroups/dantooine_nw_lair_group_1.py b/scripts/mobiles/lairgroups/dantooine_nw_lair_group_1.py
new file mode 100644
index 00000000..bb93ad97
--- /dev/null
+++ b/scripts/mobiles/lairgroups/dantooine_nw_lair_group_1.py
@@ -0,0 +1,13 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from services.spawn import LairSpawnTemplate
+from java.util import Vector
+
+def addLairGroup(core):
+ spawnTemplates = Vector()
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_graul_mauler_lair_1', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_voritor_lair_1', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ core.spawnService.addLairGroup('dantooine_nw_lair_group_1', spawnTemplates)
+ return
diff --git a/scripts/mobiles/lairgroups/graul_lair_group_1.py b/scripts/mobiles/lairgroups/graul_lair_group_1.py
new file mode 100644
index 00000000..6700ed59
--- /dev/null
+++ b/scripts/mobiles/lairgroups/graul_lair_group_1.py
@@ -0,0 +1,11 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from services.spawn import LairSpawnTemplate
+from java.util import Vector
+
+def addLairGroup(core):
+ spawnTemplates = Vector()
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_graul_lair_1', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ core.spawnService.addLairGroup('graul_lair_group_1', spawnTemplates)
+ return
diff --git a/scripts/mobiles/lairgroups/graul_mauler_lair_group_1.py b/scripts/mobiles/lairgroups/graul_mauler_lair_group_1.py
new file mode 100644
index 00000000..11142ef1
--- /dev/null
+++ b/scripts/mobiles/lairgroups/graul_mauler_lair_group_1.py
@@ -0,0 +1,11 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from services.spawn import LairSpawnTemplate
+from java.util import Vector
+
+def addLairGroup(core):
+ spawnTemplates = Vector()
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_graul_lair_1', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ core.spawnService.addLairGroup('graul_mauler_lair_group_1', spawnTemplates)
+ return
diff --git a/scripts/mobiles/lairgroups/huurton_lair_group_1.py b/scripts/mobiles/lairgroups/huurton_lair_group_1.py
new file mode 100644
index 00000000..662e23c1
--- /dev/null
+++ b/scripts/mobiles/lairgroups/huurton_lair_group_1.py
@@ -0,0 +1,11 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from services.spawn import LairSpawnTemplate
+from java.util import Vector
+
+def addLairGroup(core):
+ spawnTemplates = Vector()
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_huurton_lair_1', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ core.spawnService.addLairGroup('huurton_lair_group_1', spawnTemplates)
+ return
diff --git a/scripts/mobiles/lairgroups/mixed_lair_group_1.py b/scripts/mobiles/lairgroups/mixed_lair_group_1.py
new file mode 100644
index 00000000..571b1f66
--- /dev/null
+++ b/scripts/mobiles/lairgroups/mixed_lair_group_1.py
@@ -0,0 +1,21 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from services.spawn import LairSpawnTemplate
+from java.util import Vector
+
+def addLairGroup(core):
+ spawnTemplates = Vector()
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_huurton_lair_1', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_huurton_lair_2', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_bol_lair_1', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_piket_lair_1', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_piket_longhorn_lair_1', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_quenker_lair_1', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ core.spawnService.addLairGroup('mixed_lair_group_1', spawnTemplates)
+ return
diff --git a/scripts/mobiles/lairgroups/naboo_starter.py b/scripts/mobiles/lairgroups/naboo_starter.py
new file mode 100644
index 00000000..a046b63e
--- /dev/null
+++ b/scripts/mobiles/lairgroups/naboo_starter.py
@@ -0,0 +1,11 @@
+import sys
+from services.spawn import LairSpawnTemplate
+from java.util import Vector
+
+def addLairGroup(core):
+ spawnTemplate1 = LairSpawnTemplate(-1, 'naboo_chuba_lair_neutral_small', 5, 20)
+
+ spawnTemplates = Vector()
+ spawnTemplates.add(spawnTemplate1)
+
+ core.spawnService.addLairGroup('naboo_starter', spawnTemplates)
\ No newline at end of file
diff --git a/scripts/mobiles/lairgroups/piket_longhorn_lair_group_1.py b/scripts/mobiles/lairgroups/piket_longhorn_lair_group_1.py
new file mode 100644
index 00000000..d63ad6e7
--- /dev/null
+++ b/scripts/mobiles/lairgroups/piket_longhorn_lair_group_1.py
@@ -0,0 +1,11 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from services.spawn import LairSpawnTemplate
+from java.util import Vector
+
+def addLairGroup(core):
+ spawnTemplates = Vector()
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_piket_longhorn_lair_1', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ core.spawnService.addLairGroup('piket_longhorn_lair_group_1', spawnTemplates)
+ return
diff --git a/scripts/mobiles/lairgroups/quenker_lair_group_1.py b/scripts/mobiles/lairgroups/quenker_lair_group_1.py
new file mode 100644
index 00000000..ba1bf3e8
--- /dev/null
+++ b/scripts/mobiles/lairgroups/quenker_lair_group_1.py
@@ -0,0 +1,11 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from services.spawn import LairSpawnTemplate
+from java.util import Vector
+
+def addLairGroup(core):
+ spawnTemplates = Vector()
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_quenker_lair_1', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ core.spawnService.addLairGroup('quenker_lair_group_1', spawnTemplates)
+ return
diff --git a/scripts/mobiles/lairgroups/tatooine_starter.py b/scripts/mobiles/lairgroups/tatooine_starter.py
new file mode 100644
index 00000000..55016760
--- /dev/null
+++ b/scripts/mobiles/lairgroups/tatooine_starter.py
@@ -0,0 +1,17 @@
+import sys
+from services.spawn import LairSpawnTemplate
+from java.util import Vector
+
+def addLairGroup(core):
+ spawnTemplate1 = LairSpawnTemplate(-1, 'tatooine_kreetle_lair_neutral_small', 5, 20)
+ spawnTemplate2 = LairSpawnTemplate(-1, 'tatooine_womprat_lair_neutral_small', 5, 15)
+ spawnTemplate3 = LairSpawnTemplate(-1, 'tatooine_rill_lair_neutral_small', 5, 15)
+ spawnTemplate4 = LairSpawnTemplate(-1, 'tatooine_worrt_lair_neutral_small', 5, 15)
+ spawnTemplates = Vector()
+ spawnTemplates.add(spawnTemplate1)
+ spawnTemplates.add(spawnTemplate2)
+ spawnTemplates.add(spawnTemplate3)
+ spawnTemplates.add(spawnTemplate4)
+
+ core.spawnService.addLairGroup('tatooine_starter', spawnTemplates)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/lairgroups/thune_lair_group_1.py b/scripts/mobiles/lairgroups/thune_lair_group_1.py
new file mode 100644
index 00000000..4d0b1767
--- /dev/null
+++ b/scripts/mobiles/lairgroups/thune_lair_group_1.py
@@ -0,0 +1,11 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from services.spawn import LairSpawnTemplate
+from java.util import Vector
+
+def addLairGroup(core):
+ spawnTemplates = Vector()
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_thune_lair_1', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ core.spawnService.addLairGroup('thune_lair_group_1', spawnTemplates)
+ return
diff --git a/scripts/mobiles/lairgroups/voritor_lair_group_1.py b/scripts/mobiles/lairgroups/voritor_lair_group_1.py
new file mode 100644
index 00000000..028ceab1
--- /dev/null
+++ b/scripts/mobiles/lairgroups/voritor_lair_group_1.py
@@ -0,0 +1,11 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from services.spawn import LairSpawnTemplate
+from java.util import Vector
+
+def addLairGroup(core):
+ spawnTemplates = Vector()
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_voritor_lair_1', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ core.spawnService.addLairGroup('voritor_lair_group_1', spawnTemplates)
+ return
diff --git a/scripts/mobiles/lairgroups/voritor_lair_group_2.py b/scripts/mobiles/lairgroups/voritor_lair_group_2.py
new file mode 100644
index 00000000..ece717a5
--- /dev/null
+++ b/scripts/mobiles/lairgroups/voritor_lair_group_2.py
@@ -0,0 +1,11 @@
+# Spawn Group file created with PSWG Planetary Spawn Tool
+import sys
+from services.spawn import LairSpawnTemplate
+from java.util import Vector
+
+def addLairGroup(core):
+ spawnTemplates = Vector()
+ spawnTemplate = LairSpawnTemplate(-1, 'dantooine_voritor_lair_2', -1, -1)
+ spawnTemplates.add(spawnTemplate)
+ core.spawnService.addLairGroup('voritor_lair_group_2', spawnTemplates)
+ return
diff --git a/scripts/mobiles/lairs/dantooine_bol_lair_1.py b/scripts/mobiles/lairs/dantooine_bol_lair_1.py
new file mode 100644
index 00000000..953c80f5
--- /dev/null
+++ b/scripts/mobiles/lairs/dantooine_bol_lair_1.py
@@ -0,0 +1,9 @@
+import sys
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplates = Vector()
+ mobileTemplates.add('lesser_plains_bol')
+ mobileTemplates.add('seething_bol_crusher')
+ mobileTemplates.add('swift_charging_bol')
+ core.spawnService.addLairTemplate('dantooine_bol_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff')
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/dantooine_graul_lair_1.py b/scripts/mobiles/lairs/dantooine_graul_lair_1.py
new file mode 100644
index 00000000..953c80f5
--- /dev/null
+++ b/scripts/mobiles/lairs/dantooine_graul_lair_1.py
@@ -0,0 +1,9 @@
+import sys
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplates = Vector()
+ mobileTemplates.add('lesser_plains_bol')
+ mobileTemplates.add('seething_bol_crusher')
+ mobileTemplates.add('swift_charging_bol')
+ core.spawnService.addLairTemplate('dantooine_bol_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff')
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/dantooine_graul_mauler_lair_1.py b/scripts/mobiles/lairs/dantooine_graul_mauler_lair_1.py
new file mode 100644
index 00000000..dfad5707
--- /dev/null
+++ b/scripts/mobiles/lairs/dantooine_graul_mauler_lair_1.py
@@ -0,0 +1,5 @@
+import sys
+from java.util import Vector
+
+def addTemplate(core):
+ core.spawnService.addLairTemplate('dantooine_graul_mauler_lair_1', 'graul_mauler', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff')
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/dantooine_huurton_lair_1.py b/scripts/mobiles/lairs/dantooine_huurton_lair_1.py
new file mode 100644
index 00000000..68fe6e33
--- /dev/null
+++ b/scripts/mobiles/lairs/dantooine_huurton_lair_1.py
@@ -0,0 +1,9 @@
+import sys
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplates = Vector()
+ mobileTemplates.add('huurton')
+ mobileTemplates.add('huurton_howler')
+ mobileTemplates.add('huurton_matron')
+ core.spawnService.addLairTemplate('dantooine_huurton_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff')
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/dantooine_huurton_lair_2.py b/scripts/mobiles/lairs/dantooine_huurton_lair_2.py
new file mode 100644
index 00000000..a94d718e
--- /dev/null
+++ b/scripts/mobiles/lairs/dantooine_huurton_lair_2.py
@@ -0,0 +1,9 @@
+import sys
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplates = Vector()
+ mobileTemplates.add('huurton_pub')
+ mobileTemplates.add('huurton_reaper')
+ mobileTemplates.add('huurton_stalker')
+ core.spawnService.addLairTemplate('dantooine_huurton_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff')
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/dantooine_piket_lair_1.py b/scripts/mobiles/lairs/dantooine_piket_lair_1.py
new file mode 100644
index 00000000..a6ccd8a6
--- /dev/null
+++ b/scripts/mobiles/lairs/dantooine_piket_lair_1.py
@@ -0,0 +1,4 @@
+import sys
+
+def addTemplate(core):
+ core.spawnService.addLairTemplate('dantooine_piket_lair_1', 'piket', 15, 'object/tangible/lair/base/shared_earthmound_light.iff')
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/dantooine_piket_longhorn_lair_1.py b/scripts/mobiles/lairs/dantooine_piket_longhorn_lair_1.py
new file mode 100644
index 00000000..1e24cef1
--- /dev/null
+++ b/scripts/mobiles/lairs/dantooine_piket_longhorn_lair_1.py
@@ -0,0 +1,9 @@
+import sys
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplates = Vector()
+ mobileTemplates.add('piket_longhorn')
+ mobileTemplates.add('piket_longhorn_female')
+ mobileTemplates.add('piket_plains_walker')
+ core.spawnService.addLairTemplate('dantooine_piket_longhorn_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_earthmound_light.iff')
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/dantooine_piket_plains_walker_lair_1.py b/scripts/mobiles/lairs/dantooine_piket_plains_walker_lair_1.py
new file mode 100644
index 00000000..b837fe8c
--- /dev/null
+++ b/scripts/mobiles/lairs/dantooine_piket_plains_walker_lair_1.py
@@ -0,0 +1,7 @@
+import sys
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplates = Vector()
+ mobileTemplates.add('piket_plains_walker')
+ core.spawnService.addLairTemplate('dantooine_piket_plains_walker_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_earthmound_light.iff')
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/dantooine_quenker_lair_1.py b/scripts/mobiles/lairs/dantooine_quenker_lair_1.py
new file mode 100644
index 00000000..4856d31e
--- /dev/null
+++ b/scripts/mobiles/lairs/dantooine_quenker_lair_1.py
@@ -0,0 +1,9 @@
+import sys
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplates = Vector()
+ mobileTemplates.add('quenker')
+ mobileTemplates.add('quenker_ravager')
+ mobileTemplates.add('quenker_relic_reaper')
+ core.spawnService.addLairTemplate('dantooine_quenker_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff')
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/dantooine_thune_lair_1.py b/scripts/mobiles/lairs/dantooine_thune_lair_1.py
new file mode 100644
index 00000000..93962a7a
--- /dev/null
+++ b/scripts/mobiles/lairs/dantooine_thune_lair_1.py
@@ -0,0 +1,9 @@
+import sys
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplates = Vector()
+ mobileTemplates.add('thune')
+ mobileTemplates.add('thune_grassland_guardian')
+ mobileTemplates.add('thune_herd_leader')
+ core.spawnService.addLairTemplate('dantooine_thune_lair_1', mobileTemplates, 15, 'object/tangible/lair/base/shared_earthmound_light.iff')
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/dantooine_voritor_lair_1.py b/scripts/mobiles/lairs/dantooine_voritor_lair_1.py
new file mode 100644
index 00000000..8e1afee4
--- /dev/null
+++ b/scripts/mobiles/lairs/dantooine_voritor_lair_1.py
@@ -0,0 +1,5 @@
+import sys
+from java.util import Vector
+
+def addTemplate(core):
+ core.spawnService.addLairTemplate('dantooine_voritor_lair_1', 'voritor_lizard', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff')
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/dantooine_voritor_lair_2.py b/scripts/mobiles/lairs/dantooine_voritor_lair_2.py
new file mode 100644
index 00000000..9352c9f3
--- /dev/null
+++ b/scripts/mobiles/lairs/dantooine_voritor_lair_2.py
@@ -0,0 +1,11 @@
+import sys
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplates = Vector()
+ mobileTemplates.add('voritor_lizard')
+ mobileTemplates.add('horned_voritor_jungle_lizard')
+ mobileTemplates.add('vexed_voritor_lizard')
+ mobileTemplates.add('voritor_dasher')
+ mobileTemplates.add('spiked_slasher')
+ core.spawnService.addLairTemplate('dantooine_voritor_lair_2', mobileTemplates, 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff')
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/naboo_chuba_lair_neutral_small.py b/scripts/mobiles/lairs/naboo_chuba_lair_neutral_small.py
new file mode 100644
index 00000000..ac408bdb
--- /dev/null
+++ b/scripts/mobiles/lairs/naboo_chuba_lair_neutral_small.py
@@ -0,0 +1,4 @@
+import sys
+
+def addTemplate(core):
+ core.spawnService.addLairTemplate('naboo_chuba_lair_neutral_small', 'chuba', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff')
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/tatooine_kreetle_lair_neutral_small.py b/scripts/mobiles/lairs/tatooine_kreetle_lair_neutral_small.py
new file mode 100644
index 00000000..76e76ebe
--- /dev/null
+++ b/scripts/mobiles/lairs/tatooine_kreetle_lair_neutral_small.py
@@ -0,0 +1,4 @@
+import sys
+
+def addTemplate(core):
+ core.spawnService.addLairTemplate('tatooine_kreetle_lair_neutral_small', 'kreetle', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff')
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/tatooine_rill_lair_neutral_small.py b/scripts/mobiles/lairs/tatooine_rill_lair_neutral_small.py
new file mode 100644
index 00000000..5eed8400
--- /dev/null
+++ b/scripts/mobiles/lairs/tatooine_rill_lair_neutral_small.py
@@ -0,0 +1,5 @@
+import sys
+
+def addTemplate(core):
+ core.spawnService.addLairTemplate('tatooine_rill_lair_neutral_small', 'rill', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff')
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/tatooine_womprat_lair_neutral_small.py b/scripts/mobiles/lairs/tatooine_womprat_lair_neutral_small.py
new file mode 100644
index 00000000..60400598
--- /dev/null
+++ b/scripts/mobiles/lairs/tatooine_womprat_lair_neutral_small.py
@@ -0,0 +1,4 @@
+import sys
+
+def addTemplate(core):
+ core.spawnService.addLairTemplate('tatooine_womprat_lair_neutral_small', 'womprat', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff')
\ No newline at end of file
diff --git a/scripts/mobiles/lairs/tatooine_worrt_lair_neutral_small.py b/scripts/mobiles/lairs/tatooine_worrt_lair_neutral_small.py
new file mode 100644
index 00000000..87905581
--- /dev/null
+++ b/scripts/mobiles/lairs/tatooine_worrt_lair_neutral_small.py
@@ -0,0 +1,5 @@
+import sys
+
+def addTemplate(core):
+ core.spawnService.addLairTemplate('tatooine_worrt_lair_neutral_small', 'worrt', 15, 'object/tangible/lair/base/shared_poi_all_lair_brambles_small.iff')
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/lok/aged_kimogila.py b/scripts/mobiles/lok/aged_kimogila.py
new file mode 100644
index 00000000..33f4d623
--- /dev/null
+++ b/scripts/mobiles/lok/aged_kimogila.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kimogila_aged')
+ mobileTemplate.setLevel(79)
+ mobileTemplate.setMinLevel(79)
+ mobileTemplate.setMaxLevel(80)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(1450)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(1350)
+ mobileTemplate.setSocialGroup("kimogila")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kimogila_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('aged_kimogila', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/mustafar/Blistmok_Shrieker.py b/scripts/mobiles/mustafar/Blistmok_Shrieker.py
new file mode 100644
index 00000000..f4154231
--- /dev/null
+++ b/scripts/mobiles/mustafar/Blistmok_Shrieker.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('som_blistmok_shrieker')
+ mobileTemplate.setLevel(82)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptile Meat")
+ mobileTemplate.setMeatAmount(19)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(22)
+ mobileTemplate.setSocialGroup("blistmok")
+ mobileTemplate.setAssistRange(24)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_blistmok.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('Blistmok_Shrieker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/mustafar/Blistmok_Trampler.py b/scripts/mobiles/mustafar/Blistmok_Trampler.py
new file mode 100644
index 00000000..476a02d3
--- /dev/null
+++ b/scripts/mobiles/mustafar/Blistmok_Trampler.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('som_blistmok_trampler')
+ mobileTemplate.setLevel(82)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptile Meat")
+ mobileTemplate.setMeatAmount(19)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(22)
+ mobileTemplate.setSocialGroup("blistmok")
+ mobileTemplate.setAssistRange(24)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_blistmok.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('Blistmok_Trampler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/mustafar/ancient_jundak.py b/scripts/mobiles/mustafar/ancient_jundak.py
new file mode 100644
index 00000000..888d6160
--- /dev/null
+++ b/scripts/mobiles/mustafar/ancient_jundak.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('som_ancient_jundak')
+ mobileTemplate.setLevel(84)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(1)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("jundak")
+ mobileTemplate.setAssistRange(24)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jundak.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('ancient_jundak', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/mustafar/ancient_tulrus.py b/scripts/mobiles/mustafar/ancient_tulrus.py
new file mode 100644
index 00000000..e940f6a5
--- /dev/null
+++ b/scripts/mobiles/mustafar/ancient_tulrus.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('som_nesting_grounds_tulrus_ancient')
+ mobileTemplate.setLevel(82)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(33)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(24)
+ mobileTemplate.setSocialGroup("tulrus")
+ mobileTemplate.setAssistRange(24)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tulrus.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('ancient_tulrus', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/mustafar/blistmok_crystal_stalker.py b/scripts/mobiles/mustafar/blistmok_crystal_stalker.py
new file mode 100644
index 00000000..c45fa73d
--- /dev/null
+++ b/scripts/mobiles/mustafar/blistmok_crystal_stalker.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('som_crystal_flats_blistmok_crystal_stalker')
+ mobileTemplate.setLevel(72)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptile Meat")
+ mobileTemplate.setMeatAmount(20)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(24)
+ mobileTemplate.setSocialGroup("blistmok")
+ mobileTemplate.setAssistRange(24)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_blistmok.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blistmok_crystal_stalker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/mustafar/bloated_jundak.py b/scripts/mobiles/mustafar/bloated_jundak.py
new file mode 100644
index 00000000..cc3482e2
--- /dev/null
+++ b/scripts/mobiles/mustafar/bloated_jundak.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('som_nesting_grounds_jundak_bloated')
+ mobileTemplate.setLevel(84)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(28)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(38)
+ mobileTemplate.setSocialGroup("jundak")
+ mobileTemplate.setAssistRange(24)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jundak.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bloated_jundak', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/naboo/aggrivated_kaadu_trampler.py b/scripts/mobiles/naboo/aggrivated_kaadu_trampler.py
new file mode 100644
index 00000000..6fdc7ac1
--- /dev/null
+++ b/scripts/mobiles/naboo/aggrivated_kaadu_trampler.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kaadu_aggrivated_trampler')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(120)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(85)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(70)
+ mobileTemplate.setSocialGroup("kaadu")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kaadu.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('aggrivated_kaadu_trampler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/naboo/alpha_veermok.py b/scripts/mobiles/naboo/alpha_veermok.py
new file mode 100644
index 00000000..2a536044
--- /dev/null
+++ b/scripts/mobiles/naboo/alpha_veermok.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('alpha_veermok')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setMinLevel(19)
+ mobileTemplate.setMaxLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(150)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(150)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setSocialGroup("veermok")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_veermok.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('alpha_veermok', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/naboo/bachelor_gualama.py b/scripts/mobiles/naboo/bachelor_gualama.py
new file mode 100644
index 00000000..c66e7326
--- /dev/null
+++ b/scripts/mobiles/naboo/bachelor_gualama.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bachelor_gualama')
+ mobileTemplate.setLevel(41)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(150)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(150)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(90)
+ mobileTemplate.setSocialGroup("gualama")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gualama.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bachelor_gualama', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/naboo/bolle_bol.py b/scripts/mobiles/naboo/bolle_bol.py
new file mode 100644
index 00000000..d6df3369
--- /dev/null
+++ b/scripts/mobiles/naboo/bolle_bol.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bolle_bol')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(450)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(300)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setSocialGroup("bolle bol")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bolle_bol.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bolle_bol', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/naboo/capper_spineflap_drone.py b/scripts/mobiles/naboo/capper_spineflap_drone.py
new file mode 100644
index 00000000..6fd319f6
--- /dev/null
+++ b/scripts/mobiles/naboo/capper_spineflap_drone.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('capper_spineflap_drone')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(10)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(6)
+ mobileTemplate.setSocialGroup("capper spineflap")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_capper_spineflap.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('capper_spineflap_drone', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/naboo/carnivorous_nuna.py b/scripts/mobiles/naboo/carnivorous_nuna.py
new file mode 100644
index 00000000..317bf875
--- /dev/null
+++ b/scripts/mobiles/naboo/carnivorous_nuna.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('carnivorous_nuna')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("self")
+ mobileTemplate.setAssistRange(8)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_nuna.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('carnivorous_nuna', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/naboo/chuba.py b/scripts/mobiles/naboo/chuba.py
new file mode 100644
index 00000000..d7276d10
--- /dev/null
+++ b/scripts/mobiles/naboo/chuba.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('chuba')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setMinLevel(1)
+ mobileTemplate.setMaxLevel(3)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setSocialGroup("chuba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_chuba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('chuba', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/naboo/fambaa.py b/scripts/mobiles/naboo/fambaa.py
new file mode 100644
index 00000000..47cfd27f
--- /dev/null
+++ b/scripts/mobiles/naboo/fambaa.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fambaa')
+ mobileTemplate.setLevel(22)
+ mobileTemplate.setMinLevel(22)
+ mobileTemplate.setMaxLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptile Meat")
+ mobileTemplate.setMeatAmount(1250)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(325)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(675)
+ mobileTemplate.setSocialGroup("fambaa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_fambaa.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('fambaa', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/naboo/gualama.py b/scripts/mobiles/naboo/gualama.py
new file mode 100644
index 00000000..3108f2bb
--- /dev/null
+++ b/scripts/mobiles/naboo/gualama.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gualama')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setMinLevel(39)
+ mobileTemplate.setMaxLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(200)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(150)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(90)
+ mobileTemplate.setSocialGroup("gualama")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gualama.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gualama', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/naboo/hermit_spider.py b/scripts/mobiles/naboo/hermit_spider.py
new file mode 100644
index 00000000..55014de7
--- /dev/null
+++ b/scripts/mobiles/naboo/hermit_spider.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hermit_spider')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setMinLevel(33)
+ mobileTemplate.setMaxLevel(35)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(60)
+ mobileTemplate.setSocialGroup("hermit spider")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_hermit_spider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('hermit_spider', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/naboo/kaadu.py b/scripts/mobiles/naboo/kaadu.py
new file mode 100644
index 00000000..e1f778f4
--- /dev/null
+++ b/scripts/mobiles/naboo/kaadu.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kaadu')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setMinLevel(8)
+ mobileTemplate.setMaxLevel(12)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(120)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(85)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(70)
+ mobileTemplate.setSocialGroup("kaadu")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kaadu.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kaadu', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/naboo/narglatch.py b/scripts/mobiles/naboo/narglatch.py
new file mode 100644
index 00000000..c8e25c2e
--- /dev/null
+++ b/scripts/mobiles/naboo/narglatch.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('narglatch')
+ mobileTemplate.setLevel(21)
+ mobileTemplate.setMinLevel(21)
+ mobileTemplate.setMaxLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(60)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(45)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setSocialGroup("narglatch")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setOptionsBitmask(128)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_narglatch.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('narglatch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/naboo/veermok.py b/scripts/mobiles/naboo/veermok.py
new file mode 100644
index 00000000..47c07893
--- /dev/null
+++ b/scripts/mobiles/naboo/veermok.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('veermok')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setMinLevel(18)
+ mobileTemplate.setMaxLevel(26)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(150)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(150)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(60)
+ mobileTemplate.setSocialGroup("veermok")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_veermok.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('veermok', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/rori/adult_pygmy_torton.py b/scripts/mobiles/rori/adult_pygmy_torton.py
new file mode 100644
index 00000000..0d7e8788
--- /dev/null
+++ b/scripts/mobiles/rori/adult_pygmy_torton.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('torton_pygmy_adult')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setMinLevel(16)
+ mobileTemplate.setMaxLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(600)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(400)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(600)
+ mobileTemplate.setSocialGroup("torton")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_torton.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('adult_pygmy_torton', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/rori/bark_mite.py b/scripts/mobiles/rori/bark_mite.py
new file mode 100644
index 00000000..6fb5d13c
--- /dev/null
+++ b/scripts/mobiles/rori/bark_mite.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bark_mite')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setMinLevel(37)
+ mobileTemplate.setMaxLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setSocialGroup("bark mite")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bark_mite', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/rori/bark_mite_hatchling.py b/scripts/mobiles/rori/bark_mite_hatchling.py
new file mode 100644
index 00000000..7f40123c
--- /dev/null
+++ b/scripts/mobiles/rori/bark_mite_hatchling.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bark_mite_hatchling')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setMinLevel(36)
+ mobileTemplate.setMaxLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setSocialGroup("bark mite")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bark_mite_hatchling', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/rori/bearded_jax.py b/scripts/mobiles/rori/bearded_jax.py
new file mode 100644
index 00000000..90a4958c
--- /dev/null
+++ b/scripts/mobiles/rori/bearded_jax.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bearded_jax')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setMinLevel(37)
+ mobileTemplate.setMaxLevel(38)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(15)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setSocialGroup("jax")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bearded_jax.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bearded_jax', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/rori/blood_thirsty_borgle.py b/scripts/mobiles/rori/blood_thirsty_borgle.py
new file mode 100644
index 00000000..6e7bce1b
--- /dev/null
+++ b/scripts/mobiles/rori/blood_thirsty_borgle.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('blood_thirsty_borgle')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setMinLevel(39)
+ mobileTemplate.setMaxLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setSocialGroup("borgle")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_borgle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blood_thirsty_borgle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/rori/borgle.py b/scripts/mobiles/rori/borgle.py
new file mode 100644
index 00000000..a79e9f94
--- /dev/null
+++ b/scripts/mobiles/rori/borgle.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('borgle')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setMinLevel(39)
+ mobileTemplate.setMaxLevel(42)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setSocialGroup("borgle")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_borgle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('borgle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/rori/borgle_harvester.py b/scripts/mobiles/rori/borgle_harvester.py
new file mode 100644
index 00000000..774b9a09
--- /dev/null
+++ b/scripts/mobiles/rori/borgle_harvester.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('borgle_harvester')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setMinLevel(37)
+ mobileTemplate.setMaxLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setSocialGroup("borgle")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_borgle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('borgle_harvester', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/rori/borgle_matriarch.py b/scripts/mobiles/rori/borgle_matriarch.py
new file mode 100644
index 00000000..e8d0903d
--- /dev/null
+++ b/scripts/mobiles/rori/borgle_matriarch.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('borgle_matriarch')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setMinLevel(40)
+ mobileTemplate.setMaxLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setSocialGroup("borgle")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_borgle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('borgle_matriarch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/rori/borgle_protector.py b/scripts/mobiles/rori/borgle_protector.py
new file mode 100644
index 00000000..142ec8fa
--- /dev/null
+++ b/scripts/mobiles/rori/borgle_protector.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('borgle_protector')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setMinLevel(39)
+ mobileTemplate.setMaxLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setSocialGroup("borgle")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_borgle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('borgle_protector', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/rori/capper_spineflap.py b/scripts/mobiles/rori/capper_spineflap.py
new file mode 100644
index 00000000..82c9f4b2
--- /dev/null
+++ b/scripts/mobiles/rori/capper_spineflap.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('capper_spineflap')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setMinLevel(31)
+ mobileTemplate.setMaxLevel(35)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setSocialGroup("capper spineflap")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_capper_spineflap.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('capper_spineflap', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/rori/emperors_hand.py b/scripts/mobiles/rori/emperors_hand.py
new file mode 100644
index 00000000..d878eb8b
--- /dev/null
+++ b/scripts/mobiles/rori/emperors_hand.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('restuss_emperors_hand')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(9)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_restuss_emperors_hand.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_mandalorian.iff', 9, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('saberHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('restuss_emperors_hand', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/rori/horned_rasp.py b/scripts/mobiles/rori/horned_rasp.py
new file mode 100644
index 00000000..b6b1f7ae
--- /dev/null
+++ b/scripts/mobiles/rori/horned_rasp.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('horned_rasp')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setMinLevel(31)
+ mobileTemplate.setMaxLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(8)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(1)
+ mobileTemplate.setSocialGroup("rasp")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_horned_rasp.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('horned_rasp', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/rori/pugoriss.py b/scripts/mobiles/rori/pugoriss.py
new file mode 100644
index 00000000..a02c9420
--- /dev/null
+++ b/scripts/mobiles/rori/pugoriss.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('pugoriss')
+ mobileTemplate.setLevel(42)
+ mobileTemplate.setMinLevel(42)
+ mobileTemplate.setMaxLevel(45)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(375)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(425)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(375)
+ mobileTemplate.setSocialGroup("pugoriss")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_pugoriss.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('pugoriss', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/rori/torton.py b/scripts/mobiles/rori/torton.py
new file mode 100644
index 00000000..4e96998e
--- /dev/null
+++ b/scripts/mobiles/rori/torton.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('torton')
+ mobileTemplate.setLevel(53)
+ mobileTemplate.setMinLevel(53)
+ mobileTemplate.setMaxLevel(55)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(1300)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(1150)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(1300)
+ mobileTemplate.setSocialGroup("torton")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_torton.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('torton', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/rori/vir_vur.py b/scripts/mobiles/rori/vir_vur.py
new file mode 100644
index 00000000..f93e456c
--- /dev/null
+++ b/scripts/mobiles/rori/vir_vur.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('vir_vur')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setMinLevel(37)
+ mobileTemplate.setMaxLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(4)
+ mobileTemplate.setSocialGroup("vir vur")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_vir_vur.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vir_vur', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/spawnareas/dantooine_central_mixed_1.py b/scripts/mobiles/spawnareas/dantooine_central_mixed_1.py
new file mode 100644
index 00000000..5a45beeb
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_central_mixed_1.py
@@ -0,0 +1,11 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ mixedGroups = Vector()
+ mixedGroups.add('huurton_lair_group_1')
+ mixedGroups.add('piket_longhorn_lair_group_1')
+ mixedGroups.add('bol_lair_group_1')
+ core.spawnService.addMixedSpawnArea(mixedGroups, -2580, 737, 2068, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_central_mixed_2.py b/scripts/mobiles/spawnareas/dantooine_central_mixed_2.py
new file mode 100644
index 00000000..8da5820c
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_central_mixed_2.py
@@ -0,0 +1,13 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ mixedGroups = Vector()
+ mixedGroups.add('kunga_central_group_1')
+ mixedGroups.add('huurton_lair_group_1')
+ mixedGroups.add('thune_lair_group_1')
+ mixedGroups.add('graul_lair_group_1')
+ mixedGroups.add('huurton_group_2')
+ core.spawnService.addMixedSpawnArea(mixedGroups, 1044, -798, 2252, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_central_mixed_3.py b/scripts/mobiles/spawnareas/dantooine_central_mixed_3.py
new file mode 100644
index 00000000..7730e79a
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_central_mixed_3.py
@@ -0,0 +1,13 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ mixedGroups = Vector()
+ mixedGroups.add('mokk_group_1')
+ mixedGroups.add('piket_longhorn_lair_group_1')
+ mixedGroups.add('huurton_lair_group_1')
+ mixedGroups.add('bol_lair_group_1')
+ mixedGroups.add('huurton_group_1')
+ core.spawnService.addMixedSpawnArea(mixedGroups, -1740, -3297, 1822, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_east_mixed_1.py b/scripts/mobiles/spawnareas/dantooine_east_mixed_1.py
new file mode 100644
index 00000000..b80c96c0
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_east_mixed_1.py
@@ -0,0 +1,10 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ mixedGroups = Vector()
+ mixedGroups.add('voritors_east_group_1')
+ mixedGroups.add('voritor_lair_group_1')
+ core.spawnService.addMixedSpawnArea(mixedGroups, 5672, -1146, 2396, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_east_mixed_2.py b/scripts/mobiles/spawnareas/dantooine_east_mixed_2.py
new file mode 100644
index 00000000..5dabb9c8
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_east_mixed_2.py
@@ -0,0 +1,9 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ mixedGroups = Vector()
+ mixedGroups.add('voritor_lair_group_2')
+ core.spawnService.addMixedSpawnArea(mixedGroups, 5345, -5795, 2560, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_east_mixed_3.py b/scripts/mobiles/spawnareas/dantooine_east_mixed_3.py
new file mode 100644
index 00000000..b2debb9f
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_east_mixed_3.py
@@ -0,0 +1,11 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ mixedGroups = Vector()
+ mixedGroups.add('piket_plains_walker_lair_group')
+ mixedGroups.add('quenker_relic_reaper_group')
+ mixedGroups.add('thune_lair_group_1')
+ core.spawnService.addMixedSpawnArea(mixedGroups, 3440, 1310, 2641, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_imperial_op_lair.py b/scripts/mobiles/spawnareas/dantooine_imperial_op_lair.py
new file mode 100644
index 00000000..fa814fba
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_imperial_op_lair.py
@@ -0,0 +1,6 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+
+def addSpawnArea(core):
+ core.spawnService.addLairSpawnArea('mixed_lair_group_1', -4014, -1966, 1024, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_mining_lair.py b/scripts/mobiles/spawnareas/dantooine_mining_lair.py
new file mode 100644
index 00000000..a4e6734a
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_mining_lair.py
@@ -0,0 +1,7 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ #core.spawnService.addLairSpawnArea('mixed_lair_group_1', 0, 2355, 1024, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_mining_mixed.py b/scripts/mobiles/spawnareas/dantooine_mining_mixed.py
new file mode 100644
index 00000000..7fd81cad
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_mining_mixed.py
@@ -0,0 +1,11 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ mixedGroups = Vector()
+ mixedGroups.add('piket_plains_walker_group')
+ mixedGroups.add('mixed_lair_group_1')
+ mixedGroups.add('naboo_starter')
+ core.spawnService.addMixedSpawnArea(mixedGroups, 0, 2355, 1024, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_north_mixed_1.py b/scripts/mobiles/spawnareas/dantooine_north_mixed_1.py
new file mode 100644
index 00000000..0105e3c0
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_north_mixed_1.py
@@ -0,0 +1,11 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ mixedGroups = Vector()
+ mixedGroups.add('force_sensitives_wild_1')
+ mixedGroups.add('graul_mauler_lair_group_1')
+ mixedGroups.add('graul_mauler_nw_group_1')
+ core.spawnService.addMixedSpawnArea(mixedGroups, 20, 6574, 1966, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_north_mixed_2.py b/scripts/mobiles/spawnareas/dantooine_north_mixed_2.py
new file mode 100644
index 00000000..f24e179b
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_north_mixed_2.py
@@ -0,0 +1,12 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ mixedGroups = Vector()
+ mixedGroups.add('huurton_lair_group_1')
+ mixedGroups.add('bol_lair_group_1')
+ mixedGroups.add('mokk_group_1')
+ mixedGroups.add('quenker_lair_group_1')
+ core.spawnService.addMixedSpawnArea(mixedGroups, -1454, 3829, 1044, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_north_mixed_3.py b/scripts/mobiles/spawnareas/dantooine_north_mixed_3.py
new file mode 100644
index 00000000..237654cb
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_north_mixed_3.py
@@ -0,0 +1,12 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ mixedGroups = Vector()
+ mixedGroups.add('quenker_lair_group_1')
+ mixedGroups.add('huurton_lair_group_1')
+ mixedGroups.add('bol_lair_group_1')
+ mixedGroups.add('mokk_group_1')
+ core.spawnService.addMixedSpawnArea(mixedGroups, 757, 4321, 1167, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_nw_mixed_1.py b/scripts/mobiles/spawnareas/dantooine_nw_mixed_1.py
new file mode 100644
index 00000000..1ffb716c
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_nw_mixed_1.py
@@ -0,0 +1,10 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ mixedGroups = Vector()
+ mixedGroups.add('dantooine_nw_lair_group_1')
+ mixedGroups.add('jantas_nw_group_1')
+ core.spawnService.addMixedSpawnArea(mixedGroups, -4751, 4935, 3200, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_pirate_lair.py b/scripts/mobiles/spawnareas/dantooine_pirate_lair.py
new file mode 100644
index 00000000..ef872c08
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_pirate_lair.py
@@ -0,0 +1,6 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+
+def addSpawnArea(core):
+ core.spawnService.addLairSpawnArea('mixed_lair_group_1', 1699, -6471, 1024, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_south_mixed_1.py b/scripts/mobiles/spawnareas/dantooine_south_mixed_1.py
new file mode 100644
index 00000000..28c50059
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_south_mixed_1.py
@@ -0,0 +1,14 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ mixedGroups = Vector()
+ mixedGroups.add('jantas_nw_group_1')
+ mixedGroups.add('graul_mauler_lair_group_1')
+ mixedGroups.add('quenker_relic_reaper_group')
+ mixedGroups.add('voritor_lair_group_1')
+ mixedGroups.add('thune_lair_group_1')
+ mixedGroups.add('bol_lair_group_1')
+ core.spawnService.addMixedSpawnArea(mixedGroups, -2109, -6983, 2580, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_south_mixed_3.py b/scripts/mobiles/spawnareas/dantooine_south_mixed_3.py
new file mode 100644
index 00000000..addd1210
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_south_mixed_3.py
@@ -0,0 +1,11 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ mixedGroups = Vector()
+ mixedGroups.add('quenker_lair_group_1')
+ mixedGroups.add('huurton_lair_group_1')
+ mixedGroups.add('quenker_group_south_1')
+ core.spawnService.addMixedSpawnArea(mixedGroups, 1495, -3502, 2396, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_sw_mixed_1.py b/scripts/mobiles/spawnareas/dantooine_sw_mixed_1.py
new file mode 100644
index 00000000..57fa09a7
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_sw_mixed_1.py
@@ -0,0 +1,12 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ mixedGroups = Vector()
+ mixedGroups.add('mokk_group_1')
+ mixedGroups.add('voritor_lair_group_1')
+ mixedGroups.add('graul_mauler_lair_group_1')
+ mixedGroups.add('quenker_relic_reaper_group')
+ core.spawnService.addMixedSpawnArea(mixedGroups, -5877, -4239, 2170, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/dantooine_west_mixed_1.py b/scripts/mobiles/spawnareas/dantooine_west_mixed_1.py
new file mode 100644
index 00000000..a0e8156a
--- /dev/null
+++ b/scripts/mobiles/spawnareas/dantooine_west_mixed_1.py
@@ -0,0 +1,12 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ mixedGroups = Vector()
+ mixedGroups.add('kunga_central_group_1')
+ mixedGroups.add('piket_longhorn_lair_group_1')
+ mixedGroups.add('thune_lair_group_1')
+ mixedGroups.add('piket_longhorn_group_1')
+ core.spawnService.addMixedSpawnArea(mixedGroups, -6410, 0, 1986, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/force_sensitives_dynamic_1.py b/scripts/mobiles/spawnareas/force_sensitives_dynamic_1.py
new file mode 100644
index 00000000..dca3c08d
--- /dev/null
+++ b/scripts/mobiles/spawnareas/force_sensitives_dynamic_1.py
@@ -0,0 +1,10 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ dynamicGroups = Vector()
+ dynamicGroups.add('force_sensitives_wild_1')
+ dynamicGroups.add('dark_jedi_wild_1')
+ core.spawnService.addDynamicSpawnArea(dynamicGroups, 4362, 5488, 2560, 'dantooine')
+ return
diff --git a/scripts/mobiles/spawnareas/keren_lair.py b/scripts/mobiles/spawnareas/keren_lair.py
new file mode 100644
index 00000000..8723ee3f
--- /dev/null
+++ b/scripts/mobiles/spawnareas/keren_lair.py
@@ -0,0 +1,6 @@
+import sys
+
+def addSpawnArea(core):
+ core.spawnService.addLairSpawnArea('naboo_starter', 1685, 2620, 1360, 'naboo')
+
+
diff --git a/scripts/mobiles/spawnareas/krayt_graveyard_dynamic_1.py b/scripts/mobiles/spawnareas/krayt_graveyard_dynamic_1.py
new file mode 100644
index 00000000..e69a5c02
--- /dev/null
+++ b/scripts/mobiles/spawnareas/krayt_graveyard_dynamic_1.py
@@ -0,0 +1,11 @@
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ dynamicGroups = Vector()
+ dynamicGroups.add('adolescent_krayt_wild_1')
+ dynamicGroups.add('juvenile_krayts_wild_1')
+ dynamicGroups.add('canyon_krayt_wild_1')
+ dynamicGroups.add('giant_canyon_krayt_wild_1')
+ #core.spawnService.addDynamicSpawnArea(dynamicGroups, 6471, 4267, 1024, 'tatooine')
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/spawnareas/krayt_graveyard_dynamic_2.py b/scripts/mobiles/spawnareas/krayt_graveyard_dynamic_2.py
new file mode 100644
index 00000000..c4efc05e
--- /dev/null
+++ b/scripts/mobiles/spawnareas/krayt_graveyard_dynamic_2.py
@@ -0,0 +1,8 @@
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ dynamicGroups = Vector()
+ dynamicGroups.add('grand_canyon_krayt_wild_1')
+ #core.spawnService.addDynamicSpawnArea(dynamicGroups, 7431, 4762, 120, 'tatooine')
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/spawnareas/krayt_graveyard_dynamic_3.py b/scripts/mobiles/spawnareas/krayt_graveyard_dynamic_3.py
new file mode 100644
index 00000000..ca80d382
--- /dev/null
+++ b/scripts/mobiles/spawnareas/krayt_graveyard_dynamic_3.py
@@ -0,0 +1,8 @@
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ dynamicGroups = Vector()
+ dynamicGroups.add('krayt_dragon_ancient_wild_1')
+ #core.spawnService.addDynamicSpawnArea(dynamicGroups, 7490, 4466, 10, 'tatooine')
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/spawnareas/krayt_graveyard_dynamic_4.py b/scripts/mobiles/spawnareas/krayt_graveyard_dynamic_4.py
new file mode 100644
index 00000000..cf2bd911
--- /dev/null
+++ b/scripts/mobiles/spawnareas/krayt_graveyard_dynamic_4.py
@@ -0,0 +1,8 @@
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ dynamicGroups = Vector()
+ dynamicGroups.add('krayt_dragon_ancient_wild_1')
+ #core.spawnService.addDynamicSpawnArea(dynamicGroups, 6794, 4307, 10, 'tatooine')
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/spawnareas/krayt_graveyard_dynamic_5.py b/scripts/mobiles/spawnareas/krayt_graveyard_dynamic_5.py
new file mode 100644
index 00000000..19471168
--- /dev/null
+++ b/scripts/mobiles/spawnareas/krayt_graveyard_dynamic_5.py
@@ -0,0 +1,8 @@
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ dynamicGroups = Vector()
+ dynamicGroups.add('krayt_dragon_ancient_wild_1')
+ #core.spawnService.addDynamicSpawnArea(dynamicGroups, 7493, 5992, 10, 'tatooine')
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/spawnareas/mos_eisley_lair.py b/scripts/mobiles/spawnareas/mos_eisley_lair.py
new file mode 100644
index 00000000..6b2de98f
--- /dev/null
+++ b/scripts/mobiles/spawnareas/mos_eisley_lair.py
@@ -0,0 +1,5 @@
+import sys
+
+def addSpawnArea(core):
+ core.spawnService.addLairSpawnArea('tatooine_starter', 3730, -4655, 1024, 'tatooine')
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/spawnareas/ns_stronghold_dyn_1.py b/scripts/mobiles/spawnareas/ns_stronghold_dyn_1.py
new file mode 100644
index 00000000..6e8cca1d
--- /dev/null
+++ b/scripts/mobiles/spawnareas/ns_stronghold_dyn_1.py
@@ -0,0 +1,9 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ dynamicGroups = Vector()
+ dynamicGroups.add('nightsisters_dyn_1')
+ core.spawnService.addDynamicSpawnArea(dynamicGroups, -4055, -81, 2990, 'dathomir')
+ return
diff --git a/scripts/mobiles/spawnareas/smc_dny_1.py b/scripts/mobiles/spawnareas/smc_dny_1.py
new file mode 100644
index 00000000..45d52a8d
--- /dev/null
+++ b/scripts/mobiles/spawnareas/smc_dny_1.py
@@ -0,0 +1,9 @@
+# Spawn Area file created with PSWG Planetary Spawn Tool
+import sys
+from java.util import Vector
+
+def addSpawnArea(core):
+ dynamicGroups = Vector()
+ dynamicGroups.add('smc_dyn_1')
+ core.spawnService.addDynamicSpawnArea(dynamicGroups, 512, 4792, 1966, 'dathomir')
+ return
diff --git a/scripts/mobiles/spawnareas/tuskens_dynamic_1.py b/scripts/mobiles/spawnareas/tuskens_dynamic_1.py
new file mode 100644
index 00000000..eefb2d5e
--- /dev/null
+++ b/scripts/mobiles/spawnareas/tuskens_dynamic_1.py
@@ -0,0 +1,5 @@
+import sys
+
+def addSpawnArea(core):
+ #core.spawnService.addDynamicSpawnArea('tuskens_wild_1', 4310, -4786, 250, 'tatooine')
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/aakuan_champion.py b/scripts/mobiles/talus/aakuan_champion.py
new file mode 100644
index 00000000..5a0b916c
--- /dev/null
+++ b/scripts/mobiles/talus/aakuan_champion.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('aakuan_champion')
+ mobileTemplate.setLevel(53)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aakuans")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_aakuan_champion_zabrak_male_01.iff')
+ templates.add('object/mobile/shared_dressed_aakuan_champion_zabrak_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('aakuan_champion', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/aakuan_defender.py b/scripts/mobiles/talus/aakuan_defender.py
new file mode 100644
index 00000000..9b415fbc
--- /dev/null
+++ b/scripts/mobiles/talus/aakuan_defender.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('aakuan_defender')
+ mobileTemplate.setLevel(47)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aakuans")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_aakuan_defender_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_aakuan_defender_human_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_polearm_vibro_axe.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('aakuan_defender', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/aakuan_follower.py b/scripts/mobiles/talus/aakuan_follower.py
new file mode 100644
index 00000000..2758d903
--- /dev/null
+++ b/scripts/mobiles/talus/aakuan_follower.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('aakuan_follower')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aakuans")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_aakuan_follower_trandoshan_male_01.iff')
+ templates.add('object/mobile/shared_dressed_aakuan_follower_trandoshan_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_polearm_vibro_axe.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('aakuan_follower', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/aakuan_guardian.py b/scripts/mobiles/talus/aakuan_guardian.py
new file mode 100644
index 00000000..49a31357
--- /dev/null
+++ b/scripts/mobiles/talus/aakuan_guardian.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('aakuan_guardian')
+ mobileTemplate.setLevel(48)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aakuans")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_aakuan_guardian_trandoshan_male_01.iff')
+ templates.add('object/mobile/shared_dressed_aakuan_guardian_trandoshan_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_polearm_vibro_axe.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('aakuan_guardian', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/aakuan_keeper.py b/scripts/mobiles/talus/aakuan_keeper.py
new file mode 100644
index 00000000..f44b0909
--- /dev/null
+++ b/scripts/mobiles/talus/aakuan_keeper.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('aakuan_keeper')
+ mobileTemplate.setLevel(42)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aakuans")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_aakuan_keeper_zabrak_male_01.iff')
+ templates.add('object/mobile/shared_dressed_aakuan_keeper_zabrak_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_polearm_vibro_axe.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('aakuan_keeper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/aakuan_sentinal.py b/scripts/mobiles/talus/aakuan_sentinal.py
new file mode 100644
index 00000000..82b78145
--- /dev/null
+++ b/scripts/mobiles/talus/aakuan_sentinal.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('aakuan_sentinal')
+ mobileTemplate.setLevel(45)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aakuans")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_aakuan_sentinal_rodian_male_01.iff')
+ templates.add('object/mobile/shared_dressed_aakuan_sentinal_rodian_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('aakuan_sentinal', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/aakuan_steward.py b/scripts/mobiles/talus/aakuan_steward.py
new file mode 100644
index 00000000..bb480e1f
--- /dev/null
+++ b/scripts/mobiles/talus/aakuan_steward.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('aakuan_steward')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aakuans")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_aakuan_steward_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_aakuan_steward_human_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_polearm_vibro_axe.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('aakuan_steward', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/aakuan_warder.py b/scripts/mobiles/talus/aakuan_warder.py
new file mode 100644
index 00000000..e7aed24f
--- /dev/null
+++ b/scripts/mobiles/talus/aakuan_warder.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('aakuan_warder')
+ mobileTemplate.setLevel(52)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("aakuans")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_aakuan_warder_zabrak_male_01.iff')
+ templates.add('object/mobile/shared_dressed_aakuan_warder_zabrak_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_polearm_vibro_axe.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('aakuan_steward', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/berserk_kahmurra.py b/scripts/mobiles/talus/berserk_kahmurra.py
new file mode 100644
index 00000000..fb2b9925
--- /dev/null
+++ b/scripts/mobiles/talus/berserk_kahmurra.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('berserk_kahmurra')
+ mobileTemplate.setLevel(46)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(50)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(50)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(35)
+ mobileTemplate.setSocialGroup("kahmurra")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kahmurra.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('berserk_kahmurra', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/binayre_chief.py b/scripts/mobiles/talus/binayre_chief.py
new file mode 100644
index 00000000..0e813b90
--- /dev/null
+++ b/scripts/mobiles/talus/binayre_chief.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('binayre_chief')
+ mobileTemplate.setLevel(47)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("binayre")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_binayre_chief_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_binayre_chief_human_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('binayre_chief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/binayre_hooligan.py b/scripts/mobiles/talus/binayre_hooligan.py
new file mode 100644
index 00000000..98552d7e
--- /dev/null
+++ b/scripts/mobiles/talus/binayre_hooligan.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('binayre_hooligan')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("binayre")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_binayre_hooligan_zabrak_male_01.iff')
+ templates.add('object/mobile/shared_dressed_binayre_hooligan_zabrak_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_polearm_vibro_axe.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('binayre_hooligan', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/binayre_pirate.py b/scripts/mobiles/talus/binayre_pirate.py
new file mode 100644
index 00000000..68620b29
--- /dev/null
+++ b/scripts/mobiles/talus/binayre_pirate.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('binayre_pirate')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("binayre")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_binayre_pirate_zabrak_male_01.iff')
+ templates.add('object/mobile/shared_dressed_binayre_pirate_zabrak_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('binayre_pirate', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/binayre_ruffian.py b/scripts/mobiles/talus/binayre_ruffian.py
new file mode 100644
index 00000000..6e5840d0
--- /dev/null
+++ b/scripts/mobiles/talus/binayre_ruffian.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('binayre_ruffian')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("binayre")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_binayre_ruffian_trandoshan_male_01.iff')
+ templates.add('object/mobile/shared_dressed_binayre_ruffian_trandoshan_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('binayre_ruffian', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/binayre_scalawag.py b/scripts/mobiles/talus/binayre_scalawag.py
new file mode 100644
index 00000000..226ef631
--- /dev/null
+++ b/scripts/mobiles/talus/binayre_scalawag.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('binayre_scalawag')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("binayre")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_binayre_scalawag_twk_male_01.iff')
+ templates.add('object/mobile/shared_dressed_binayre_scalawag_twk_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('binayre_scalawag', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/binayre_smuggler.py b/scripts/mobiles/talus/binayre_smuggler.py
new file mode 100644
index 00000000..650bd834
--- /dev/null
+++ b/scripts/mobiles/talus/binayre_smuggler.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('binayre_smuggler')
+ mobileTemplate.setLevel(45)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("binayre")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_binayre_smuggler_trandoshan_male_01.iff')
+ templates.add('object/mobile/shared_dressed_binayre_smuggler_trandoshan_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('binayre_smuggler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/black_sun_initiate.py b/scripts/mobiles/talus/black_sun_initiate.py
new file mode 100644
index 00000000..649925ba
--- /dev/null
+++ b/scripts/mobiles/talus/black_sun_initiate.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('black_sun_initiate')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("bandit")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_black_sun_thug.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('black_sun_initiate', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/black_sun_minion.py b/scripts/mobiles/talus/black_sun_minion.py
new file mode 100644
index 00000000..cd938016
--- /dev/null
+++ b/scripts/mobiles/talus/black_sun_minion.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('black_sun_minion')
+ mobileTemplate.setLevel(21)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("bandit")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_black_sun_henchman.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('black_sun_minion', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/black_sun_smuggler.py b/scripts/mobiles/talus/black_sun_smuggler.py
new file mode 100644
index 00000000..0fcc21ee
--- /dev/null
+++ b/scripts/mobiles/talus/black_sun_smuggler.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('black_sun_smuggler')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("bandit")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_black_sun_thug.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('black_sun_smuggler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/borvos_mutant_kahmurra.py b/scripts/mobiles/talus/borvos_mutant_kahmurra.py
new file mode 100644
index 00000000..90f0fb7c
--- /dev/null
+++ b/scripts/mobiles/talus/borvos_mutant_kahmurra.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rabid_mutant_kahmurra')
+ mobileTemplate.setLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(50)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setSocialGroup("kahmurra")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kahmurra.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('borvos_mutant_kahmurra', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/brood_i_arachne.py b/scripts/mobiles/talus/brood_i_arachne.py
new file mode 100644
index 00000000..5f051315
--- /dev/null
+++ b/scripts/mobiles/talus/brood_i_arachne.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('talus_nashal_brood1_arachne')
+ mobileTemplate.setLevel(41)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("brood arachne")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_angler.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('brood_i_arachne', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/brood_i_aurek_arachne.py b/scripts/mobiles/talus/brood_i_aurek_arachne.py
new file mode 100644
index 00000000..9720a841
--- /dev/null
+++ b/scripts/mobiles/talus/brood_i_aurek_arachne.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('talus_nashal_brood1a_arachne')
+ mobileTemplate.setLevel(42)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("brood arachne")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gaping_spider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('brood_i_aurek_arachne', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/brood_ii_arachne.py b/scripts/mobiles/talus/brood_ii_arachne.py
new file mode 100644
index 00000000..9d290cad
--- /dev/null
+++ b/scripts/mobiles/talus/brood_ii_arachne.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('talus_nashal_brood2_arachne')
+ mobileTemplate.setLevel(42)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.5)
+ mobileTemplate.setSocialGroup("brood arachne")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_angler.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('brood_ii_arachne', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/brood_ii_aurek_arachne.py b/scripts/mobiles/talus/brood_ii_aurek_arachne.py
new file mode 100644
index 00000000..bbe87388
--- /dev/null
+++ b/scripts/mobiles/talus/brood_ii_aurek_arachne.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('talus_nashal_brood2a_arachne')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("brood arachne")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gaping_spider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('brood_ii_aurek_arachne', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/brood_v_arachne.py b/scripts/mobiles/talus/brood_v_arachne.py
new file mode 100644
index 00000000..ba226eb2
--- /dev/null
+++ b/scripts/mobiles/talus/brood_v_arachne.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('talus_nashal_brood5_arachne')
+ mobileTemplate.setLevel(42)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.75)
+ mobileTemplate.setSocialGroup("brood arachne")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_razor_angler_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('brood_v_arachne', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/brood_v_aurek_arachne.py b/scripts/mobiles/talus/brood_v_aurek_arachne.py
new file mode 100644
index 00000000..84bffd8a
--- /dev/null
+++ b/scripts/mobiles/talus/brood_v_aurek_arachne.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('talus_nashal_brood5a_arachne')
+ mobileTemplate.setLevel(45)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.5)
+ mobileTemplate.setSocialGroup("brood arachne")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bane_back_spider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('brood_v_aurek_arachne', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/brood_x_arachne.py b/scripts/mobiles/talus/brood_x_arachne.py
new file mode 100644
index 00000000..a4f6d569
--- /dev/null
+++ b/scripts/mobiles/talus/brood_x_arachne.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('talus_nashal_brood10_arachne')
+ mobileTemplate.setLevel(45)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(2)
+ mobileTemplate.setSocialGroup("brood arachne")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_razor_angler_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('brood_x_arachne', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/brood_x_aurek_arachne.py b/scripts/mobiles/talus/brood_x_aurek_arachne.py
new file mode 100644
index 00000000..57048a94
--- /dev/null
+++ b/scripts/mobiles/talus/brood_x_aurek_arachne.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('talus_nashal_brood10a_arachne')
+ mobileTemplate.setLevel(47)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(2)
+ mobileTemplate.setSocialGroup("brood arachne")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bane_back_spider_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('brood_x_aurek_arachne', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/chunker_braggart.py b/scripts/mobiles/talus/chunker_braggart.py
new file mode 100644
index 00000000..158e7f4a
--- /dev/null
+++ b/scripts/mobiles/talus/chunker_braggart.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('chunker_braggart')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("chunker gang")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_black_sun_henchman.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('chunker_braggart', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/chunker_bruiser.py b/scripts/mobiles/talus/chunker_bruiser.py
new file mode 100644
index 00000000..6bacb83a
--- /dev/null
+++ b/scripts/mobiles/talus/chunker_bruiser.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('chunker_bruiser')
+ mobileTemplate.setLevel(10)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("chunker gang")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_talus_ttlp_soldier_hum_f_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('chunker_bruiser', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/chunker_bully.py b/scripts/mobiles/talus/chunker_bully.py
new file mode 100644
index 00000000..455bcf69
--- /dev/null
+++ b/scripts/mobiles/talus/chunker_bully.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('chunker_bully')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("chunker gang")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_talus_ttlp_soldier_hum_m_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('chunker_bully', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/chunker_goon.py b/scripts/mobiles/talus/chunker_goon.py
new file mode 100644
index 00000000..3b9886de
--- /dev/null
+++ b/scripts/mobiles/talus/chunker_goon.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('chunker_goon')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("chunker gang")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_talus_ttlp_soldier_hum_m_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('chunker_goon', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/chunker_mooch.py b/scripts/mobiles/talus/chunker_mooch.py
new file mode 100644
index 00000000..f9386446
--- /dev/null
+++ b/scripts/mobiles/talus/chunker_mooch.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('chunker_mooch')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("chunker gang")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_talus_ttlp_soldier_hum_f_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('chunker_mooch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/chunker_nitwit.py b/scripts/mobiles/talus/chunker_nitwit.py
new file mode 100644
index 00000000..e5c388f0
--- /dev/null
+++ b/scripts/mobiles/talus/chunker_nitwit.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('chunker_nitwit')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("chunker gang")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_talus_ttlp_soldier_hum_m_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('chunker_nitwit', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/chunker_pest.py b/scripts/mobiles/talus/chunker_pest.py
new file mode 100644
index 00000000..86786b1a
--- /dev/null
+++ b/scripts/mobiles/talus/chunker_pest.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('chunker_pest')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("chunker gang")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_talus_ttlp_soldier_hum_m_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_polearm_vibro_axe.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('chunker_pest', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/chunker_punk.py b/scripts/mobiles/talus/chunker_punk.py
new file mode 100644
index 00000000..ef28079b
--- /dev/null
+++ b/scripts/mobiles/talus/chunker_punk.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('chunker_punk')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("chunker gang")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_talus_ttlp_soldier_hum_m_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('chunker_punk', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/chunker_swindler.py b/scripts/mobiles/talus/chunker_swindler.py
new file mode 100644
index 00000000..b53b7a1d
--- /dev/null
+++ b/scripts/mobiles/talus/chunker_swindler.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('chunker_swindler')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("chunker gang")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_talus_ttlp_soldier_hum_m_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('chunker_swindler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/claw_bodyguard.py b/scripts/mobiles/talus/claw_bodyguard.py
new file mode 100644
index 00000000..f27c34f8
--- /dev/null
+++ b/scripts/mobiles/talus/claw_bodyguard.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('clone_relics__claw_bodyguard_02')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("clone relics claw")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_ep3_clone_relics_claw_bodyguard_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+
+ core.spawnService.addMobileTemplate('claw_bodyguard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/claw_bodyguard_01.py b/scripts/mobiles/talus/claw_bodyguard_01.py
new file mode 100644
index 00000000..bfd16759
--- /dev/null
+++ b/scripts/mobiles/talus/claw_bodyguard_01.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('clone_relics__claw_bodyguard_02')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("clone relics claw")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_ep3_clone_relics_claw_bodyguard_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('claw_bodyguard_01', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/claw_thug.py b/scripts/mobiles/talus/claw_thug.py
new file mode 100644
index 00000000..381f4a21
--- /dev/null
+++ b/scripts/mobiles/talus/claw_thug.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('clone_relics__claw_grunt')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("clone relics claw")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_ep3_clone_relics_claw_grunt_01.iff')
+ templates.add('object/mobile/shared_ep3_clone_relics_claw_grunt_02.iff')
+ templates.add('object/mobile/shared_ep3_clone_relics_claw_grunt_03.iff')
+ templates.add('object/mobile/shared_ep3_clone_relics_claw_grunt_04.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+
+ core.spawnService.addMobileTemplate('claw_thug', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/clipped_fynock.py b/scripts/mobiles/talus/clipped_fynock.py
new file mode 100644
index 00000000..4eeab952
--- /dev/null
+++ b/scripts/mobiles/talus/clipped_fynock.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('clipped_fynock')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(20)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(7)
+ mobileTemplate.setSocialGroup("fynock")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_fynock.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('clipped_fynock', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/crazed_roba.py b/scripts/mobiles/talus/crazed_roba.py
new file mode 100644
index 00000000..75dea797
--- /dev/null
+++ b/scripts/mobiles/talus/crazed_roba.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('crazed_roba')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(12)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(18)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(12)
+ mobileTemplate.setSocialGroup("self")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_roba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('crazed_roba', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/decay_mite.py b/scripts/mobiles/talus/decay_mite.py
new file mode 100644
index 00000000..55b7372d
--- /dev/null
+++ b/scripts/mobiles/talus/decay_mite.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('decay_mite')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('decay_mite', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/doak_sif.py b/scripts/mobiles/talus/doak_sif.py
new file mode 100644
index 00000000..82665c90
--- /dev/null
+++ b/scripts/mobiles/talus/doak_sif.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('doak_sif')
+ mobileTemplate.setLevel(48)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sif")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_doak_sif.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('doak_sif', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/docile_kahmurra.py b/scripts/mobiles/talus/docile_kahmurra.py
new file mode 100644
index 00000000..deba54a0
--- /dev/null
+++ b/scripts/mobiles/talus/docile_kahmurra.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('docile_kahmurra')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(45)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setBoneAmount(27)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(32)
+ mobileTemplate.setSocialGroup("self")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kahmurra.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('docile_kahmurra', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/dung_mite.py b/scripts/mobiles/talus/dung_mite.py
new file mode 100644
index 00000000..298b192f
--- /dev/null
+++ b/scripts/mobiles/talus/dung_mite.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('dung_mite')
+ mobileTemplate.setLevel(42)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(9)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setBoneAmount(9)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dung_mite', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/erran_sif.py b/scripts/mobiles/talus/erran_sif.py
new file mode 100644
index 00000000..0bb36e87
--- /dev/null
+++ b/scripts/mobiles/talus/erran_sif.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('erran_sif')
+ mobileTemplate.setLevel(67)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sif")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_erran_sif.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_dh17.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('erran_sif', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/famished_sludge_panther.py b/scripts/mobiles/talus/famished_sludge_panther.py
new file mode 100644
index 00000000..5fc94382
--- /dev/null
+++ b/scripts/mobiles/talus/famished_sludge_panther.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('famished_sludge_panther')
+ mobileTemplate.setLevel(46)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(40)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(35)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setSocialGroup("sludge panther")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_sludge_panther.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('famished_sludge_panther', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/fearful_fynock_youth.py b/scripts/mobiles/talus/fearful_fynock_youth.py
new file mode 100644
index 00000000..6a082f6c
--- /dev/null
+++ b/scripts/mobiles/talus/fearful_fynock_youth.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('fearful_fynock_youth')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setSocialGroup("fynock")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_fynock.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('fearful_fynock_youth', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/fed_dub_captain.py b/scripts/mobiles/talus/fed_dub_captain.py
new file mode 100644
index 00000000..71091708
--- /dev/null
+++ b/scripts/mobiles/talus/fed_dub_captain.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fed_dub_captain')
+ mobileTemplate.setLevel(46)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("fed dub")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_fed_dub_captain_twk_male_01.iff')
+ templates.add('object/mobile/shared_dressed_fed_dub_captain_twk_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('fed_dub_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/fed_dub_commander.py b/scripts/mobiles/talus/fed_dub_commander.py
new file mode 100644
index 00000000..0ffab2b4
--- /dev/null
+++ b/scripts/mobiles/talus/fed_dub_commander.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fed_dub_commander')
+ mobileTemplate.setLevel(47)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("fed dub")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_fed_dub_commander_bith_male_01.iff')
+ templates.add('object/mobile/shared_dressed_fed_dub_commander_bith_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('fed_dub_commander', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/fed_dub_constable.py b/scripts/mobiles/talus/fed_dub_constable.py
new file mode 100644
index 00000000..7c42688b
--- /dev/null
+++ b/scripts/mobiles/talus/fed_dub_constable.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fed_dub_constable')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("fed dub")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_fed_dub_constable_twk_male_01.iff')
+ templates.add('object/mobile/shared_dressed_fed_dub_constable_twk_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('fed_dub_constable', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/fed_dub_investigator.py b/scripts/mobiles/talus/fed_dub_investigator.py
new file mode 100644
index 00000000..40b98fe7
--- /dev/null
+++ b/scripts/mobiles/talus/fed_dub_investigator.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fed_dub_investigator')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("fed dub")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_fed_dub_investigator_twk_male_01.iff')
+ templates.add('object/mobile/shared_dressed_fed_dub_investigator_twk_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('fed_dub_investigator', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/fed_dub_patrolman.py b/scripts/mobiles/talus/fed_dub_patrolman.py
new file mode 100644
index 00000000..27a008c6
--- /dev/null
+++ b/scripts/mobiles/talus/fed_dub_patrolman.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fed_dub_patrolman')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("fed dub")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_fed_dub_patrolman_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_fed_dub_patrolman_human_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('fed_dub_patrolman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/fed_dub_supporter.py b/scripts/mobiles/talus/fed_dub_supporter.py
new file mode 100644
index 00000000..431a779b
--- /dev/null
+++ b/scripts/mobiles/talus/fed_dub_supporter.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fed_dub_supporter')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("fed dub")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_fed_dub_supporter_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_fed_dub_supporter_human_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('fed_dub_supporter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/feeble_kima.py b/scripts/mobiles/talus/feeble_kima.py
new file mode 100644
index 00000000..919fb9b3
--- /dev/null
+++ b/scripts/mobiles/talus/feeble_kima.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('feeble_kima')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setBoneAmount(7)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setSocialGroup("kima")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kima.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('feeble_kima', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/female_roba.py b/scripts/mobiles/talus/female_roba.py
new file mode 100644
index 00000000..a7f7b605
--- /dev/null
+++ b/scripts/mobiles/talus/female_roba.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('female_roba')
+ mobileTemplate.setLevel(44)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(15)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(10)
+ mobileTemplate.setSocialGroup("roba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_roba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('female_roba', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/ferine_razorfang.py b/scripts/mobiles/talus/ferine_razorfang.py
new file mode 100644
index 00000000..6bdc8921
--- /dev/null
+++ b/scripts/mobiles/talus/ferine_razorfang.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kima_ferine_razorfang')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(7)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setBoneAmount(8)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(7)
+ mobileTemplate.setSocialGroup("kima")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kima.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('ferine_razorfang', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/festering_dung_mite_queen.py b/scripts/mobiles/talus/festering_dung_mite_queen.py
new file mode 100644
index 00000000..433e1055
--- /dev/null
+++ b/scripts/mobiles/talus/festering_dung_mite_queen.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('festering_dung_queen')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(13)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('festering_dung_mite_queen', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/flite_rasp.py b/scripts/mobiles/talus/flite_rasp.py
new file mode 100644
index 00000000..362fcf68
--- /dev/null
+++ b/scripts/mobiles/talus/flite_rasp.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('flite_rasp')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(11)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setSocialGroup("rasp")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_flite_rasp.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('flite_rasp', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/flite_rasp2.py b/scripts/mobiles/talus/flite_rasp2.py
new file mode 100644
index 00000000..90c340c7
--- /dev/null
+++ b/scripts/mobiles/talus/flite_rasp2.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('flite_rasp')
+ mobileTemplate.setLevel(35)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(11)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setSocialGroup("rasp")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_flite_rasp.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('flite_rasp2', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/foaming_vynock.py b/scripts/mobiles/talus/foaming_vynock.py
new file mode 100644
index 00000000..441233d7
--- /dev/null
+++ b/scripts/mobiles/talus/foaming_vynock.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('foaming_vynock')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(50)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(70)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(20)
+ mobileTemplate.setSocialGroup("self")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_vynock.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('foaming_vynock', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/frenzied_fynock_guardian.py b/scripts/mobiles/talus/frenzied_fynock_guardian.py
new file mode 100644
index 00000000..4f229cf5
--- /dev/null
+++ b/scripts/mobiles/talus/frenzied_fynock_guardian.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('frenzied_fynock_guardian')
+ mobileTemplate.setLevel(11)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(8)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(8)
+ mobileTemplate.setSocialGroup("fynock")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_fynock.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('frenzied_fynock_guardian', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/fynock.py b/scripts/mobiles/talus/fynock.py
new file mode 100644
index 00000000..475145ba
--- /dev/null
+++ b/scripts/mobiles/talus/fynock.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fynock')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setMinLevel(40)
+ mobileTemplate.setMaxLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(22)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(33)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setSocialGroup("fynock")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_fynock.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('fynock', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/genetically_enhanced_kahmurra.py b/scripts/mobiles/talus/genetically_enhanced_kahmurra.py
new file mode 100644
index 00000000..e781f360
--- /dev/null
+++ b/scripts/mobiles/talus/genetically_enhanced_kahmurra.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('genetically_enhanced_kahmurra')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(50)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(30)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(35)
+ mobileTemplate.setSocialGroup("kahmurra")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kahmurra.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('genetically_enhanced_kahmurra', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/giant_decay_mite_guardian.py b/scripts/mobiles/talus/giant_decay_mite_guardian.py
new file mode 100644
index 00000000..ec5b3ae5
--- /dev/null
+++ b/scripts/mobiles/talus/giant_decay_mite_guardian.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_decay_mite_royal_guardian')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.5)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(22)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_decay_mite_guardian', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/giant_decay_mite_harvester.py b/scripts/mobiles/talus/giant_decay_mite_harvester.py
new file mode 100644
index 00000000..08398ace
--- /dev/null
+++ b/scripts/mobiles/talus/giant_decay_mite_harvester.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_decay_mite_harvester')
+ mobileTemplate.setLevel(10)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.5)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(12)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_decay_mite_harvester', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/giant_decay_mite_hatchling.py b/scripts/mobiles/talus/giant_decay_mite_hatchling.py
new file mode 100644
index 00000000..c241a112
--- /dev/null
+++ b/scripts/mobiles/talus/giant_decay_mite_hatchling.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_decay_mite_hatchling')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_decay_mite_hatchling', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/giant_decay_mite_protector.py b/scripts/mobiles/talus/giant_decay_mite_protector.py
new file mode 100644
index 00000000..bf2251f9
--- /dev/null
+++ b/scripts/mobiles/talus/giant_decay_mite_protector.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_decay_mite_protector')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.5)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(16)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_decay_mite_protector', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/giant_decay_mite_queen.py b/scripts/mobiles/talus/giant_decay_mite_queen.py
new file mode 100644
index 00000000..bcfc1eb8
--- /dev/null
+++ b/scripts/mobiles/talus/giant_decay_mite_queen.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_decay_mite_queen')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.5)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(28)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_decay_mite_queen', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/giant_decay_mite_sentry.py b/scripts/mobiles/talus/giant_decay_mite_sentry.py
new file mode 100644
index 00000000..1b923bb7
--- /dev/null
+++ b/scripts/mobiles/talus/giant_decay_mite_sentry.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_decay_mite_sentry')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.3)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_decay_mite_sentry', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/giant_decay_mite_soldier.py b/scripts/mobiles/talus/giant_decay_mite_soldier.py
new file mode 100644
index 00000000..ce47f694
--- /dev/null
+++ b/scripts/mobiles/talus/giant_decay_mite_soldier.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_decay_mite_soldier')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.5)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(18)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_decay_mite_soldier', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/giant_fynock.py b/scripts/mobiles/talus/giant_fynock.py
new file mode 100644
index 00000000..c3ef33c3
--- /dev/null
+++ b/scripts/mobiles/talus/giant_fynock.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_fynock')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(70)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(50)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(55)
+ mobileTemplate.setSocialGroup("fynock")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_fynock_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_fynock', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/giga_flite_rasp.py b/scripts/mobiles/talus/giga_flite_rasp.py
new file mode 100644
index 00000000..560de228
--- /dev/null
+++ b/scripts/mobiles/talus/giga_flite_rasp.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('giga_flite_rasp')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(20)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(6)
+ mobileTemplate.setSocialGroup("rasp")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_flite_rasp.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giga_flite_rasp', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/glutted_fynock_queen.py b/scripts/mobiles/talus/glutted_fynock_queen.py
new file mode 100644
index 00000000..895f6752
--- /dev/null
+++ b/scripts/mobiles/talus/glutted_fynock_queen.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('glutted_fynock_queen')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(30)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(25)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setSocialGroup("fynock")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_fynock_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('glutted_fynock_queen', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/greater_sludge_panther.py b/scripts/mobiles/talus/greater_sludge_panther.py
new file mode 100644
index 00000000..e5d630b5
--- /dev/null
+++ b/scripts/mobiles/talus/greater_sludge_panther.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('greater_sludge_panther')
+ mobileTemplate.setLevel(49)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(80)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(70)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(70)
+ mobileTemplate.setSocialGroup("sludge panther")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_sludge_panther.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('greater_sludge_panther', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/guf_drolg.py b/scripts/mobiles/talus/guf_drolg.py
new file mode 100644
index 00000000..76b23e53
--- /dev/null
+++ b/scripts/mobiles/talus/guf_drolg.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('guf_drolg')
+ mobileTemplate.setLevel(42)
+ mobileTemplate.setMinLevel(42)
+ mobileTemplate.setMaxLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptile Meat")
+ mobileTemplate.setMeatAmount(350)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(275)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(200)
+ mobileTemplate.setSocialGroup("guf drolg")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_guf_drolg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('guf_drolg', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/guf_drolg_female.py b/scripts/mobiles/talus/guf_drolg_female.py
new file mode 100644
index 00000000..98512850
--- /dev/null
+++ b/scripts/mobiles/talus/guf_drolg_female.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('guf_drolg_female')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.9)
+ mobileTemplate.setMeatType("Reptile Meat")
+ mobileTemplate.setMeatAmount(325)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(265)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(190)
+ mobileTemplate.setSocialGroup("guf drolg")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_guf_drolg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('guf_drolg_female', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/hilltop_kima.py b/scripts/mobiles/talus/hilltop_kima.py
new file mode 100644
index 00000000..896a9d51
--- /dev/null
+++ b/scripts/mobiles/talus/hilltop_kima.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hillto_kima')
+ mobileTemplate.setLevel(47)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(87)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(10)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(8)
+ mobileTemplate.setSocialGroup("kima")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kima.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('hilltop_kima', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/hirsch_sif.py b/scripts/mobiles/talus/hirsch_sif.py
new file mode 100644
index 00000000..a5d1f65a
--- /dev/null
+++ b/scripts/mobiles/talus/hirsch_sif.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hirsch_sif')
+ mobileTemplate.setLevel(57)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sif")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_hirsch_sif.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('hirsch_sif', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/huf_dun.py b/scripts/mobiles/talus/huf_dun.py
new file mode 100644
index 00000000..0e91cbbd
--- /dev/null
+++ b/scripts/mobiles/talus/huf_dun.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('huf_dun')
+ mobileTemplate.setLevel(47)
+ mobileTemplate.setMinLevel(47)
+ mobileTemplate.setMaxLevel(49)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(1350)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(1600)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(1350)
+ mobileTemplate.setSocialGroup("huf dun")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_huf_dun.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('huf_dun', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/huf_dun_bull.py b/scripts/mobiles/talus/huf_dun_bull.py
new file mode 100644
index 00000000..b3fb8aa9
--- /dev/null
+++ b/scripts/mobiles/talus/huf_dun_bull.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('huf_dun_bull')
+ mobileTemplate.setLevel(48)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(1350)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(1600)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(1350)
+ mobileTemplate.setSocialGroup("huf dun")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_huf_dun.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('huf_dun_bull', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/hunter_talus.py b/scripts/mobiles/talus/hunter_talus.py
new file mode 100644
index 00000000..6f77507c
--- /dev/null
+++ b/scripts/mobiles/talus/hunter_talus.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hunter_talus')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("talus poachers")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_forest_hunter.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('hunter_talus', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/jungle_fynock.py b/scripts/mobiles/talus/jungle_fynock.py
new file mode 100644
index 00000000..0e36c4a6
--- /dev/null
+++ b/scripts/mobiles/talus/jungle_fynock.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jungle_fynock')
+ mobileTemplate.setLevel(42)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(28)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(18)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(15)
+ mobileTemplate.setSocialGroup("fynock")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_fynock.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jungle_fynock', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/kahmurra_blanca.py b/scripts/mobiles/talus/kahmurra_blanca.py
new file mode 100644
index 00000000..478dd7d7
--- /dev/null
+++ b/scripts/mobiles/talus/kahmurra_blanca.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('murra_blanca')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("kahmurra")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kahmurra.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kahmurra_blanca', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/kima.py b/scripts/mobiles/talus/kima.py
new file mode 100644
index 00000000..5cfcc206
--- /dev/null
+++ b/scripts/mobiles/talus/kima.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kima')
+ mobileTemplate.setLevel(45)
+ mobileTemplate.setMinLevel(45)
+ mobileTemplate.setMaxLevel(47)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(7)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(8)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(7)
+ mobileTemplate.setSocialGroup("kima")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kima.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kima', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/liberation_activist.py b/scripts/mobiles/talus/liberation_activist.py
new file mode 100644
index 00000000..664aadc7
--- /dev/null
+++ b/scripts/mobiles/talus/liberation_activist.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('liberation_activist')
+ mobileTemplate.setLevel(47)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("liberation party")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_liberation_activist_rodian_female_01.iff')
+ templates.add('object/mobile/shared_dressed_liberation_activist_rodian_male_01.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+
+ core.spawnService.addMobileTemplate('liberation_activist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/liberation_fanatic.py b/scripts/mobiles/talus/liberation_fanatic.py
new file mode 100644
index 00000000..80ebd70b
--- /dev/null
+++ b/scripts/mobiles/talus/liberation_fanatic.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('liberation_fanatic')
+ mobileTemplate.setLevel(45)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("liberation party")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_liberation_fanatic_bith_female_01.iff')
+ templates.add('object/mobile/shared_dressed_liberation_fanatic_bith_male_01.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('liberation_fanatic', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/liberation_loyalist.py b/scripts/mobiles/talus/liberation_loyalist.py
new file mode 100644
index 00000000..3de1461b
--- /dev/null
+++ b/scripts/mobiles/talus/liberation_loyalist.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('liberation_loyalist')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("liberation party")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_liberation_loyalist_bith_female_01.iff')
+ templates.add('object/mobile/shared_dressed_liberation_loyalist_bith_male_01.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('liberation_loyalist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/liberation_partisan.py b/scripts/mobiles/talus/liberation_partisan.py
new file mode 100644
index 00000000..4443693d
--- /dev/null
+++ b/scripts/mobiles/talus/liberation_partisan.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('liberation_partisan')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("liberation party")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_liberation_partisan_rodian_female_01.iff')
+ templates.add('object/mobile/shared_dressed_liberation_partisan_rodian_male_01.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('liberation_partisan', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/liberation_patriot.py b/scripts/mobiles/talus/liberation_patriot.py
new file mode 100644
index 00000000..c8ae95c2
--- /dev/null
+++ b/scripts/mobiles/talus/liberation_patriot.py
@@ -0,0 +1,47 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('liberation_patriot')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("liberation party")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_liberation_patriot_rodian_female_01.iff')
+ templates.add('object/mobile/shared_dressed_liberation_patriot_rodian_male_01.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+
+ core.spawnService.addMobileTemplate('liberation_patriot', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/liberation_reactionist.py b/scripts/mobiles/talus/liberation_reactionist.py
new file mode 100644
index 00000000..b641fd2a
--- /dev/null
+++ b/scripts/mobiles/talus/liberation_reactionist.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('liberation_reactionist')
+ mobileTemplate.setLevel(46)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("liberation party")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_liberation_reactionist_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_liberation_reactionist_human_male_01.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('liberation_reactionist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/liberation_volunteer.py b/scripts/mobiles/talus/liberation_volunteer.py
new file mode 100644
index 00000000..bb3a712e
--- /dev/null
+++ b/scripts/mobiles/talus/liberation_volunteer.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('liberation_volunteer')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("liberation party")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_liberation_volunteer_rodian_female_01.iff')
+ templates.add('object/mobile/shared_dressed_liberation_volunteer_rodian_male_01.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('liberation_volunteer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/lost_aqualish_bomber.py b/scripts/mobiles/talus/lost_aqualish_bomber.py
new file mode 100644
index 00000000..d3562aeb
--- /dev/null
+++ b/scripts/mobiles/talus/lost_aqualish_bomber.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lost_aqualish_bomber')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("lost aqualish")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_lost_aqualish_bomber_male_01.iff')
+ templates.add('object/mobile/shared_dressed_lost_aqualish_bomber_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+
+ core.spawnService.addMobileTemplate('lost_aqualish_bomber', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/lost_aqualish_captain.py b/scripts/mobiles/talus/lost_aqualish_captain.py
new file mode 100644
index 00000000..751ff668
--- /dev/null
+++ b/scripts/mobiles/talus/lost_aqualish_captain.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lost_aqualish_captain')
+ mobileTemplate.setLevel(47)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("lost aqualish")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_lost_aqualish_captain_male_01.iff')
+ templates.add('object/mobile/shared_dressed_lost_aqualish_captain_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('lost_aqualish_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/lost_aqualish_commando.py b/scripts/mobiles/talus/lost_aqualish_commando.py
new file mode 100644
index 00000000..c94c9933
--- /dev/null
+++ b/scripts/mobiles/talus/lost_aqualish_commando.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lost_aqualish_commando')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("lost aqualish")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_lost_aqualish_commando_male_01.iff')
+ templates.add('object/mobile/shared_dressed_lost_aqualish_commando_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('lost_aqualish_commando', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/lost_aqualish_infiltrator.py b/scripts/mobiles/talus/lost_aqualish_infiltrator.py
new file mode 100644
index 00000000..c2427bea
--- /dev/null
+++ b/scripts/mobiles/talus/lost_aqualish_infiltrator.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lost_aqualish_infiltrator')
+ mobileTemplate.setLevel(45)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("lost aqualish")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_lost_aqualish_infiltrator_male_01.iff')
+ templates.add('object/mobile/shared_dressed_lost_aqualish_infiltrator_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('lost_aqualish_infiltrator', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/lost_aqualish_lookout.py b/scripts/mobiles/talus/lost_aqualish_lookout.py
new file mode 100644
index 00000000..2ab06718
--- /dev/null
+++ b/scripts/mobiles/talus/lost_aqualish_lookout.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lost_aqualish_lookout.py')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("lost aqualish")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_lost_aqualish_lookout_male_01.iff')
+ templates.add('object/mobile/shared_dressed_lost_aqualish_lookout_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('lost_aqualish_lookout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/lost_aqualish_marksman.py b/scripts/mobiles/talus/lost_aqualish_marksman.py
new file mode 100644
index 00000000..db516f0c
--- /dev/null
+++ b/scripts/mobiles/talus/lost_aqualish_marksman.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lost_aqualish_marksman')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("lost aqualish")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_lost_aqualish_marksman_male_01.iff')
+ templates.add('object/mobile/shared_dressed_lost_aqualish_marksman_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_t21.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('lost_aqualish_marksman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/lost_aqualish_marshal.py b/scripts/mobiles/talus/lost_aqualish_marshal.py
new file mode 100644
index 00000000..7c4972f8
--- /dev/null
+++ b/scripts/mobiles/talus/lost_aqualish_marshal.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lost_aqualish_marshal')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("lost aqualish")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_lost_aqualish_marshal_male_01.iff')
+ templates.add('object/mobile/shared_dressed_lost_aqualish_marshal_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('lost_aqualish_marshal', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/lost_aqualish_outrider.py b/scripts/mobiles/talus/lost_aqualish_outrider.py
new file mode 100644
index 00000000..50dd24cc
--- /dev/null
+++ b/scripts/mobiles/talus/lost_aqualish_outrider.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lost_aqualish_outrider')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("lost aqualish")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_lost_aqualish_outrider_male_01.iff')
+ templates.add('object/mobile/shared_dressed_lost_aqualish_outrider_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_t21.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('lost_aqualish_outrider', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/lost_aqualish_scout.py b/scripts/mobiles/talus/lost_aqualish_scout.py
new file mode 100644
index 00000000..24058ce1
--- /dev/null
+++ b/scripts/mobiles/talus/lost_aqualish_scout.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lost_aqualish_scout')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("lost aqualish")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_lost_aqualish_scout_male_01.iff')
+ templates.add('object/mobile/shared_dressed_lost_aqualish_scout_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_t21.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('lost_aqualish_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/lost_aqualish_soldier.py b/scripts/mobiles/talus/lost_aqualish_soldier.py
new file mode 100644
index 00000000..c1012675
--- /dev/null
+++ b/scripts/mobiles/talus/lost_aqualish_soldier.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lost_aqualish_soldier')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("lost aqualish")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_lost_aqualish_soldier_male_01.iff')
+ templates.add('object/mobile/shared_dressed_lost_aqualish_soldier_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('lost_aqualish_soldier', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/lost_aqualish_warchief.py b/scripts/mobiles/talus/lost_aqualish_warchief.py
new file mode 100644
index 00000000..ef527cdb
--- /dev/null
+++ b/scripts/mobiles/talus/lost_aqualish_warchief.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lost_aqualish_warchief')
+ mobileTemplate.setLevel(52)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("lost aqualish")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_lost_aqualish_warchief_male_01.iff')
+ templates.add('object/mobile/shared_dressed_lost_aqualish_warchief_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('lost_aqualish_warchief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/lost_aqualish_warrior.py b/scripts/mobiles/talus/lost_aqualish_warrior.py
new file mode 100644
index 00000000..96c477e9
--- /dev/null
+++ b/scripts/mobiles/talus/lost_aqualish_warrior.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lost_aqualish_warrior')
+ mobileTemplate.setLevel(42)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("lost aqualish")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_lost_aqualish_warrior_male_01.iff')
+ templates.add('object/mobile/shared_dressed_lost_aqualish_warrior_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_dh17.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('lost_aqualish_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/male_roba.py b/scripts/mobiles/talus/male_roba.py
new file mode 100644
index 00000000..c8ce452a
--- /dev/null
+++ b/scripts/mobiles/talus/male_roba.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('roba_male')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(11)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(17)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(12)
+ mobileTemplate.setSocialGroup("roba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_roba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('male_roba', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/meager_tortur.py b/scripts/mobiles/talus/meager_tortur.py
new file mode 100644
index 00000000..97522b6e
--- /dev/null
+++ b/scripts/mobiles/talus/meager_tortur.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('meager_tortur')
+ mobileTemplate.setLevel(42)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.7)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(650)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(575)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(650)
+ mobileTemplate.setSocialGroup("tortur")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_torton_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('meager_tortur', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/minor_guf_drolg.py b/scripts/mobiles/talus/minor_guf_drolg.py
new file mode 100644
index 00000000..53249014
--- /dev/null
+++ b/scripts/mobiles/talus/minor_guf_drolg.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('minor_guf_drolg')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.7)
+ mobileTemplate.setMeatType("Reptile Meat")
+ mobileTemplate.setMeatAmount(300)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(240)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(170)
+ mobileTemplate.setSocialGroup("guf drolg")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_guf_drolg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('minor_guf_drolg', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/minor_sludge_panther.py b/scripts/mobiles/talus/minor_sludge_panther.py
new file mode 100644
index 00000000..29c8761a
--- /dev/null
+++ b/scripts/mobiles/talus/minor_sludge_panther.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('minor_sludge_panther')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.7)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(20)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(27)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(27)
+ mobileTemplate.setSocialGroup("sludge panther")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_sludge_panther.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('minor_sludge_panther', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/mire_marauder.py b/scripts/mobiles/talus/mire_marauder.py
new file mode 100644
index 00000000..463aa5b2
--- /dev/null
+++ b/scripts/mobiles/talus/mire_marauder.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mire_marauder')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(150)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(140)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(140)
+ mobileTemplate.setSocialGroup("sludge panther")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_sludge_panther_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mire_marauder', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/mutated_kahmurra.py b/scripts/mobiles/talus/mutated_kahmurra.py
new file mode 100644
index 00000000..7912117f
--- /dev/null
+++ b/scripts/mobiles/talus/mutated_kahmurra.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mutated_kahmurra')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(50)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(33)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setBoneAmount(37)
+ mobileTemplate.setSocialGroup("kahmurra")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kahmurra.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mutated_kahmurra', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/oozing_dung_mite_guardian.py b/scripts/mobiles/talus/oozing_dung_mite_guardian.py
new file mode 100644
index 00000000..0ec03bea
--- /dev/null
+++ b/scripts/mobiles/talus/oozing_dung_mite_guardian.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('oozing_dung_royal_guardian')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(16)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('oozing_dung_mite_guardian', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/painted_spat.py b/scripts/mobiles/talus/painted_spat.py
new file mode 100644
index 00000000..d8bf78eb
--- /dev/null
+++ b/scripts/mobiles/talus/painted_spat.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('painted_spat')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("carrion spat")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_carrion_spat_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('painted_spat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/percussive_rasp.py b/scripts/mobiles/talus/percussive_rasp.py
new file mode 100644
index 00000000..0aaa677b
--- /dev/null
+++ b/scripts/mobiles/talus/percussive_rasp.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('percussive_rasp')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(12)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setSocialGroup("rasp")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_horned_rasp.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('percussive_rasp', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/poacher_talus.py b/scripts/mobiles/talus/poacher_talus.py
new file mode 100644
index 00000000..370fcd43
--- /dev/null
+++ b/scripts/mobiles/talus/poacher_talus.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('poacher_talus')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("talus poachers")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_forest_hunter.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('poacher_talus', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/putrid_decay_mite_hatchling.py b/scripts/mobiles/talus/putrid_decay_mite_hatchling.py
new file mode 100644
index 00000000..9f71b865
--- /dev/null
+++ b/scripts/mobiles/talus/putrid_decay_mite_hatchling.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('putrid_decay_mite_hatchling')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(12)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('putrid_decay_mite_hatchling', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/rabid_mutant_kahmurra.py b/scripts/mobiles/talus/rabid_mutant_kahmurra.py
new file mode 100644
index 00000000..d91e748a
--- /dev/null
+++ b/scripts/mobiles/talus/rabid_mutant_kahmurra.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rabid_mutant_kahmurra')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(50)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(30)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setBoneAmount(35)
+ mobileTemplate.setSocialGroup("kahmurra")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kahmurra.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rabid_mutant_kahmurra', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/ravenous_rasp.py b/scripts/mobiles/talus/ravenous_rasp.py
new file mode 100644
index 00000000..fee9afd9
--- /dev/null
+++ b/scripts/mobiles/talus/ravenous_rasp.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ravenous_rasp')
+ mobileTemplate.setLevel(35)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(45)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(15)
+ mobileTemplate.setSocialGroup("voracious rasp")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_horned_rasp_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('ravenous_rasp', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/rot_mite.py b/scripts/mobiles/talus/rot_mite.py
new file mode 100644
index 00000000..1036d215
--- /dev/null
+++ b/scripts/mobiles/talus/rot_mite.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rot_mite')
+ mobileTemplate.setLevel(39)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.8)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rot_mite', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/savage_guf_drolg.py b/scripts/mobiles/talus/savage_guf_drolg.py
new file mode 100644
index 00000000..e1b69638
--- /dev/null
+++ b/scripts/mobiles/talus/savage_guf_drolg.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('savage_guf_drolg')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptile Meat")
+ mobileTemplate.setMeatAmount(550)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(460)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(320)
+ mobileTemplate.setSocialGroup("guf drolg")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_guf_drolg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('savage_guf_drolg', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/sickly_decay_mite_queen.py b/scripts/mobiles/talus/sickly_decay_mite_queen.py
new file mode 100644
index 00000000..2784087a
--- /dev/null
+++ b/scripts/mobiles/talus/sickly_decay_mite_queen.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sickly_decay_mite_queen')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setSocialGroup("decay mite")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bark_mite_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sickly_decay_mite_queen', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/sleemo_delinquent.py b/scripts/mobiles/talus/sleemo_delinquent.py
new file mode 100644
index 00000000..387376a7
--- /dev/null
+++ b/scripts/mobiles/talus/sleemo_delinquent.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sleemo_delinquent')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sleemo gang")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_talus_sif_mercenary_rodian_01.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('sleemo_delinquent', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/sleemo_hoodlum.py b/scripts/mobiles/talus/sleemo_hoodlum.py
new file mode 100644
index 00000000..7f894349
--- /dev/null
+++ b/scripts/mobiles/talus/sleemo_hoodlum.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sleemo_hoodlum')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sleemo gang")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_talus_sif_mercenary_rodian_02.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('sleemo_hoodlum', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/sleemo_punk.py b/scripts/mobiles/talus/sleemo_punk.py
new file mode 100644
index 00000000..1feddcb4
--- /dev/null
+++ b/scripts/mobiles/talus/sleemo_punk.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sleemo_punk')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sleemo gang")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_talus_sif_mercenary_trand_01.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('sleemo_punk', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/sleemo_scamp.py b/scripts/mobiles/talus/sleemo_scamp.py
new file mode 100644
index 00000000..326768a3
--- /dev/null
+++ b/scripts/mobiles/talus/sleemo_scamp.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sleemo_scamp')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sleemo gang")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_talus_sif_mercenary_trand_02.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('sleemo_scamp', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/sleemo_vandal.py b/scripts/mobiles/talus/sleemo_vandal.py
new file mode 100644
index 00000000..b57aa58b
--- /dev/null
+++ b/scripts/mobiles/talus/sleemo_vandal.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sleemo_vandal')
+ mobileTemplate.setLevel(7)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sleemo gang")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_talus_sif_mercenary_rodian_01.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('sleemo_vandal', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/sludge_panther.py b/scripts/mobiles/talus/sludge_panther.py
new file mode 100644
index 00000000..5fbf5deb
--- /dev/null
+++ b/scripts/mobiles/talus/sludge_panther.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('sludge_panther')
+ mobileTemplate.setLevel(44)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(24)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setBoneType("Mammal Bone")
+ mobileTemplate.setHideAmount(31)
+ mobileTemplate.setSocialGroup("sludge panther")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_sludge_panther.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sludge_panther', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/song_rasp.py b/scripts/mobiles/talus/song_rasp.py
new file mode 100644
index 00000000..de0825bb
--- /dev/null
+++ b/scripts/mobiles/talus/song_rasp.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('song_rasp')
+ mobileTemplate.setLevel(37)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setSocialGroup("rasp")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_horned_rasp_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('song_rasp', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/stunted_huf_dun.py b/scripts/mobiles/talus/stunted_huf_dun.py
new file mode 100644
index 00000000..a2e1a455
--- /dev/null
+++ b/scripts/mobiles/talus/stunted_huf_dun.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stunted_huf_dun')
+ mobileTemplate.setLevel(36)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.6)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(775)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(800)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(775)
+ mobileTemplate.setSocialGroup("huf dun")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_huf_dun.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stunted_huf_dun', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/tortur_bull.py b/scripts/mobiles/talus/tortur_bull.py
new file mode 100644
index 00000000..db441e94
--- /dev/null
+++ b/scripts/mobiles/talus/tortur_bull.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tortur_bull')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(1300)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(1151)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(1301)
+ mobileTemplate.setSocialGroup("tortur")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_torton_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tortur_bull', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/trandoshan_sif_02.py b/scripts/mobiles/talus/trandoshan_sif_02.py
new file mode 100644
index 00000000..6a347d6e
--- /dev/null
+++ b/scripts/mobiles/talus/trandoshan_sif_02.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('trandoshan_sif')
+ mobileTemplate.setLevel(43)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sif")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_talus_sif_mercenary_trand_02.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('trandoshan_sif_02', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/vicious_huf_dun.py b/scripts/mobiles/talus/vicious_huf_dun.py
new file mode 100644
index 00000000..c45ba93d
--- /dev/null
+++ b/scripts/mobiles/talus/vicious_huf_dun.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('vicious_huf_dun')
+ mobileTemplate.setLevel(46)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(850)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(900)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(850)
+ mobileTemplate.setSocialGroup("huf dun")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_huf_dun.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vicious_huf_dun', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/voracious_rasp.py b/scripts/mobiles/talus/voracious_rasp.py
new file mode 100644
index 00000000..2389c673
--- /dev/null
+++ b/scripts/mobiles/talus/voracious_rasp.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+ mobileTemplate.setCreatureName('voracious_rasp')
+ mobileTemplate.setLevel(35)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(5)
+ mobileTemplate.setMaxSpawnDistance(10)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(60)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(25)
+ mobileTemplate.setSocialGroup("voracious rasp")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_horned_rasp_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('voracious_rasp', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/talus/wolf_kima.py b/scripts/mobiles/talus/wolf_kima.py
new file mode 100644
index 00000000..965fdb54
--- /dev/null
+++ b/scripts/mobiles/talus/wolf_kima.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('wolf_kima')
+ mobileTemplate.setLevel(45)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1.2)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(11)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setSocialGroup("kima")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kima.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('wolf_kima', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/adolescent_krayt_dragon.py b/scripts/mobiles/tatooine/adolescent_krayt_dragon.py
new file mode 100644
index 00000000..f40e4860
--- /dev/null
+++ b/scripts/mobiles/tatooine/adolescent_krayt_dragon.py
@@ -0,0 +1,47 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('krayt_dragon_adolescent')
+ mobileTemplate.setLevel(84)
+ mobileTemplate.setMinLevel(80)
+ mobileTemplate.setMaxLevel(84)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(10)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(0.7)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(1700)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(950)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setBoneAmount(905)
+ mobileTemplate.setSocialGroup("krayt dragon")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_krayt_dragon.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('adolescent_krayt_dragon', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/alkhara_bandit.py b/scripts/mobiles/tatooine/alkhara_bandit.py
new file mode 100644
index 00000000..3aaa476e
--- /dev/null
+++ b/scripts/mobiles/tatooine/alkhara_bandit.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('alkhara_bandit')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setMinLevel(14)
+ mobileTemplate.setMaxLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("alkhara")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_alkhara_bandit.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_cdef.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('alkhara_bandit', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/alkhara_bandit_king.py b/scripts/mobiles/tatooine/alkhara_bandit_king.py
new file mode 100644
index 00000000..df9d1855
--- /dev/null
+++ b/scripts/mobiles/tatooine/alkhara_bandit_king.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('alkhara_bandit_king')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("alkhara")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_alkhara_king.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_cdef.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('alkhara_bandit_king', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/alkhara_champion.py b/scripts/mobiles/tatooine/alkhara_champion.py
new file mode 100644
index 00000000..16d0180f
--- /dev/null
+++ b/scripts/mobiles/tatooine/alkhara_champion.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('alkhara_champion')
+ mobileTemplate.setLevel(21)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("alkhara")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_alkhara_champion.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('alkhara_bandit_champion', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/alkhara_lieutenant.py b/scripts/mobiles/tatooine/alkhara_lieutenant.py
new file mode 100644
index 00000000..897bfdaf
--- /dev/null
+++ b/scripts/mobiles/tatooine/alkhara_lieutenant.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('alkhara_lieutenant')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("alkhara")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_alkhara_lieutenant.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_cdef.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('alkhara_lieutenant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/armodragon.py b/scripts/mobiles/tatooine/armodragon.py
new file mode 100644
index 00000000..c571d5ee
--- /dev/null
+++ b/scripts/mobiles/tatooine/armodragon.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dragonet_armodragon')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setMinLevel(25)
+ mobileTemplate.setMaxLevel(27)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(125)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setHideAmount(68)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setBoneAmount(75)
+ mobileTemplate.setSocialGroup("dragonet")
+ mobileTemplate.setAssistRange(24)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dragonet.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('armodragon', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/arrworr.py b/scripts/mobiles/tatooine/arrworr.py
new file mode 100644
index 00000000..325f6e1a
--- /dev/null
+++ b/scripts/mobiles/tatooine/arrworr.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('c_syren_3_arrworr')
+ mobileTemplate.setLevel(55)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("kashyyyk")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_c_syren_3_trandoshan_boss.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('arrworr', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/bantha.py b/scripts/mobiles/tatooine/bantha.py
new file mode 100644
index 00000000..aa1699eb
--- /dev/null
+++ b/scripts/mobiles/tatooine/bantha.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bantha')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setMinLevel(14)
+ mobileTemplate.setMaxLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(450)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(325)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setBoneAmount(250)
+ mobileTemplate.setSocialGroup("bantha")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bantha_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bantha', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/bantha_low.py b/scripts/mobiles/tatooine/bantha_low.py
new file mode 100644
index 00000000..18c3f7cb
--- /dev/null
+++ b/scripts/mobiles/tatooine/bantha_low.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bantha')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setMinLevel(8)
+ mobileTemplate.setMaxLevel(10)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(450)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(250)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(325)
+ mobileTemplate.setSocialGroup("bantha")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bantha_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bantha_low', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/bantha_matriarch.py b/scripts/mobiles/tatooine/bantha_matriarch.py
new file mode 100644
index 00000000..6f480187
--- /dev/null
+++ b/scripts/mobiles/tatooine/bantha_matriarch.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('matriarch_bantha')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setMinLevel(15)
+ mobileTemplate.setMaxLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(485)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(365)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(320)
+ mobileTemplate.setSocialGroup("bantha")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_matriarch_bantha.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bantha_matriarch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/bd34.py b/scripts/mobiles/tatooine/bd34.py
new file mode 100644
index 00000000..e99b37e7
--- /dev/null
+++ b/scripts/mobiles/tatooine/bd34.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('legacy_lin34_droid')
+ mobileTemplate.setLevel(22)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("astromech")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_battle_droid.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bd34', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/blight_boar.py b/scripts/mobiles/tatooine/blight_boar.py
new file mode 100644
index 00000000..a5bde055
--- /dev/null
+++ b/scripts/mobiles/tatooine/blight_boar.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('zucca_boar_blight')
+ mobileTemplate.setLevel(9)
+ mobileTemplate.setMinLevel(9)
+ mobileTemplate.setMaxLevel(10)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(40)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setSocialGroup("bantha")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_zucca_boar.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blight_boar', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/bocatt.py b/scripts/mobiles/tatooine/bocatt.py
new file mode 100644
index 00000000..69d0b5ef
--- /dev/null
+++ b/scripts/mobiles/tatooine/bocatt.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bocatt')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setMinLevel(17)
+ mobileTemplate.setMaxLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(100)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(60)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setSocialGroup("bocatt")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bocatt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bocatt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/bomarr_monk.py b/scripts/mobiles/tatooine/bomarr_monk.py
new file mode 100644
index 00000000..2777e69b
--- /dev/null
+++ b/scripts/mobiles/tatooine/bomarr_monk.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bomarr_monk')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("spiderdroid")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bomarr_spider_monk_droid.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bomarr_monk', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/bomarr_monk_abbot.py b/scripts/mobiles/tatooine/bomarr_monk_abbot.py
new file mode 100644
index 00000000..017cce98
--- /dev/null
+++ b/scripts/mobiles/tatooine/bomarr_monk_abbot.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bomarr_monk_abbot')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("spiderdroid")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bomarr_spider_monk_droid.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bomarr_monk_abbot', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/bomarr_monk_bodyguard.py b/scripts/mobiles/tatooine/bomarr_monk_bodyguard.py
new file mode 100644
index 00000000..290961fc
--- /dev/null
+++ b/scripts/mobiles/tatooine/bomarr_monk_bodyguard.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bomarr_monk_bodyguard')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("spiderdroid")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bomarr_spider_monk_droid.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bomarr_monk_bodyguard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/bomarr_monk_healer.py b/scripts/mobiles/tatooine/bomarr_monk_healer.py
new file mode 100644
index 00000000..5ff6ef95
--- /dev/null
+++ b/scripts/mobiles/tatooine/bomarr_monk_healer.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bomarr_monk_healer')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("spiderdroid")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bomarr_spider_monk_droid.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bomarr_monk_healer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/bomarr_monk_initiate.py b/scripts/mobiles/tatooine/bomarr_monk_initiate.py
new file mode 100644
index 00000000..dd53113c
--- /dev/null
+++ b/scripts/mobiles/tatooine/bomarr_monk_initiate.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bomarr_monk_initiate')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("spiderdroid")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bomarr_spider_monk_droid.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bomarr_monk_initiate', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/bonecracker_bantha.py b/scripts/mobiles/tatooine/bonecracker_bantha.py
new file mode 100644
index 00000000..88361e49
--- /dev/null
+++ b/scripts/mobiles/tatooine/bonecracker_bantha.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bantha_bonecracker')
+ mobileTemplate.setLevel(21)
+ mobileTemplate.setMinLevel(21)
+ mobileTemplate.setMaxLevel(22)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(475)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(345)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(300)
+ mobileTemplate.setSocialGroup("bantha")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bantha_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bonecracker_bantha', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/bull_bantha.py b/scripts/mobiles/tatooine/bull_bantha.py
new file mode 100644
index 00000000..5001ca79
--- /dev/null
+++ b/scripts/mobiles/tatooine/bull_bantha.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bull_bantha')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setMinLevel(15)
+ mobileTemplate.setMaxLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(475)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(345)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(300)
+ mobileTemplate.setSocialGroup("bantha")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bantha_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bull_bantha', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/bull_ronto.py b/scripts/mobiles/tatooine/bull_ronto.py
new file mode 100644
index 00000000..01ffb015
--- /dev/null
+++ b/scripts/mobiles/tatooine/bull_ronto.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ronto_male')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setMinLevel(18)
+ mobileTemplate.setMaxLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(465)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(320)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(200)
+ mobileTemplate.setSocialGroup("ronto")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_ronto.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bullronto', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/cannibal.py b/scripts/mobiles/tatooine/cannibal.py
new file mode 100644
index 00000000..e92a226d
--- /dev/null
+++ b/scripts/mobiles/tatooine/cannibal.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('cannibal')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("kashyyyk")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_cannibal.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('cannibal', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/cannibal_dewback.py b/scripts/mobiles/tatooine/cannibal_dewback.py
new file mode 100644
index 00000000..f6dcf294
--- /dev/null
+++ b/scripts/mobiles/tatooine/cannibal_dewback.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dewback_cannibal')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setMinLevel(13)
+ mobileTemplate.setMaxLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(340)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(260)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(185)
+ mobileTemplate.setSocialGroup("dewback cannibal")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dewback.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('cannibal_dewback', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/canyon_krayt_dragon.py b/scripts/mobiles/tatooine/canyon_krayt_dragon.py
new file mode 100644
index 00000000..15c2befe
--- /dev/null
+++ b/scripts/mobiles/tatooine/canyon_krayt_dragon.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('canyon_krayt_dragon')
+ mobileTemplate.setLevel(85)
+ mobileTemplate.setMinLevel(80)
+ mobileTemplate.setMaxLevel(86)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(0.9)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(1250)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(750)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(675)
+ mobileTemplate.setSocialGroup("krayt dragon")
+ mobileTemplate.setAssistRange(36)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_canyon_krayt_dragon.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('canyon_krayt_dragon', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/carion_kreetle.py b/scripts/mobiles/tatooine/carion_kreetle.py
new file mode 100644
index 00000000..7f066d5a
--- /dev/null
+++ b/scripts/mobiles/tatooine/carion_kreetle.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fragile_kreetle')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setMinLevel(2)
+ mobileTemplate.setMaxLevel(7)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(1)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("kreetle")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kreetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('carrion_kreetle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/cave_beetle.py b/scripts/mobiles/tatooine/cave_beetle.py
new file mode 100644
index 00000000..19718882
--- /dev/null
+++ b/scripts/mobiles/tatooine/cave_beetle.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('cave_beetle')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setMinLevel(20)
+ mobileTemplate.setMaxLevel(21)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(8)
+ mobileTemplate.setSocialGroup("rock beetle")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rock_beetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('cave_beetle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/cave_beetle2.py b/scripts/mobiles/tatooine/cave_beetle2.py
new file mode 100644
index 00000000..3c8a5ea3
--- /dev/null
+++ b/scripts/mobiles/tatooine/cave_beetle2.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('cave_beetle')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setMinLevel(20)
+ mobileTemplate.setMaxLevel(22)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.2)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(8)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(10)
+ mobileTemplate.setSocialGroup("rock beetle")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rock_beetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('cave_beetle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/city_rockmite.py b/scripts/mobiles/tatooine/city_rockmite.py
new file mode 100644
index 00000000..b0164043
--- /dev/null
+++ b/scripts/mobiles/tatooine/city_rockmite.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('city_rockmite')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setMinLevel(5)
+ mobileTemplate.setMaxLevel(7)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("rockmite")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rock_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('city_rockmite', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/city_sewer_swamprat.py b/scripts/mobiles/tatooine/city_sewer_swamprat.py
new file mode 100644
index 00000000..7e6b22ce
--- /dev/null
+++ b/scripts/mobiles/tatooine/city_sewer_swamprat.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('city_sewer_swamprat')
+ mobileTemplate.setLevel(3)
+ mobileTemplate.setMinLevel(3)
+ mobileTemplate.setMaxLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(2)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(1)
+ mobileTemplate.setSocialGroup("womprat")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_womp_rat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('city_sewer_swamprat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/crimelord.py b/scripts/mobiles/tatooine/crimelord.py
new file mode 100644
index 00000000..0f97408d
--- /dev/null
+++ b/scripts/mobiles/tatooine/crimelord.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crimelord')
+ mobileTemplate.setLevel(11)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("hutt")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_crimelord.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('crimelord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/crimelord_1.py b/scripts/mobiles/tatooine/crimelord_1.py
new file mode 100644
index 00000000..75e497a7
--- /dev/null
+++ b/scripts/mobiles/tatooine/crimelord_1.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crimelord')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("hutt")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_crimelord.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('crimelord_1', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/cupa.py b/scripts/mobiles/tatooine/cupa.py
new file mode 100644
index 00000000..ac4aa47e
--- /dev/null
+++ b/scripts/mobiles/tatooine/cupa.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('cu_pa')
+ mobileTemplate.setLevel(10)
+ mobileTemplate.setMinLevel(10)
+ mobileTemplate.setMaxLevel(11)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(215)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(100)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(100)
+ mobileTemplate.setSocialGroup("cu pa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_cu_pa.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('cu_pa', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/death_kreetle.py b/scripts/mobiles/tatooine/death_kreetle.py
new file mode 100644
index 00000000..adaad64f
--- /dev/null
+++ b/scripts/mobiles/tatooine/death_kreetle.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kreetle_death')
+ mobileTemplate.setLevel(7)
+ mobileTemplate.setMinLevel(7)
+ mobileTemplate.setMaxLevel(8)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("uber kreetle")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kreetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('death_kreetle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dervish.py b/scripts/mobiles/tatooine/dervish.py
new file mode 100644
index 00000000..ebc20f07
--- /dev/null
+++ b/scripts/mobiles/tatooine/dervish.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dervish')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("dervish")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_dervish.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dervish', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/desert_demon.py b/scripts/mobiles/tatooine/desert_demon.py
new file mode 100644
index 00000000..c4017e5d
--- /dev/null
+++ b/scripts/mobiles/tatooine/desert_demon.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('desert_demon')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("desert demon")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_desert_demon.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('desert_demon', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/desert_demon_bodyguard.py b/scripts/mobiles/tatooine/desert_demon_bodyguard.py
new file mode 100644
index 00000000..ac4c2b7b
--- /dev/null
+++ b/scripts/mobiles/tatooine/desert_demon_bodyguard.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('desert_demon_bodyguard')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("desert demon")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_desert_demon_bodyguard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('desert_demon_bodyguard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/desert_demon_brawler.py b/scripts/mobiles/tatooine/desert_demon_brawler.py
new file mode 100644
index 00000000..db38bbe7
--- /dev/null
+++ b/scripts/mobiles/tatooine/desert_demon_brawler.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('desert_demon_brawler')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("desert demon")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_desert_demon_brawler.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate1 = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('desert_demon_brawler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/desert_demon_leader.py b/scripts/mobiles/tatooine/desert_demon_leader.py
new file mode 100644
index 00000000..3899cf4c
--- /dev/null
+++ b/scripts/mobiles/tatooine/desert_demon_leader.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('desert_demon_leader')
+ mobileTemplate.setLevel(3)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("desert demon")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_desert_demon_leader.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('desert_demon_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/desert_demon_marksman.py b/scripts/mobiles/tatooine/desert_demon_marksman.py
new file mode 100644
index 00000000..c2ef4f15
--- /dev/null
+++ b/scripts/mobiles/tatooine/desert_demon_marksman.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('desert_demon_marksman')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("desert demon")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_desert_demon_marksman.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_cdef.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('desert_demon_marksman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/desert_eopie.py b/scripts/mobiles/tatooine/desert_eopie.py
new file mode 100644
index 00000000..1f629028
--- /dev/null
+++ b/scripts/mobiles/tatooine/desert_eopie.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('desert_eopie')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setMinLevel(16)
+ mobileTemplate.setMaxLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(300)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(225)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(125)
+ mobileTemplate.setSocialGroup("eopie")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_eopie.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('desert_eopie', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/desert_kreetle.py b/scripts/mobiles/tatooine/desert_kreetle.py
new file mode 100644
index 00000000..5a33b9be
--- /dev/null
+++ b/scripts/mobiles/tatooine/desert_kreetle.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('orphan_kreetle')
+ mobileTemplate.setLevel(3)
+ mobileTemplate.setMinLevel(3)
+ mobileTemplate.setMaxLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(1)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("kreetle")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kreetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('desert_kreetle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/desert_razorback.py b/scripts/mobiles/tatooine/desert_razorback.py
new file mode 100644
index 00000000..7e78276a
--- /dev/null
+++ b/scripts/mobiles/tatooine/desert_razorback.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('desert_razorback')
+ mobileTemplate.setLevel(23)
+ mobileTemplate.setMinLevel(23)
+ mobileTemplate.setMaxLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(25)
+ mobileTemplate.setSocialGroup("zucca Boar")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_zucca_boar.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('desert_razorback', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/desert_squill.py b/scripts/mobiles/tatooine/desert_squill.py
new file mode 100644
index 00000000..23ef655b
--- /dev/null
+++ b/scripts/mobiles/tatooine/desert_squill.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('desert_squill')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setMinLevel(14)
+ mobileTemplate.setMaxLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(4)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setSocialGroup("squill")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_squill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('desert_squill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/desert_swooper.py b/scripts/mobiles/tatooine/desert_swooper.py
new file mode 100644
index 00000000..1092efd5
--- /dev/null
+++ b/scripts/mobiles/tatooine/desert_swooper.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('desert_swooper')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("swoop")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_desert_swooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('desert_swooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/desert_swooper_leader.py b/scripts/mobiles/tatooine/desert_swooper_leader.py
new file mode 100644
index 00000000..14e40754
--- /dev/null
+++ b/scripts/mobiles/tatooine/desert_swooper_leader.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('desert_swooper_leader')
+ mobileTemplate.setLevel(3)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("swoop")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_desert_swooper_leader.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('desert_swooper_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/desert_thug.py b/scripts/mobiles/tatooine/desert_thug.py
new file mode 100644
index 00000000..6bca18ea
--- /dev/null
+++ b/scripts/mobiles/tatooine/desert_thug.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('desert_thug')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("thug")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_thug.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('desert_thug', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dewback.py b/scripts/mobiles/tatooine/dewback.py
new file mode 100644
index 00000000..9808f52e
--- /dev/null
+++ b/scripts/mobiles/tatooine/dewback.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dewback')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setMinLevel(17)
+ mobileTemplate.setMaxLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(350)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(275)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(200)
+ mobileTemplate.setSocialGroup("dewback")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dewback.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dewback', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dimu_abbot.py b/scripts/mobiles/tatooine/dimu_abbot.py
new file mode 100644
index 00000000..8ab0045a
--- /dev/null
+++ b/scripts/mobiles/tatooine/dimu_abbot.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dim_u_c')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("dim-u")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_dim_u_abbot.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dimu_abbot', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dimu_bantha.py b/scripts/mobiles/tatooine/dimu_bantha.py
new file mode 100644
index 00000000..9eb67934
--- /dev/null
+++ b/scripts/mobiles/tatooine/dimu_bantha.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dim_u_bantha')
+ mobileTemplate.setLevel(3)
+ mobileTemplate.setMinLevel(3)
+ mobileTemplate.setMaxLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(450)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(325)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(250)
+ mobileTemplate.setSocialGroup("dim-u")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bantha_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dim-u_bantha', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dimu_cleric.py b/scripts/mobiles/tatooine/dimu_cleric.py
new file mode 100644
index 00000000..51c3bcae
--- /dev/null
+++ b/scripts/mobiles/tatooine/dimu_cleric.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dim_u_cleric')
+ mobileTemplate.setLevel(3)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("dim-u")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_dim_u_cleric.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dimu_cleric', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dimu_monastery_nun.py b/scripts/mobiles/tatooine/dimu_monastery_nun.py
new file mode 100644
index 00000000..5d341724
--- /dev/null
+++ b/scripts/mobiles/tatooine/dimu_monastery_nun.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dim_u_monastery_nun')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("dim-u")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_dim_u_monastery_nun.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dimu_monastery_nun', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dimu_monk.py b/scripts/mobiles/tatooine/dimu_monk.py
new file mode 100644
index 00000000..8ff4c056
--- /dev/null
+++ b/scripts/mobiles/tatooine/dimu_monk.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dim_u_monk')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("dim-u")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_dim_u_monk.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dimu_monk', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dimu_preacher.py b/scripts/mobiles/tatooine/dimu_preacher.py
new file mode 100644
index 00000000..07a4965e
--- /dev/null
+++ b/scripts/mobiles/tatooine/dimu_preacher.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dim_u_preacher')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("dim-u")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_dim_u_preacher.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dimu_preacher', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dimu_priestess.py b/scripts/mobiles/tatooine/dimu_priestess.py
new file mode 100644
index 00000000..6f59d217
--- /dev/null
+++ b/scripts/mobiles/tatooine/dimu_priestess.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dim_u_priestess')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("dim-u")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_dim_u_priestess.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dimu_priestess', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/diseased_bocatt.py b/scripts/mobiles/tatooine/diseased_bocatt.py
new file mode 100644
index 00000000..81638d7d
--- /dev/null
+++ b/scripts/mobiles/tatooine/diseased_bocatt.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bocatt_diseased')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setMinLevel(5)
+ mobileTemplate.setMaxLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("bocatt")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bocatt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('diseased_bocatt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/domestic_eopie.py b/scripts/mobiles/tatooine/domestic_eopie.py
new file mode 100644
index 00000000..0cddcc55
--- /dev/null
+++ b/scripts/mobiles/tatooine/domestic_eopie.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('domestic_eopie')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setMinLevel(1)
+ mobileTemplate.setMaxLevel(3)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Domesticated Meat")
+ mobileTemplate.setMeatAmount(335)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(260)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(190)
+ mobileTemplate.setSocialGroup("eopie")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_eopie.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('domestic_eopie', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dragonet.py b/scripts/mobiles/tatooine/dragonet.py
new file mode 100644
index 00000000..d67323d9
--- /dev/null
+++ b/scripts/mobiles/tatooine/dragonet.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dragonet')
+ mobileTemplate.setLevel(24)
+ mobileTemplate.setMinLevel(24)
+ mobileTemplate.setMaxLevel(27)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(125)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(75)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(68)
+ mobileTemplate.setSocialGroup("dragonet")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dune_lizard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dragonet', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/drooling_nuna.py b/scripts/mobiles/tatooine/drooling_nuna.py
new file mode 100644
index 00000000..e3be3acb
--- /dev/null
+++ b/scripts/mobiles/tatooine/drooling_nuna.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dwarf_nuna_drooling')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setMinLevel(2)
+ mobileTemplate.setMaxLevel(3)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(2)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(1)
+ mobileTemplate.setSocialGroup("dwarf nuna")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_nuna.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('drooling_nuna', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dune_bantha.py b/scripts/mobiles/tatooine/dune_bantha.py
new file mode 100644
index 00000000..984c29bf
--- /dev/null
+++ b/scripts/mobiles/tatooine/dune_bantha.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dune_bantha')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setMinLevel(20)
+ mobileTemplate.setMaxLevel(22)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(375)
+ mobileTemplate.setHideType("Wooley Hide")
+ mobileTemplate.setBoneAmount(275)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(175)
+ mobileTemplate.setSocialGroup("bantha")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bantha_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dune_bantha', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dune_beetle.py b/scripts/mobiles/tatooine/dune_beetle.py
new file mode 100644
index 00000000..96b36222
--- /dev/null
+++ b/scripts/mobiles/tatooine/dune_beetle.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dune_beetle')
+ mobileTemplate.setLevel(9)
+ mobileTemplate.setMinLevel(9)
+ mobileTemplate.setMaxLevel(10)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(8)
+ mobileTemplate.setSocialGroup("giant sand beetle")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_sand_beetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dune_beetle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dune_lizard.py b/scripts/mobiles/tatooine/dune_lizard.py
new file mode 100644
index 00000000..0b8d0664
--- /dev/null
+++ b/scripts/mobiles/tatooine/dune_lizard.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dune_lizard')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setMinLevel(18)
+ mobileTemplate.setMaxLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(85)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(50)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setSocialGroup("dune lizard")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dune_lizard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dune_lizard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dune_stalker.py b/scripts/mobiles/tatooine/dune_stalker.py
new file mode 100644
index 00000000..420ee983
--- /dev/null
+++ b/scripts/mobiles/tatooine/dune_stalker.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dune_stalker')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("dune stalker")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_dune_stalker.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dune_stalker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dune_stalker_brawler.py b/scripts/mobiles/tatooine/dune_stalker_brawler.py
new file mode 100644
index 00000000..9df6262e
--- /dev/null
+++ b/scripts/mobiles/tatooine/dune_stalker_brawler.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dune_stalker_brawler')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("dune stalker")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_dune_stalker_brawler.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dune_stalker_brawler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dune_stalker_enforcer.py b/scripts/mobiles/tatooine/dune_stalker_enforcer.py
new file mode 100644
index 00000000..13a28e6b
--- /dev/null
+++ b/scripts/mobiles/tatooine/dune_stalker_enforcer.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dune_stalker_enforcer')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("dune stalker")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_dune_stalker.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dune_stalker_enforcer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dune_stalker_leader.py b/scripts/mobiles/tatooine/dune_stalker_leader.py
new file mode 100644
index 00000000..49752d20
--- /dev/null
+++ b/scripts/mobiles/tatooine/dune_stalker_leader.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dune_stalker_leader')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("dune stalker")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_dune_stalker_leader.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dune_stalker_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dune_stalker_marksman.py b/scripts/mobiles/tatooine/dune_stalker_marksman.py
new file mode 100644
index 00000000..7f443685
--- /dev/null
+++ b/scripts/mobiles/tatooine/dune_stalker_marksman.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dune_stalker_marksman')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("dune stalker")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_dune_stalker_marksman.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dune_stalker_marksman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dune_stalker_scavenger.py b/scripts/mobiles/tatooine/dune_stalker_scavenger.py
new file mode 100644
index 00000000..e8a77b3f
--- /dev/null
+++ b/scripts/mobiles/tatooine/dune_stalker_scavenger.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dune_stalker_scavenger')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("dune stalker")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_dune_stalker.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dune_stalker_scavenger', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dwarf_bantha.py b/scripts/mobiles/tatooine/dwarf_bantha.py
new file mode 100644
index 00000000..d8c76e1d
--- /dev/null
+++ b/scripts/mobiles/tatooine/dwarf_bantha.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dwarf_bantha')
+ mobileTemplate.setLevel(10)
+ mobileTemplate.setMinLevel(10)
+ mobileTemplate.setMaxLevel(11)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(300)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setBoneAmount(200)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(100)
+ mobileTemplate.setSocialGroup("bantha")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dwarf_bantha.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dwarf_bantha', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dwarf_eopie.py b/scripts/mobiles/tatooine/dwarf_eopie.py
new file mode 100644
index 00000000..70caf589
--- /dev/null
+++ b/scripts/mobiles/tatooine/dwarf_eopie.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dwarf_eopie')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setMinLevel(1)
+ mobileTemplate.setMaxLevel(3)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(230)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(180)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(110)
+ mobileTemplate.setSocialGroup("eopie")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dwarf_eopie.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dwarf_eopie', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/dwarf_nuna.py b/scripts/mobiles/tatooine/dwarf_nuna.py
new file mode 100644
index 00000000..a3d8144c
--- /dev/null
+++ b/scripts/mobiles/tatooine/dwarf_nuna.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dwarf_nuna')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setMinLevel(1)
+ mobileTemplate.setMaxLevel(3)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(2)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setBoneType("Avian Bone")
+ mobileTemplate.setHideAmount(1)
+ mobileTemplate.setSocialGroup("dwarf nuna")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dwarf_nuna.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('dwarf_nuna', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/elder_zucca_boar.py b/scripts/mobiles/tatooine/elder_zucca_boar.py
new file mode 100644
index 00000000..3513012c
--- /dev/null
+++ b/scripts/mobiles/tatooine/elder_zucca_boar.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('zucca_boar_elder')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setMinLevel(8)
+ mobileTemplate.setMaxLevel(9)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(25)
+ mobileTemplate.setSocialGroup("zucca boar")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_zucca_boar.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elder_zucca_boar', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/elite_desert_swooper.py b/scripts/mobiles/tatooine/elite_desert_swooper.py
new file mode 100644
index 00000000..09b3b5d5
--- /dev/null
+++ b/scripts/mobiles/tatooine/elite_desert_swooper.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('desert_swooper_elite')
+ mobileTemplate.setLevel(3)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("swoop")
+ mobileTemplate.setAssistRange(8)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_desert_swooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('desert_swooper_elite', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/elite_dewback_cannibal.py b/scripts/mobiles/tatooine/elite_dewback_cannibal.py
new file mode 100644
index 00000000..14c65b79
--- /dev/null
+++ b/scripts/mobiles/tatooine/elite_dewback_cannibal.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elite_dewback_canibal')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setMinLevel(13)
+ mobileTemplate.setMaxLevel(15)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(340)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(260)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(185)
+ mobileTemplate.setSocialGroup("dewback cannibal")
+ mobileTemplate.setAssistRange(8)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dewback.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_dewback_cannibal', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/elite_dragonet.py b/scripts/mobiles/tatooine/elite_dragonet.py
new file mode 100644
index 00000000..a7a863ef
--- /dev/null
+++ b/scripts/mobiles/tatooine/elite_dragonet.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elite_dragonet')
+ mobileTemplate.setLevel(24)
+ mobileTemplate.setMinLevel(24)
+ mobileTemplate.setMaxLevel(26)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(125)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(75)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(68)
+ mobileTemplate.setSocialGroup("dragonet")
+ mobileTemplate.setAssistRange(8)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dragonet.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_large_toxicgreen.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_dragonet', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/elite_dune_lizard.py b/scripts/mobiles/tatooine/elite_dune_lizard.py
new file mode 100644
index 00000000..119a2372
--- /dev/null
+++ b/scripts/mobiles/tatooine/elite_dune_lizard.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elite_dune_lizard')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setMinLevel(18)
+ mobileTemplate.setMaxLevel(19)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(85)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(50)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setSocialGroup("dune lizard")
+ mobileTemplate.setAssistRange(8)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dune_lizard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_large_toxicgreen.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_dune_lizard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/elite_giant_sand_beetle.py b/scripts/mobiles/tatooine/elite_giant_sand_beetle.py
new file mode 100644
index 00000000..c4a27c38
--- /dev/null
+++ b/scripts/mobiles/tatooine/elite_giant_sand_beetle.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elite_giant_sand_beetle')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setMinLevel(25)
+ mobileTemplate.setMaxLevel(26)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(20)
+ mobileTemplate.setSocialGroup("giant sand beetle")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_sand_beetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_giant_sand_beetle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/elite_mutant_womprat.py b/scripts/mobiles/tatooine/elite_mutant_womprat.py
new file mode 100644
index 00000000..ca4db924
--- /dev/null
+++ b/scripts/mobiles/tatooine/elite_mutant_womprat.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elite_mutant_womprat')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setMinLevel(12)
+ mobileTemplate.setMaxLevel(14)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("womprat")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_womp_rat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('womprat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/elite_ronto.py b/scripts/mobiles/tatooine/elite_ronto.py
new file mode 100644
index 00000000..2207fa3b
--- /dev/null
+++ b/scripts/mobiles/tatooine/elite_ronto.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elite_ronto_ronto')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setMinLevel(17)
+ mobileTemplate.setMaxLevel(18)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(450)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(300)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(180)
+ mobileTemplate.setSocialGroup("ronto")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_ronto.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_ronto', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/elite_scyk.py b/scripts/mobiles/tatooine/elite_scyk.py
new file mode 100644
index 00000000..eb6e2dc6
--- /dev/null
+++ b/scripts/mobiles/tatooine/elite_scyk.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elite_scyk')
+ mobileTemplate.setLevel(11)
+ mobileTemplate.setMinLevel(11)
+ mobileTemplate.setMaxLevel(13)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(40)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(18)
+ mobileTemplate.setSocialGroup("scyk")
+ mobileTemplate.setAssistRange(8)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_scyk.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_scyk', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/elite_sevorrt.py b/scripts/mobiles/tatooine/elite_sevorrt.py
new file mode 100644
index 00000000..d525dc6a
--- /dev/null
+++ b/scripts/mobiles/tatooine/elite_sevorrt.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elite_sevorrt')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setMinLevel(8)
+ mobileTemplate.setMaxLevel(9)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("sevorrt")
+ mobileTemplate.setAssistRange(8)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_sevorrt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_sevorrt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/elite_weequay_zealot.py b/scripts/mobiles/tatooine/elite_weequay_zealot.py
new file mode 100644
index 00000000..1c5a243a
--- /dev/null
+++ b/scripts/mobiles/tatooine/elite_weequay_zealot.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elite_weequay_zealot')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("swoop")
+ mobileTemplate.setAssistRange(8)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_weequay_zealot.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('elite_weequay_zealot', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/enraged_mountain_dewback.py b/scripts/mobiles/tatooine/enraged_mountain_dewback.py
new file mode 100644
index 00000000..95fdd053
--- /dev/null
+++ b/scripts/mobiles/tatooine/enraged_mountain_dewback.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elite_mountain_dewback')
+ mobileTemplate.setLevel(22)
+ mobileTemplate.setMinLevel(22)
+ mobileTemplate.setMaxLevel(23)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(330)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(240)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(170)
+ mobileTemplate.setSocialGroup("dewback mountain")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dewback.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('enraged_mountain_dewback', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/enraged_squill.py b/scripts/mobiles/tatooine/enraged_squill.py
new file mode 100644
index 00000000..0ff84664
--- /dev/null
+++ b/scripts/mobiles/tatooine/enraged_squill.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elite_squill')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setMinLevel(12)
+ mobileTemplate.setMaxLevel(14)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(6)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setSocialGroup("squill")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_squill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('enraged_squill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/eoni.py b/scripts/mobiles/tatooine/eoni.py
new file mode 100644
index 00000000..c8f3d202
--- /dev/null
+++ b/scripts/mobiles/tatooine/eoni.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elite_jundland_eopie')
+ mobileTemplate.setLevel(21)
+ mobileTemplate.setMinLevel(21)
+ mobileTemplate.setMaxLevel(22)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(300)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(225)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(115)
+ mobileTemplate.setSocialGroup("eopie")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_eopie.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('eoni', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/eopie.py b/scripts/mobiles/tatooine/eopie.py
new file mode 100644
index 00000000..af34d5d6
--- /dev/null
+++ b/scripts/mobiles/tatooine/eopie.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eopie')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setMinLevel(4)
+ mobileTemplate.setMaxLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(315)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(250)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(150)
+ mobileTemplate.setSocialGroup("eopie")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_eopie.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('eopie', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/eopie_herdmaster.py b/scripts/mobiles/tatooine/eopie_herdmaster.py
new file mode 100644
index 00000000..7635f124
--- /dev/null
+++ b/scripts/mobiles/tatooine/eopie_herdmaster.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eopie_herdmaster')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setMinLevel(5)
+ mobileTemplate.setMaxLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(315)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(250)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(150)
+ mobileTemplate.setSocialGroup("eopie")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_eopie.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('eopie_herdmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/error_prone_battle_droids.py b/scripts/mobiles/tatooine/error_prone_battle_droids.py
new file mode 100644
index 00000000..b2a2d497
--- /dev/null
+++ b/scripts/mobiles/tatooine/error_prone_battle_droids.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_error_prone_droid')
+ mobileTemplate.setLevel(6)
+ mobileTemplate.setMinLevel(6)
+ mobileTemplate.setMaxLevel(7)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("error-prone battle droid")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_battle_droid.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('error-prone_battle_droid', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/escaped_criminal.py b/scripts/mobiles/tatooine/escaped_criminal.py
new file mode 100644
index 00000000..e4667cc6
--- /dev/null
+++ b/scripts/mobiles/tatooine/escaped_criminal.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_eisley_escaped_criminal')
+ mobileTemplate.setLevel(7)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("desert demon")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_organized_human_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('escaped_criminal', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/evil_hermit.py b/scripts/mobiles/tatooine/evil_hermit.py
new file mode 100644
index 00000000..dde628f8
--- /dev/null
+++ b/scripts/mobiles/tatooine/evil_hermit.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('evil_hermit')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("evil")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_evil_hermit.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('evil_hermit', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/evil_nomad.py b/scripts/mobiles/tatooine/evil_nomad.py
new file mode 100644
index 00000000..732af0db
--- /dev/null
+++ b/scripts/mobiles/tatooine/evil_nomad.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('evil_nomad')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("evil")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_nomad.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_dh17.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/polearm/shared_lance_electric_polearm.iff', 7, 1.0)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('evil_hermit', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/evil_settler.py b/scripts/mobiles/tatooine/evil_settler.py
new file mode 100644
index 00000000..8a7120ac
--- /dev/null
+++ b/scripts/mobiles/tatooine/evil_settler.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('evil_settler')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("evil")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_evil_settler.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('evil_settler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/female_mountain_squill.py b/scripts/mobiles/tatooine/female_mountain_squill.py
new file mode 100644
index 00000000..d38fadef
--- /dev/null
+++ b/scripts/mobiles/tatooine/female_mountain_squill.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('female_mountain_squill')
+ mobileTemplate.setLevel(7)
+ mobileTemplate.setMinLevel(7)
+ mobileTemplate.setMaxLevel(9)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("squill")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_squill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('female_mountain_squill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/feral_bantha.py b/scripts/mobiles/tatooine/feral_bantha.py
new file mode 100644
index 00000000..f030e8ae
--- /dev/null
+++ b/scripts/mobiles/tatooine/feral_bantha.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('feral_bantha')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setMinLevel(5)
+ mobileTemplate.setMaxLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(415)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(305)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(215)
+ mobileTemplate.setSocialGroup("bantha")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bantha_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('feral_bantha', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/fighting_romo_vax.py b/scripts/mobiles/tatooine/fighting_romo_vax.py
new file mode 100644
index 00000000..010b3d47
--- /dev/null
+++ b/scripts/mobiles/tatooine/fighting_romo_vax.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fighting_romo_vax')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sennex")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_trader_thug_male_human_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('fighting_romo_vax', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/fugitive.py b/scripts/mobiles/tatooine/fugitive.py
new file mode 100644
index 00000000..a5050ef5
--- /dev/null
+++ b/scripts/mobiles/tatooine/fugitive.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('fugitive')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("thug")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_fugitive.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('fugitive', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/furios_ronto.py b/scripts/mobiles/tatooine/furios_ronto.py
new file mode 100644
index 00000000..937930c3
--- /dev/null
+++ b/scripts/mobiles/tatooine/furios_ronto.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ronto_furious')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setMinLevel(18)
+ mobileTemplate.setMaxLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(465)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(320)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(200)
+ mobileTemplate.setSocialGroup("ronto")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_ronto.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('furious_ronto', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/giant_canyon_krayt_dragon.py b/scripts/mobiles/tatooine/giant_canyon_krayt_dragon.py
new file mode 100644
index 00000000..0a4e8988
--- /dev/null
+++ b/scripts/mobiles/tatooine/giant_canyon_krayt_dragon.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_canyon_krayt_dragon')
+ mobileTemplate.setLevel(87)
+ mobileTemplate.setMinLevel(80)
+ mobileTemplate.setMaxLevel(89)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(1500)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(870)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(805)
+ mobileTemplate.setSocialGroup("krayt dragon")
+ mobileTemplate.setAssistRange(34)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_canyon_krayt_dragon.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_canyon_krayt_dragon', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/giant_sand_beetle.py b/scripts/mobiles/tatooine/giant_sand_beetle.py
new file mode 100644
index 00000000..1d582005
--- /dev/null
+++ b/scripts/mobiles/tatooine/giant_sand_beetle.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_sand_beetle')
+ mobileTemplate.setLevel(25)
+ mobileTemplate.setMinLevel(25)
+ mobileTemplate.setMaxLevel(26)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(20)
+ mobileTemplate.setSocialGroup("giant sand beetle")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_sand_beetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_sand_beetle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/giant_worrt.py b/scripts/mobiles/tatooine/giant_worrt.py
new file mode 100644
index 00000000..0eb02618
--- /dev/null
+++ b/scripts/mobiles/tatooine/giant_worrt.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_worrt')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setMinLevel(13)
+ mobileTemplate.setMaxLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(9)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(9)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("worrt")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_worrt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_worrt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/gorg.py b/scripts/mobiles/tatooine/gorg.py
new file mode 100644
index 00000000..21ed5741
--- /dev/null
+++ b/scripts/mobiles/tatooine/gorg.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gorg')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setMinLevel(1)
+ mobileTemplate.setMaxLevel(3)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("gorg")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gorg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gorg', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/gorg_glutton.py b/scripts/mobiles/tatooine/gorg_glutton.py
new file mode 100644
index 00000000..97e66c08
--- /dev/null
+++ b/scripts/mobiles/tatooine/gorg_glutton.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gorg_glutton')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setMinLevel(1)
+ mobileTemplate.setMaxLevel(3)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(12)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(9)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(8)
+ mobileTemplate.setSocialGroup("gorg")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gorg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gorg_glutton', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/grand_krayt_dragon.py b/scripts/mobiles/tatooine/grand_krayt_dragon.py
new file mode 100644
index 00000000..7abf1f31
--- /dev/null
+++ b/scripts/mobiles/tatooine/grand_krayt_dragon.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('krayt_dragon_grand')
+ mobileTemplate.setLevel(87)
+ mobileTemplate.setMinLevel(80)
+ mobileTemplate.setMaxLevel(89)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(1700)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(950)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(905)
+ mobileTemplate.setSocialGroup("krayt dragon")
+ mobileTemplate.setAssistRange(24)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_canyon_krayt_dragon.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('grand_krayt_dragon', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/great_squill.py b/scripts/mobiles/tatooine/great_squill.py
new file mode 100644
index 00000000..6c8ec3af
--- /dev/null
+++ b/scripts/mobiles/tatooine/great_squill.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('squill_great')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setMinLevel(13)
+ mobileTemplate.setMaxLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(6)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(6)
+ mobileTemplate.setSocialGroup("squill")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_squill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('great_squill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/greater_desert_womprat.py b/scripts/mobiles/tatooine/greater_desert_womprat.py
new file mode 100644
index 00000000..bedb34e1
--- /dev/null
+++ b/scripts/mobiles/tatooine/greater_desert_womprat.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('greater_desert_womprat')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setMinLevel(11)
+ mobileTemplate.setMaxLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("womprat")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_greater_desert_womp_rat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('greater_desert_womprat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/grizzled_dewback.py b/scripts/mobiles/tatooine/grizzled_dewback.py
new file mode 100644
index 00000000..dcdc227f
--- /dev/null
+++ b/scripts/mobiles/tatooine/grizzled_dewback.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('grizzled_dewback')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setMinLevel(17)
+ mobileTemplate.setMaxLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(365)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(285)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(210)
+ mobileTemplate.setSocialGroup("dewback")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dewback.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('grizzled_dewback', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/gunrunner.py b/scripts/mobiles/tatooine/gunrunner.py
new file mode 100644
index 00000000..14014c16
--- /dev/null
+++ b/scripts/mobiles/tatooine/gunrunner.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gunrunner_newbie')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("gunrunner")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_gunrunner.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gunrunner', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/gunrunner1.py b/scripts/mobiles/tatooine/gunrunner1.py
new file mode 100644
index 00000000..ffcb5590
--- /dev/null
+++ b/scripts/mobiles/tatooine/gunrunner1.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gunrunner_newbie')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("mercenary")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_gunrunner.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gunrunner_1', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/gunrunner2.py b/scripts/mobiles/tatooine/gunrunner2.py
new file mode 100644
index 00000000..ac555ed7
--- /dev/null
+++ b/scripts/mobiles/tatooine/gunrunner2.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gunrunner_newbie')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("mercenary")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_gunrunner.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gunrunner_2', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/gunrunner_leader.py b/scripts/mobiles/tatooine/gunrunner_leader.py
new file mode 100644
index 00000000..eb408545
--- /dev/null
+++ b/scripts/mobiles/tatooine/gunrunner_leader.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gunrunner_newbie_leader')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("gunrunner")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_gunrunner.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gunrunner_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/gunrunner_sentry.py b/scripts/mobiles/tatooine/gunrunner_sentry.py
new file mode 100644
index 00000000..55b2aa3e
--- /dev/null
+++ b/scripts/mobiles/tatooine/gunrunner_sentry.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gunrunner_newbie_sentry')
+ mobileTemplate.setLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("gunrunner")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_gunrunner.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gunrunner_sentry', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/harmony_worrt.py b/scripts/mobiles/tatooine/harmony_worrt.py
new file mode 100644
index 00000000..89f59c15
--- /dev/null
+++ b/scripts/mobiles/tatooine/harmony_worrt.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('harmony_worrt')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setMinLevel(17)
+ mobileTemplate.setMaxLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("worrt")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_worrt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('harmony_worrt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/hermit.py b/scripts/mobiles/tatooine/hermit.py
new file mode 100644
index 00000000..82a5e2b2
--- /dev/null
+++ b/scripts/mobiles/tatooine/hermit.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hermit')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("evil")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_hermit.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('hermit', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/hutt_assassin.py b/scripts/mobiles/tatooine/hutt_assassin.py
new file mode 100644
index 00000000..b7118080
--- /dev/null
+++ b/scripts/mobiles/tatooine/hutt_assassin.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hutt_assassin')
+ mobileTemplate.setLevel(22)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_hutt_male.iff')
+ templates.add('object/mobile/shared_hutt_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('hutt_assassin', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/hutt_enforcer.py b/scripts/mobiles/tatooine/hutt_enforcer.py
new file mode 100644
index 00000000..eac06cef
--- /dev/null
+++ b/scripts/mobiles/tatooine/hutt_enforcer.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hutt_enforcer')
+ mobileTemplate.setLevel(22)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_hutt_male.iff')
+ templates.add('object/mobile/shared_hutt_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('saberhit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('hutt_enforcer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/hutt_outcast.py b/scripts/mobiles/tatooine/hutt_outcast.py
new file mode 100644
index 00000000..b43ca11f
--- /dev/null
+++ b/scripts/mobiles/tatooine/hutt_outcast.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('npe_hutt_minion')
+ mobileTemplate.setLevel(22)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_hutt_male.iff')
+ templates.add('object/mobile/shared_hutt_female.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+
+ core.spawnService.addMobileTemplate('hutt_outcast', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/insane_kitonak.py b/scripts/mobiles/tatooine/insane_kitonak.py
new file mode 100644
index 00000000..f6f29cb2
--- /dev/null
+++ b/scripts/mobiles/tatooine/insane_kitonak.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('insane_kitonak')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("insane kitonak")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kitonak_male.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('insane_kitonak', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jabba_assassin.py b/scripts/mobiles/tatooine/jabba_assassin.py
new file mode 100644
index 00000000..e557fa63
--- /dev/null
+++ b/scripts/mobiles/tatooine/jabba_assassin.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jabba_assassin')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_jabba_assassin.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jabba_assassin', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jabba_compound_guard.py b/scripts/mobiles/tatooine/jabba_compound_guard.py
new file mode 100644
index 00000000..f7814e3a
--- /dev/null
+++ b/scripts/mobiles/tatooine/jabba_compound_guard.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jabba_enforcer')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_jabba_enforcer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ weapontemplate1 = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate1)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jabba_enforcer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jabba_enforcer.py b/scripts/mobiles/tatooine/jabba_enforcer.py
new file mode 100644
index 00000000..25de1bd8
--- /dev/null
+++ b/scripts/mobiles/tatooine/jabba_enforcer.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jabba_compound_guard')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_jabba_henchman.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jabba_compound_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jabba_henchman.py b/scripts/mobiles/tatooine/jabba_henchman.py
new file mode 100644
index 00000000..30af355f
--- /dev/null
+++ b/scripts/mobiles/tatooine/jabba_henchman.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jabba_henchman')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_jabba_henchman.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jabba_henchman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jabba_medic.py b/scripts/mobiles/tatooine/jabba_medic.py
new file mode 100644
index 00000000..27cfeed4
--- /dev/null
+++ b/scripts/mobiles/tatooine/jabba_medic.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('a Jabba Medic')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_jabba_thug.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jabba_medic', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jabba_scout.py b/scripts/mobiles/tatooine/jabba_scout.py
new file mode 100644
index 00000000..8e75d57f
--- /dev/null
+++ b/scripts/mobiles/tatooine/jabba_scout.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jabba_scout')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_jabba_scout.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff',0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jabba_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jabba_swooper.py b/scripts/mobiles/tatooine/jabba_swooper.py
new file mode 100644
index 00000000..366b7532
--- /dev/null
+++ b/scripts/mobiles/tatooine/jabba_swooper.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jabbas_swooper')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_jabba_swooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jabba_swooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jabba_swooper_leader.py b/scripts/mobiles/tatooine/jabba_swooper_leader.py
new file mode 100644
index 00000000..59b2bb9f
--- /dev/null
+++ b/scripts/mobiles/tatooine/jabba_swooper_leader.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jabbas_swooper_leader')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_jabba_swooper_leader.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jabba_swooper_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jabba_thief.py b/scripts/mobiles/tatooine/jabba_thief.py
new file mode 100644
index 00000000..9cdb72b7
--- /dev/null
+++ b/scripts/mobiles/tatooine/jabba_thief.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jabba_thief')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_jabba_thief.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jabba_thief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jabba_thug.py b/scripts/mobiles/tatooine/jabba_thug.py
new file mode 100644
index 00000000..ea2539c6
--- /dev/null
+++ b/scripts/mobiles/tatooine/jabba_thug.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jabba_thief')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_jabba_thug.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jabba_thug', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jawa.py b/scripts/mobiles/tatooine/jawa.py
new file mode 100644
index 00000000..6734a74e
--- /dev/null
+++ b/scripts/mobiles/tatooine/jawa.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jawa')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jawa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jawa.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jawa', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jawa_avenger.py b/scripts/mobiles/tatooine/jawa_avenger.py
new file mode 100644
index 00000000..80b927d1
--- /dev/null
+++ b/scripts/mobiles/tatooine/jawa_avenger.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jawa_avenger')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jawa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jawa.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jawa_avenger', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jawa_engineer.py b/scripts/mobiles/tatooine/jawa_engineer.py
new file mode 100644
index 00000000..e472853a
--- /dev/null
+++ b/scripts/mobiles/tatooine/jawa_engineer.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jawa_engineer')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jawa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jawa.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jawa_engineer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jawa_healer.py b/scripts/mobiles/tatooine/jawa_healer.py
new file mode 100644
index 00000000..6f78ce47
--- /dev/null
+++ b/scripts/mobiles/tatooine/jawa_healer.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jawa_healer')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jawa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jawa.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jawa_healer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jawa_henchman.py b/scripts/mobiles/tatooine/jawa_henchman.py
new file mode 100644
index 00000000..d7952e6e
--- /dev/null
+++ b/scripts/mobiles/tatooine/jawa_henchman.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jawa_henchman')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jawa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jawa.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jawa_henchman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jawa_leader.py b/scripts/mobiles/tatooine/jawa_leader.py
new file mode 100644
index 00000000..1a0ff3c3
--- /dev/null
+++ b/scripts/mobiles/tatooine/jawa_leader.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jawa_leader')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jawa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jawa.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jawa_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jawa_protector.py b/scripts/mobiles/tatooine/jawa_protector.py
new file mode 100644
index 00000000..0986fb2a
--- /dev/null
+++ b/scripts/mobiles/tatooine/jawa_protector.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jawa_smuggler')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jawa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jawa.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jawa_smuggler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jawa_smuggler.py b/scripts/mobiles/tatooine/jawa_smuggler.py
new file mode 100644
index 00000000..cd3dde7c
--- /dev/null
+++ b/scripts/mobiles/tatooine/jawa_smuggler.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jawa_protector')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jawa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jawa.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jawa_protector', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jawa_thief.py b/scripts/mobiles/tatooine/jawa_thief.py
new file mode 100644
index 00000000..3c080e59
--- /dev/null
+++ b/scripts/mobiles/tatooine/jawa_thief.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jawa_thief')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jawa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jawa.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jawa_thief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jawa_warlord.py b/scripts/mobiles/tatooine/jawa_warlord.py
new file mode 100644
index 00000000..71ebb866
--- /dev/null
+++ b/scripts/mobiles/tatooine/jawa_warlord.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jawa_warlord')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jawa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jawa.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jawa_warlord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jessk.py b/scripts/mobiles/tatooine/jessk.py
new file mode 100644
index 00000000..0deff2d1
--- /dev/null
+++ b/scripts/mobiles/tatooine/jessk.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ep3_qst_jessk')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jawa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_ep3_jessk.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jessk', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/jundland_eopie.py b/scripts/mobiles/tatooine/jundland_eopie.py
new file mode 100644
index 00000000..69f75c98
--- /dev/null
+++ b/scripts/mobiles/tatooine/jundland_eopie.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('jundland_eopie')
+ mobileTemplate.setLevel(21)
+ mobileTemplate.setMinLevel(19)
+ mobileTemplate.setMaxLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(300)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(225)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(115)
+ mobileTemplate.setSocialGroup("eopie")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_eopie.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('jundland_eopie', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/junk_battle_droid.py b/scripts/mobiles/tatooine/junk_battle_droid.py
new file mode 100644
index 00000000..27c239c8
--- /dev/null
+++ b/scripts/mobiles/tatooine/junk_battle_droid.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_lin_demolitionmech')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setMinLevel(13)
+ mobileTemplate.setMaxLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("battle droid")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_battle_droid.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('junk_battle_droid', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/juvenile_canyon_krayt_dragon.py b/scripts/mobiles/tatooine/juvenile_canyon_krayt_dragon.py
new file mode 100644
index 00000000..091361e3
--- /dev/null
+++ b/scripts/mobiles/tatooine/juvenile_canyon_krayt_dragon.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('juvenile_canyon_krayt')
+ mobileTemplate.setLevel(82)
+ mobileTemplate.setMinLevel(78)
+ mobileTemplate.setMaxLevel(83)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(10)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(0.55)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(750)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(500)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(410)
+ mobileTemplate.setSocialGroup("krayt dragon")
+ mobileTemplate.setAssistRange(24)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_krayt_dragon.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('juvenile_canyon_krayt_dragon', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/kleetuz.py b/scripts/mobiles/tatooine/kleetuz.py
new file mode 100644
index 00000000..9f1ed5a6
--- /dev/null
+++ b/scripts/mobiles/tatooine/kleetuz.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_repo_kleetuz')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("mercenary")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_repo_kleetuz.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kleetuz', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/krayt_dragon.py b/scripts/mobiles/tatooine/krayt_dragon.py
new file mode 100644
index 00000000..6eb4001c
--- /dev/null
+++ b/scripts/mobiles/tatooine/krayt_dragon.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('krayt_dragon')
+ mobileTemplate.setLevel(82)
+ mobileTemplate.setMinLevel(78)
+ mobileTemplate.setMaxLevel(83)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(2.6)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(750)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(500)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(410)
+ mobileTemplate.setSocialGroup("krayt dragon")
+ mobileTemplate.setAssistRange(24)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_krayt_dragon.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('krayt_dragon', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/krayt_dragon_ancient.py b/scripts/mobiles/tatooine/krayt_dragon_ancient.py
new file mode 100644
index 00000000..d9e5cb71
--- /dev/null
+++ b/scripts/mobiles/tatooine/krayt_dragon_ancient.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('krayt_dragon_ancient')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setMinLevel(89)
+ mobileTemplate.setMaxLevel(90)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1.33)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(1700)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(950)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(905)
+ mobileTemplate.setSocialGroup("krayt dragon")
+ mobileTemplate.setAssistRange(36)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_krayt_dragon.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('krayt_dragon_ancient', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/kreetle.py b/scripts/mobiles/tatooine/kreetle.py
new file mode 100644
index 00000000..915acf5e
--- /dev/null
+++ b/scripts/mobiles/tatooine/kreetle.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kreetle')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setMinLevel(4)
+ mobileTemplate.setMaxLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(1)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("kreetle")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kreetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kreetle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/kreetle_swarmling.py b/scripts/mobiles/tatooine/kreetle_swarmling.py
new file mode 100644
index 00000000..a7d0acc1
--- /dev/null
+++ b/scripts/mobiles/tatooine/kreetle_swarmling.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kreetle_swarming')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setMinLevel(1)
+ mobileTemplate.setMaxLevel(3)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(1)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("kreetle")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kreetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kreetle_swarmling', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/large_cave_beetle.py b/scripts/mobiles/tatooine/large_cave_beetle.py
new file mode 100644
index 00000000..daa562ae
--- /dev/null
+++ b/scripts/mobiles/tatooine/large_cave_beetle.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('large_cave_beetle')
+ mobileTemplate.setLevel(21)
+ mobileTemplate.setMinLevel(21)
+ mobileTemplate.setMaxLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(14)
+ mobileTemplate.setSocialGroup("rock beetle")
+ mobileTemplate.setAssistRange(5)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rock_beetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('large_cave_beetle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/large_rock_beetle1.py b/scripts/mobiles/tatooine/large_rock_beetle1.py
new file mode 100644
index 00000000..fec7bf8e
--- /dev/null
+++ b/scripts/mobiles/tatooine/large_rock_beetle1.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('large_rock_beetle')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setMinLevel(17)
+ mobileTemplate.setMaxLevel(18)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(8)
+ mobileTemplate.setSocialGroup("rock beetle")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rock_beetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('large_rock_beetle_1', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/large_rock_beetle2.py b/scripts/mobiles/tatooine/large_rock_beetle2.py
new file mode 100644
index 00000000..eb2a89c6
--- /dev/null
+++ b/scripts/mobiles/tatooine/large_rock_beetle2.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('large_rock_beetle')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setMinLevel(18)
+ mobileTemplate.setMaxLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(14)
+ mobileTemplate.setSocialGroup("rock beetle")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rock_beetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('large_rock_beetle_2', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/large_rock_beetle3.py b/scripts/mobiles/tatooine/large_rock_beetle3.py
new file mode 100644
index 00000000..cfb3248c
--- /dev/null
+++ b/scripts/mobiles/tatooine/large_rock_beetle3.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('large_rock_beetle')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setMinLevel(18)
+ mobileTemplate.setMaxLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(12)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(16)
+ mobileTemplate.setSocialGroup("rock beetle")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rock_beetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('large_rock_beetle_3', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/large_sand_beetle.py b/scripts/mobiles/tatooine/large_sand_beetle.py
new file mode 100644
index 00000000..df30f8cf
--- /dev/null
+++ b/scripts/mobiles/tatooine/large_sand_beetle.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('large_sand_beetle')
+ mobileTemplate.setLevel(24)
+ mobileTemplate.setMinLevel(22)
+ mobileTemplate.setMaxLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(14)
+ mobileTemplate.setSocialGroup("giant sand beetle")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_sand_beetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('large_sand_beetle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/lesser_bocatt.py b/scripts/mobiles/tatooine/lesser_bocatt.py
new file mode 100644
index 00000000..e74c5f09
--- /dev/null
+++ b/scripts/mobiles/tatooine/lesser_bocatt.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lesser_bocatt')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setMinLevel(13)
+ mobileTemplate.setMaxLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(100)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(60)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setSocialGroup("bocatt")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bocatt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('lesser_bocatt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/lesser_desert_womprat.py b/scripts/mobiles/tatooine/lesser_desert_womprat.py
new file mode 100644
index 00000000..6d9de71d
--- /dev/null
+++ b/scripts/mobiles/tatooine/lesser_desert_womprat.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lesser_desert_womprat')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setMinLevel(3)
+ mobileTemplate.setMaxLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(2)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(1)
+ mobileTemplate.setSocialGroup("womprat")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_lesser_desert_womp_rat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('lesser_deser_womprat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/lesser_dewback.py b/scripts/mobiles/tatooine/lesser_dewback.py
new file mode 100644
index 00000000..a8dad881
--- /dev/null
+++ b/scripts/mobiles/tatooine/lesser_dewback.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lesser_dewback')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setMinLevel(3)
+ mobileTemplate.setMaxLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(175)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(125)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(100)
+ mobileTemplate.setSocialGroup("dewback")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dewback.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('lesser_dewback', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/malignant_squill.py b/scripts/mobiles/tatooine/malignant_squill.py
new file mode 100644
index 00000000..44713158
--- /dev/null
+++ b/scripts/mobiles/tatooine/malignant_squill.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('malignant_squill')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setMinLevel(48)
+ mobileTemplate.setMaxLevel(52)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(25)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(20)
+ mobileTemplate.setSocialGroup("squill")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_squill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('malignant_squill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/minor_worrt.py b/scripts/mobiles/tatooine/minor_worrt.py
new file mode 100644
index 00000000..659b7bf9
--- /dev/null
+++ b/scripts/mobiles/tatooine/minor_worrt.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('minor_worrt')
+ mobileTemplate.setLevel(3)
+ mobileTemplate.setMinLevel(2)
+ mobileTemplate.setMaxLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(1)
+ mobileTemplate.setSocialGroup("minor worrt")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_minor_worrt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('minor_worrt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/moisture_thief.py b/scripts/mobiles/tatooine/moisture_thief.py
new file mode 100644
index 00000000..cc14293d
--- /dev/null
+++ b/scripts/mobiles/tatooine/moisture_thief.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_moisture_thief')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_moisture_thief.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('moisture_thief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/mound_mite.py b/scripts/mobiles/tatooine/mound_mite.py
new file mode 100644
index 00000000..581fde19
--- /dev/null
+++ b/scripts/mobiles/tatooine/mound_mite.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mound_mite')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setMinLevel(4)
+ mobileTemplate.setMaxLevel(7)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("mound mite")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mound_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mound_mite', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/mountain_dewback.py b/scripts/mobiles/tatooine/mountain_dewback.py
new file mode 100644
index 00000000..d01a2c95
--- /dev/null
+++ b/scripts/mobiles/tatooine/mountain_dewback.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mountain_dewback')
+ mobileTemplate.setLevel(22)
+ mobileTemplate.setMinLevel(21)
+ mobileTemplate.setMaxLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(330)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(240)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(170)
+ mobileTemplate.setSocialGroup("dewback mountain")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mountain_dewback.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mountain_dewback', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/mountain_squill.py b/scripts/mobiles/tatooine/mountain_squill.py
new file mode 100644
index 00000000..eadfb722
--- /dev/null
+++ b/scripts/mobiles/tatooine/mountain_squill.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mountain_squill')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setMinLevel(17)
+ mobileTemplate.setMaxLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("squill")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mountain_squill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mountain_squill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/mountain_squill_guardian.py b/scripts/mobiles/tatooine/mountain_squill_guardian.py
new file mode 100644
index 00000000..5959aa53
--- /dev/null
+++ b/scripts/mobiles/tatooine/mountain_squill_guardian.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mountain_squill_guardian')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setMinLevel(18)
+ mobileTemplate.setMaxLevel(21)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(4)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("squill")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mountain_squill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mountain_squill_guardian', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/mountain_squill_hunter.py b/scripts/mobiles/tatooine/mountain_squill_hunter.py
new file mode 100644
index 00000000..f744dcc5
--- /dev/null
+++ b/scripts/mobiles/tatooine/mountain_squill_hunter.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mountain_squill_hunter')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setMinLevel(18)
+ mobileTemplate.setMaxLevel(21)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(2)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(1)
+ mobileTemplate.setSocialGroup("squill")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mountain_squill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mountain_squill_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/mountain_worrt.py b/scripts/mobiles/tatooine/mountain_worrt.py
new file mode 100644
index 00000000..01e6f591
--- /dev/null
+++ b/scripts/mobiles/tatooine/mountain_worrt.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mountain_worrt')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setMinLevel(18)
+ mobileTemplate.setMaxLevel(21)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("mountain worrt")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_worrt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mountain_worrt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/mutant_womprat.py b/scripts/mobiles/tatooine/mutant_womprat.py
new file mode 100644
index 00000000..206a8a0c
--- /dev/null
+++ b/scripts/mobiles/tatooine/mutant_womprat.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mutant_womprat')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setMinLevel(11)
+ mobileTemplate.setMaxLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("womprat")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_womp_rat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('womprat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/overkreetle.py b/scripts/mobiles/tatooine/overkreetle.py
new file mode 100644
index 00000000..e8c4030f
--- /dev/null
+++ b/scripts/mobiles/tatooine/overkreetle.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kreetle_over')
+ mobileTemplate.setLevel(11)
+ mobileTemplate.setMinLevel(10)
+ mobileTemplate.setMaxLevel(12)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(8)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(12)
+ mobileTemplate.setSocialGroup("uber kreetle")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kreetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('overkreetle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/parry_stormtrooper_dewback.py b/scripts/mobiles/tatooine/parry_stormtrooper_dewback.py
new file mode 100644
index 00000000..8090d862
--- /dev/null
+++ b/scripts/mobiles/tatooine/parry_stormtrooper_dewback.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('parry_stormtrooper_dewback')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setMinLevel(16)
+ mobileTemplate.setMaxLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(360)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(275)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(250)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dewback_armored.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('parry_stormtrooper_dewback', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/pirate.py b/scripts/mobiles/tatooine/pirate.py
new file mode 100644
index 00000000..c3eae120
--- /dev/null
+++ b/scripts/mobiles/tatooine/pirate.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_pirate')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("pirate")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_pirate_plunderer_of_tatooine.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('pirate', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/pirate_leader.py b/scripts/mobiles/tatooine/pirate_leader.py
new file mode 100644
index 00000000..e1deb72b
--- /dev/null
+++ b/scripts/mobiles/tatooine/pirate_leader.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_pirate_leader')
+ mobileTemplate.setLevel(23)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("pirate")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_pirate_leader_of_tatooine.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('pirate_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/plaque_rat.py b/scripts/mobiles/tatooine/plaque_rat.py
new file mode 100644
index 00000000..2eabdeef
--- /dev/null
+++ b/scripts/mobiles/tatooine/plaque_rat.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('womprat_plague')
+ mobileTemplate.setLevel(11)
+ mobileTemplate.setMinLevel(10)
+ mobileTemplate.setMaxLevel(12)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("womprat")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_womp_rat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('plaque_womprat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/plaque_victim.py b/scripts/mobiles/tatooine/plaque_victim.py
new file mode 100644
index 00000000..2d51b867
--- /dev/null
+++ b/scripts/mobiles/tatooine/plaque_victim.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_plague_victim')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("pirate")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_plague_victim.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('plague_victim', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/r3-b57.py b/scripts/mobiles/tatooine/r3-b57.py
new file mode 100644
index 00000000..9474a87e
--- /dev/null
+++ b/scripts/mobiles/tatooine/r3-b57.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('legacy_r3_droid')
+ mobileTemplate.setLevel(22)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("astromech")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_r3.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('r3b57', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/ra-316.py b/scripts/mobiles/tatooine/ra-316.py
new file mode 100644
index 00000000..77e5e342
--- /dev/null
+++ b/scripts/mobiles/tatooine/ra-316.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('legacy_ra_droid')
+ mobileTemplate.setLevel(22)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("astromech")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_protocol_droid.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('ra316', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/razorback_felspur.py b/scripts/mobiles/tatooine/razorback_felspur.py
new file mode 100644
index 00000000..3c66dae3
--- /dev/null
+++ b/scripts/mobiles/tatooine/razorback_felspur.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('desert_razorback_felspur')
+ mobileTemplate.setLevel(24)
+ mobileTemplate.setMinLevel(23)
+ mobileTemplate.setMaxLevel(25)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(25)
+ mobileTemplate.setSocialGroup("zucca Boar")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_zucca_boar.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('razorback_felspur', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/razorclaw.py b/scripts/mobiles/tatooine/razorclaw.py
new file mode 100644
index 00000000..f1ad041d
--- /dev/null
+++ b/scripts/mobiles/tatooine/razorclaw.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elite_desert_razorback')
+ mobileTemplate.setLevel(24)
+ mobileTemplate.setMinLevel(23)
+ mobileTemplate.setMaxLevel(25)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(25)
+ mobileTemplate.setSocialGroup("zucca Boar")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_zucca_boar.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('razorclaw', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/rill.py b/scripts/mobiles/tatooine/rill.py
new file mode 100644
index 00000000..e5715117
--- /dev/null
+++ b/scripts/mobiles/tatooine/rill.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rill')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setMinLevel(4)
+ mobileTemplate.setMaxLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(35)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(30)
+ mobileTemplate.setSocialGroup("rill")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/rock_beetle.py b/scripts/mobiles/tatooine/rock_beetle.py
new file mode 100644
index 00000000..56e756c9
--- /dev/null
+++ b/scripts/mobiles/tatooine/rock_beetle.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rock_beetle')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setMinLevel(17)
+ mobileTemplate.setMaxLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(8)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(10)
+ mobileTemplate.setSocialGroup("rock beetle")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rock_beetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rock_beetle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/rock_beetle1.py b/scripts/mobiles/tatooine/rock_beetle1.py
new file mode 100644
index 00000000..f4760b94
--- /dev/null
+++ b/scripts/mobiles/tatooine/rock_beetle1.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rock_beetle')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setMinLevel(18)
+ mobileTemplate.setMaxLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(8)
+ mobileTemplate.setSocialGroup("rock beetle")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rock_beetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rock_beetle_1', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/rock_beetle_cave.py b/scripts/mobiles/tatooine/rock_beetle_cave.py
new file mode 100644
index 00000000..20296315
--- /dev/null
+++ b/scripts/mobiles/tatooine/rock_beetle_cave.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rock_beetle_cave')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setMinLevel(18)
+ mobileTemplate.setMaxLevel(19)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(9)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(10)
+ mobileTemplate.setSocialGroup("rock beetle")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rock_beetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rock_beetle_cave', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/rockmite.py b/scripts/mobiles/tatooine/rockmite.py
new file mode 100644
index 00000000..6a2422c9
--- /dev/null
+++ b/scripts/mobiles/tatooine/rockmite.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rockmite')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setMinLevel(7)
+ mobileTemplate.setMaxLevel(9)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("rockmite")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rock_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rockmite', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/rodian_clan_captain.py b/scripts/mobiles/tatooine/rodian_clan_captain.py
new file mode 100644
index 00000000..2a85fa07
--- /dev/null
+++ b/scripts/mobiles/tatooine/rodian_clan_captain.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_rodian_clan_captain')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("rodian")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_rodian_clan_captain.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rodian_clan_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/rodian_clan_medic.py b/scripts/mobiles/tatooine/rodian_clan_medic.py
new file mode 100644
index 00000000..5bedda7a
--- /dev/null
+++ b/scripts/mobiles/tatooine/rodian_clan_medic.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_rodian_clan_medic')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("rodian")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_rodian_clan_medic.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rodian_clan_medic', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/rodian_clan_warchief.py b/scripts/mobiles/tatooine/rodian_clan_warchief.py
new file mode 100644
index 00000000..5a67de39
--- /dev/null
+++ b/scripts/mobiles/tatooine/rodian_clan_warchief.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_rodian_clan_warchief')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("rodian")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_rodian_clan_warchief.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rodian_clan_warchief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/rodian_gladiator.py b/scripts/mobiles/tatooine/rodian_gladiator.py
new file mode 100644
index 00000000..fbe56f69
--- /dev/null
+++ b/scripts/mobiles/tatooine/rodian_gladiator.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_rodian_gladiator')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("rodian")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_rodian_gladiator.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('rodian_gladiator', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/ronto.py b/scripts/mobiles/tatooine/ronto.py
new file mode 100644
index 00000000..d2d2af5b
--- /dev/null
+++ b/scripts/mobiles/tatooine/ronto.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ronto')
+ mobileTemplate.setLevel(7)
+ mobileTemplate.setMinLevel(16)
+ mobileTemplate.setMaxLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(450)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(300)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(180)
+ mobileTemplate.setSocialGroup("ronto")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_ronto.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('ronto', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/runted_rill.py b/scripts/mobiles/tatooine/runted_rill.py
new file mode 100644
index 00000000..a30260ab
--- /dev/null
+++ b/scripts/mobiles/tatooine/runted_rill.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('runted_rill')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setMinLevel(1)
+ mobileTemplate.setMaxLevel(3)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setSocialGroup("rill")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('runted_rill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/sand_beetle.py b/scripts/mobiles/tatooine/sand_beetle.py
new file mode 100644
index 00000000..ed46a5ec
--- /dev/null
+++ b/scripts/mobiles/tatooine/sand_beetle.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sand_beetle')
+ mobileTemplate.setLevel(22)
+ mobileTemplate.setMinLevel(22)
+ mobileTemplate.setMaxLevel(24)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(8)
+ mobileTemplate.setSocialGroup("giant sand beetle")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_sand_beetle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sand_beetle', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/sandcrawler_crewman.py b/scripts/mobiles/tatooine/sandcrawler_crewman.py
new file mode 100644
index 00000000..f333f314
--- /dev/null
+++ b/scripts/mobiles/tatooine/sandcrawler_crewman.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('legacy_jawa_grunt')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jawa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_jawa.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sandcrawler_crewman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/sandreaver.py b/scripts/mobiles/tatooine/sandreaver.py
new file mode 100644
index 00000000..758f0fa4
--- /dev/null
+++ b/scripts/mobiles/tatooine/sandreaver.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dewback_sandreaver')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setMinLevel(17)
+ mobileTemplate.setMaxLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(340)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(260)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(185)
+ mobileTemplate.setSocialGroup("dewback")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dewback.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sandreaver', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/savage_zucca_boar.py b/scripts/mobiles/tatooine/savage_zucca_boar.py
new file mode 100644
index 00000000..3f7981fe
--- /dev/null
+++ b/scripts/mobiles/tatooine/savage_zucca_boar.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elite_zucca_boar')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setMinLevel(8)
+ mobileTemplate.setMaxLevel(9)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(25)
+ mobileTemplate.setSocialGroup("zucca boar")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_zucca_boar.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('savage_zucca_boar', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/scavenger.py b/scripts/mobiles/tatooine/scavenger.py
new file mode 100644
index 00000000..de275efe
--- /dev/null
+++ b/scripts/mobiles/tatooine/scavenger.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_scavenger')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(2)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("thug")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_scavenger.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('scavenger', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/scyk.py b/scripts/mobiles/tatooine/scyk.py
new file mode 100644
index 00000000..c93319b5
--- /dev/null
+++ b/scripts/mobiles/tatooine/scyk.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('scyk')
+ mobileTemplate.setLevel(11)
+ mobileTemplate.setMinLevel(11)
+ mobileTemplate.setMaxLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(40)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(18)
+ mobileTemplate.setSocialGroup("scyk")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_scyk.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('scyk', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/sennex_guard.py b/scripts/mobiles/tatooine/sennex_guard.py
new file mode 100644
index 00000000..f0cdf1d8
--- /dev/null
+++ b/scripts/mobiles/tatooine/sennex_guard.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sennex_guard')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sennex")
+ mobileTemplate.setAssistRange(5)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_sennex_pirate_01.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_02.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_03.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_04.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_05.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_06.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_07.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_08.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_09.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_10.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_11.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sennex_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/sennex_hunter.py b/scripts/mobiles/tatooine/sennex_hunter.py
new file mode 100644
index 00000000..4f9afcc2
--- /dev/null
+++ b/scripts/mobiles/tatooine/sennex_hunter.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sennex_hunter')
+ mobileTemplate.setLevel(22)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sennex")
+ mobileTemplate.setAssistRange(5)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_sennex_pirate_01.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_02.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_03.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_04.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_05.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_06.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_07.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_08.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_09.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_10.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_11.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_cdef.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sennex_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/sennex_lookout.py b/scripts/mobiles/tatooine/sennex_lookout.py
new file mode 100644
index 00000000..b04e0b35
--- /dev/null
+++ b/scripts/mobiles/tatooine/sennex_lookout.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sennex_lookout')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sennex")
+ mobileTemplate.setAssistRange(5)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_sennex_pirate_01.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_02.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_03.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_04.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_05.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_06.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_07.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_08.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_09.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_10.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_11.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sennex_lookout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/sennex_slavemaster.py b/scripts/mobiles/tatooine/sennex_slavemaster.py
new file mode 100644
index 00000000..a89d44f6
--- /dev/null
+++ b/scripts/mobiles/tatooine/sennex_slavemaster.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sennex_slaver')
+ mobileTemplate.setLevel(24)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sennex")
+ mobileTemplate.setAssistRange(5)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_sennex_pirate_01.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_02.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_03.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_04.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_05.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_06.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_07.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_08.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_09.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_10.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_11.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sennex_slaver', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/sennex_slaver.py b/scripts/mobiles/tatooine/sennex_slaver.py
new file mode 100644
index 00000000..fb8fe181
--- /dev/null
+++ b/scripts/mobiles/tatooine/sennex_slaver.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sennex_slavemaster')
+ mobileTemplate.setLevel(22)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sennex")
+ mobileTemplate.setAssistRange(5)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_sennex_pirate_01.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_02.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_03.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_04.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_05.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_06.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_07.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_08.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_09.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_10.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_11.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sennex_slavemaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/sennex_warder.py b/scripts/mobiles/tatooine/sennex_warder.py
new file mode 100644
index 00000000..3bc906dc
--- /dev/null
+++ b/scripts/mobiles/tatooine/sennex_warder.py
@@ -0,0 +1,49 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sennex_warder')
+ mobileTemplate.setLevel(21)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("sennex")
+ mobileTemplate.setAssistRange(5)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_sennex_pirate_01.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_02.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_03.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_04.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_05.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_06.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_07.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_08.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_09.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_10.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_11.iff')
+ templates.add('object/mobile/shared_dressed_sennex_pirate_12.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sennex_warder', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/sevorrt.py b/scripts/mobiles/tatooine/sevorrt.py
new file mode 100644
index 00000000..3ea14405
--- /dev/null
+++ b/scripts/mobiles/tatooine/sevorrt.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sevorrt')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setMinLevel(4)
+ mobileTemplate.setMaxLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("sevorrt")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_sevorrt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sevorrt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/sewer_worrt.py b/scripts/mobiles/tatooine/sewer_worrt.py
new file mode 100644
index 00000000..377c28bf
--- /dev/null
+++ b/scripts/mobiles/tatooine/sewer_worrt.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sewer_worrt')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setMinLevel(4)
+ mobileTemplate.setMaxLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(1)
+ mobileTemplate.setSocialGroup("minor worrt")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_worrt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sewer_worrt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/shinn_guard.py b/scripts/mobiles/tatooine/shinn_guard.py
new file mode 100644
index 00000000..c9e1a328
--- /dev/null
+++ b/scripts/mobiles/tatooine/shinn_guard.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_shinn_guard')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("shinn mugger")
+ mobileTemplate.setAssistRange(5)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_mugger.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('shinn_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/shinn_mugger.py b/scripts/mobiles/tatooine/shinn_mugger.py
new file mode 100644
index 00000000..4f67d792
--- /dev/null
+++ b/scripts/mobiles/tatooine/shinn_mugger.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_shinn_mugger')
+ mobileTemplate.setLevel(7)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("shinn mugger")
+ mobileTemplate.setAssistRange(5)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_mugger.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('shinn_mugger', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/sickly_womprat.py b/scripts/mobiles/tatooine/sickly_womprat.py
new file mode 100644
index 00000000..2a4fabf5
--- /dev/null
+++ b/scripts/mobiles/tatooine/sickly_womprat.py
@@ -0,0 +1,47 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sickly_womprat')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setMinLevel(4)
+ mobileTemplate.setMaxLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(2)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(1)
+ mobileTemplate.setSocialGroup("womprat")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_womp_rat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sickly_womprat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/sirad_far.py b/scripts/mobiles/tatooine/sirad_far.py
new file mode 100644
index 00000000..381c068f
--- /dev/null
+++ b/scripts/mobiles/tatooine/sirad_far.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('sirad_far')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_sirad_far.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sirad_far', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/slum_rat.py b/scripts/mobiles/tatooine/slum_rat.py
new file mode 100644
index 00000000..3aa000c5
--- /dev/null
+++ b/scripts/mobiles/tatooine/slum_rat.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('womprat_city')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setMinLevel(4)
+ mobileTemplate.setMaxLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(7)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(7)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setSocialGroup("womprat")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_womp_rat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('slum_rat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/snarlfang.py b/scripts/mobiles/tatooine/snarlfang.py
new file mode 100644
index 00000000..1b36ccc7
--- /dev/null
+++ b/scripts/mobiles/tatooine/snarlfang.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('elite_bocatt')
+ mobileTemplate.setLevel(17)
+ mobileTemplate.setMinLevel(17)
+ mobileTemplate.setMaxLevel(18)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(100)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(60)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setSocialGroup("bocatt")
+ mobileTemplate.setAssistRange(8)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bocatt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('snarlfang', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/squill.py b/scripts/mobiles/tatooine/squill.py
new file mode 100644
index 00000000..a94b2218
--- /dev/null
+++ b/scripts/mobiles/tatooine/squill.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('squill')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setMinLevel(11)
+ mobileTemplate.setMaxLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(6)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setSocialGroup("squill")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_squill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('squill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/stormtrooper_dewback.py b/scripts/mobiles/tatooine/stormtrooper_dewback.py
new file mode 100644
index 00000000..4f001b45
--- /dev/null
+++ b/scripts/mobiles/tatooine/stormtrooper_dewback.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stormtrooper_dewback')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setMinLevel(13)
+ mobileTemplate.setMaxLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(360)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(275)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(250)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dewback_armored.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stormtrooper_dewback', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/sunstained_dunelizard.py b/scripts/mobiles/tatooine/sunstained_dunelizard.py
new file mode 100644
index 00000000..035d5967
--- /dev/null
+++ b/scripts/mobiles/tatooine/sunstained_dunelizard.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('dune_lizard_sunstained')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setMinLevel(18)
+ mobileTemplate.setMaxLevel(20)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(85)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(50)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setSocialGroup("dune lizard")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dune_lizard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('sunstained_dune_lizard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/swarming_lesser_dewback.py b/scripts/mobiles/tatooine/swarming_lesser_dewback.py
new file mode 100644
index 00000000..aa7dcff5
--- /dev/null
+++ b/scripts/mobiles/tatooine/swarming_lesser_dewback.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('swarming_lesser_dewback')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setMinLevel(12)
+ mobileTemplate.setMaxLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(175)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(125)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(100)
+ mobileTemplate.setSocialGroup("dewback")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_swarming_lesser_dewback.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('swarming_lesser_dewback', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/swoop_gang_enforcer.py b/scripts/mobiles/tatooine/swoop_gang_enforcer.py
new file mode 100644
index 00000000..30156fe2
--- /dev/null
+++ b/scripts/mobiles/tatooine/swoop_gang_enforcer.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_opening_smuggler_12')
+ mobileTemplate.setLevel(10)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("niko thug")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_swooper_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_swooper_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_swooper_zabrak_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_swooper_zabrak_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_cdef.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('swoop_gang_enforcer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/swoop_gang_punk.py b/scripts/mobiles/tatooine/swoop_gang_punk.py
new file mode 100644
index 00000000..6adb06fd
--- /dev/null
+++ b/scripts/mobiles/tatooine/swoop_gang_punk.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_opening_smuggler_08')
+ mobileTemplate.setLevel(7)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("niko thug")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_swooper_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_swooper_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_swooper_zabrak_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_swooper_zabrak_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('swoop_gang_punk', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/swoop_gang_rogue.py b/scripts/mobiles/tatooine/swoop_gang_rogue.py
new file mode 100644
index 00000000..9d947e14
--- /dev/null
+++ b/scripts/mobiles/tatooine/swoop_gang_rogue.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_opening_smuggler_10')
+ mobileTemplate.setLevel(9)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("niko thug")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_swooper_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_swooper_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_swooper_zabrak_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_swooper_zabrak_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('swoop_gang_rogue', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/swoop_gang_thug.py b/scripts/mobiles/tatooine/swoop_gang_thug.py
new file mode 100644
index 00000000..cc1a1f5f
--- /dev/null
+++ b/scripts/mobiles/tatooine/swoop_gang_thug.py
@@ -0,0 +1,41 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_opening_smuggler_09')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("niko thug")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_swooper_human_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_swooper_human_male_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_swooper_zabrak_female_01.iff')
+ templates.add('object/mobile/shared_dressed_criminal_swooper_zabrak_male_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('swoop_gang_thug', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/swooper.py b/scripts/mobiles/tatooine/swooper.py
new file mode 100644
index 00000000..22d2b741
--- /dev/null
+++ b/scripts/mobiles/tatooine/swooper.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_swooper')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("niko thug")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_criminal_swooper_human_female_01.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('swooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tame_rill.py b/scripts/mobiles/tatooine/tame_rill.py
new file mode 100644
index 00000000..283b7973
--- /dev/null
+++ b/scripts/mobiles/tatooine/tame_rill.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tame_rill')
+ mobileTemplate.setLevel(1)
+ mobileTemplate.setMinLevel(1)
+ mobileTemplate.setMaxLevel(3)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(1)
+ mobileTemplate.setSocialGroup("rill")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tame_rill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tame_womprat.py b/scripts/mobiles/tatooine/tame_womprat.py
new file mode 100644
index 00000000..e0882686
--- /dev/null
+++ b/scripts/mobiles/tatooine/tame_womprat.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tame_womprat')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setMinLevel(1)
+ mobileTemplate.setMaxLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(2)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(1)
+ mobileTemplate.setSocialGroup("womprat")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_womp_rat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tame_womprat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tame_worrt.py b/scripts/mobiles/tatooine/tame_worrt.py
new file mode 100644
index 00000000..999bad4e
--- /dev/null
+++ b/scripts/mobiles/tatooine/tame_worrt.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tame_worrt')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setMinLevel(4)
+ mobileTemplate.setMaxLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("worrt")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_worrt_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tame_worrt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tatooine_mynock.py b/scripts/mobiles/tatooine/tatooine_mynock.py
new file mode 100644
index 00000000..51935e8c
--- /dev/null
+++ b/scripts/mobiles/tatooine/tatooine_mynock.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_mynock')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setMinLevel(1)
+ mobileTemplate.setMaxLevel(3)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(20)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(70)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(20)
+ mobileTemplate.setSocialGroup("tatooine mynock")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mynock.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tatooine_mynock', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tempest_rill.py b/scripts/mobiles/tatooine/tempest_rill.py
new file mode 100644
index 00000000..b7b0ac66
--- /dev/null
+++ b/scripts/mobiles/tatooine/tempest_rill.py
@@ -0,0 +1,47 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('rill_tempest')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setMinLevel(8)
+ mobileTemplate.setMaxLevel(10)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(35)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(15)
+ mobileTemplate.setSocialGroup("rill")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tempest_rill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/thief.py b/scripts/mobiles/tatooine/thief.py
new file mode 100644
index 00000000..0202fd23
--- /dev/null
+++ b/scripts/mobiles/tatooine/thief.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mission_thief')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("jabba")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_jabba_thief.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('thief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tormented_bocatt.py b/scripts/mobiles/tatooine/tormented_bocatt.py
new file mode 100644
index 00000000..549ff0c2
--- /dev/null
+++ b/scripts/mobiles/tatooine/tormented_bocatt.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bocatt_tormented')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setMinLevel(17)
+ mobileTemplate.setMaxLevel(19)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(100)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(60)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setSocialGroup("bocatt")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bocatt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/creature/shared_creature_spit_small_toxicgreen.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tormented_bocatt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/trandoshan_slavemaster.py b/scripts/mobiles/tatooine/trandoshan_slavemaster.py
new file mode 100644
index 00000000..21b4742a
--- /dev/null
+++ b/scripts/mobiles/tatooine/trandoshan_slavemaster.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ep3_trandoshan_slavermaster')
+ mobileTemplate.setLevel(2)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("slaver")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_ep3_trando_slavemaster_01.iff')
+ templates.add('object/mobile/shared_ep3_trando_slavemaster_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('trandoshan_slavemaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/trandoshan_slaver.py b/scripts/mobiles/tatooine/trandoshan_slaver.py
new file mode 100644
index 00000000..e00e64e8
--- /dev/null
+++ b/scripts/mobiles/tatooine/trandoshan_slaver.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ep3_trandoshan_slaver')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setMinLevel(1)
+ mobileTemplate.setMaxLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("slaver")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_ep3_trando_slaver_01.iff')
+ templates.add('object/mobile/shared_ep3_trando_slaver_02.iff')
+ templates.add('object/mobile/shared_ep3_trando_slaver_03.iff')
+ templates.add('object/mobile/shared_ep3_trando_slaver_04.iff')
+ templates.add('object/mobile/shared_ep3_trando_slaver_05.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('trandoshan_slaver', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_avenger.py b/scripts/mobiles/tatooine/tusken_avenger.py
new file mode 100644
index 00000000..58d82c85
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_avenger.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_avenger')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_avenger', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_bantha.py b/scripts/mobiles/tatooine/tusken_bantha.py
new file mode 100644
index 00000000..5db92815
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_bantha.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('feeder_tusken_bantha')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setMinLevel(29)
+ mobileTemplate.setMaxLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(475)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(350)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setBoneAmount(375)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_bantha_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_bantha', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_berserker.py b/scripts/mobiles/tatooine/tusken_berserker.py
new file mode 100644
index 00000000..70e12dc1
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_berserker.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_berserker')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_berserker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_blood_champion.py b/scripts/mobiles/tatooine/tusken_blood_champion.py
new file mode 100644
index 00000000..704cf031
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_blood_champion.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_blood_champion')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_blood_champion', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_brute.py b/scripts/mobiles/tatooine/tusken_brute.py
new file mode 100644
index 00000000..a49c391b
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_brute.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_brute')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_brute', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_captain.py b/scripts/mobiles/tatooine/tusken_captain.py
new file mode 100644
index 00000000..cc510644
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_captain.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_chief')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_chief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_carnage_champion.py b/scripts/mobiles/tatooine/tusken_carnage_champion.py
new file mode 100644
index 00000000..9b5cb4de
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_carnage_champion.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_fort_tusken_champion')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_carnage_champion', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_chief.py b/scripts/mobiles/tatooine/tusken_chief.py
new file mode 100644
index 00000000..1b733014
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_chief.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_captain')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_commoner.py b/scripts/mobiles/tatooine/tusken_commoner.py
new file mode 100644
index 00000000..e15a498d
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_commoner.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_commoner')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_commoner', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_death_hunter.py b/scripts/mobiles/tatooine/tusken_death_hunter.py
new file mode 100644
index 00000000..4ad7a23e
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_death_hunter.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_death_hunter')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_death_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_elite_guard.py b/scripts/mobiles/tatooine/tusken_elite_guard.py
new file mode 100644
index 00000000..7767790a
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_elite_guard.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_elite_guard')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_elite_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_executioner.py b/scripts/mobiles/tatooine/tusken_executioner.py
new file mode 100644
index 00000000..8d6a0dee
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_executioner.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_executioner')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_executioner', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_fighter.py b/scripts/mobiles/tatooine/tusken_fighter.py
new file mode 100644
index 00000000..34d1a74c
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_fighter.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_soldier')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_fighter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_flesh_hunter.py b/scripts/mobiles/tatooine/tusken_flesh_hunter.py
new file mode 100644
index 00000000..3e58b259
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_flesh_hunter.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_flesh_hunter')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_flesh_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_follower.py b/scripts/mobiles/tatooine/tusken_follower.py
new file mode 100644
index 00000000..3271ef2f
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_follower.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_raider_18')
+ mobileTemplate.setLevel(19)
+ mobileTemplate.setMinLevel(18)
+ mobileTemplate.setMaxLevel(21)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_follower', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_gore_chief.py b/scripts/mobiles/tatooine/tusken_gore_chief.py
new file mode 100644
index 00000000..bf77045f
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_gore_chief.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_gore_chief')
+ mobileTemplate.setLevel(34)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_gore_chief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_guard.py b/scripts/mobiles/tatooine/tusken_guard.py
new file mode 100644
index 00000000..02c979cb
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_guard.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_guard')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_king.py b/scripts/mobiles/tatooine/tusken_king.py
new file mode 100644
index 00000000..68552335
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_king.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_king')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_king', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_observer.py b/scripts/mobiles/tatooine/tusken_observer.py
new file mode 100644
index 00000000..05d0faca
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_observer.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_observer')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_observer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_outrider.py b/scripts/mobiles/tatooine/tusken_outrider.py
new file mode 100644
index 00000000..ecffd926
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_outrider.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_raider_wildman')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_outrider', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_priest.py b/scripts/mobiles/tatooine/tusken_priest.py
new file mode 100644
index 00000000..cd9dcff5
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_priest.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_raider_worshiper')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_worshiper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_raid_champion.py b/scripts/mobiles/tatooine/tusken_raid_champion.py
new file mode 100644
index 00000000..e69d711c
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_raid_champion.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bestine_tusken_raid_leader')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_champion', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_raid_hunter.py b/scripts/mobiles/tatooine/tusken_raid_hunter.py
new file mode 100644
index 00000000..95dee534
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_raid_hunter.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bestine_tusken_raid_sub_leader')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_raid_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_raid_leader.py b/scripts/mobiles/tatooine/tusken_raid_leader.py
new file mode 100644
index 00000000..1d2562bb
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_raid_leader.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('heroic_tusken_raid_leader')
+ mobileTemplate.setLevel(31)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_raid_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_raider.py b/scripts/mobiles/tatooine/tusken_raider.py
new file mode 100644
index 00000000..1fab5848
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_raider.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_raider')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_raider', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_raider_soldier.py b/scripts/mobiles/tatooine/tusken_raider_soldier.py
new file mode 100644
index 00000000..9d29bd5c
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_raider_soldier.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_raider_soldier')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setMinLevel(5)
+ mobileTemplate.setMaxLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_soldier', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_raider_warrior.py b/scripts/mobiles/tatooine/tusken_raider_warrior.py
new file mode 100644
index 00000000..1da648d3
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_raider_warrior.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_raider_warrior')
+ mobileTemplate.setLevel(6)
+ mobileTemplate.setMinLevel(6)
+ mobileTemplate.setMaxLevel(7)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_savage.py b/scripts/mobiles/tatooine/tusken_savage.py
new file mode 100644
index 00000000..7bd2227c
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_savage.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_savage')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_savage', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_sniper.py b/scripts/mobiles/tatooine/tusken_sniper.py
new file mode 100644
index 00000000..26514d52
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_sniper.py
@@ -0,0 +1,37 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_sniper')
+ mobileTemplate.setLevel(30)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_sniper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_torture_lord.py b/scripts/mobiles/tatooine/tusken_torture_lord.py
new file mode 100644
index 00000000..083797b8
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_torture_lord.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_torture_lord')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_torture_lord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_wanderer.py b/scripts/mobiles/tatooine/tusken_wanderer.py
new file mode 100644
index 00000000..f6ead25a
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_wanderer.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_wanderer')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_wanderer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_warlord.py b/scripts/mobiles/tatooine/tusken_warlord.py
new file mode 100644
index 00000000..f6ead25a
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_warlord.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_wanderer')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_wanderer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_warmaster.py b/scripts/mobiles/tatooine/tusken_warmaster.py
new file mode 100644
index 00000000..c402c817
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_warmaster.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_war_master')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_warmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_warrior.py b/scripts/mobiles/tatooine/tusken_warrior.py
new file mode 100644
index 00000000..4581fde7
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_warrior.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_warrior')
+ mobileTemplate.setLevel(32)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleehit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_warrior_1', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_witch_doctor.py b/scripts/mobiles/tatooine/tusken_witch_doctor.py
new file mode 100644
index 00000000..fcaf6cf2
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_witch_doctor.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_witch_doctor')
+ mobileTemplate.setLevel(33)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_witch_doctor', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/tusken_zealot.py b/scripts/mobiles/tatooine/tusken_zealot.py
new file mode 100644
index 00000000..32548ca0
--- /dev/null
+++ b/scripts/mobiles/tatooine/tusken_zealot.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tusken_raider_zealot')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setMinLevel(5)
+ mobileTemplate.setMaxLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("tusken raider")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tusken_raider.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_tusken_generic.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tusken_zealot', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/twisted_dewback.py b/scripts/mobiles/tatooine/twisted_dewback.py
new file mode 100644
index 00000000..633560a5
--- /dev/null
+++ b/scripts/mobiles/tatooine/twisted_dewback.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('twisted_dewback')
+ mobileTemplate.setLevel(11)
+ mobileTemplate.setMinLevel(10)
+ mobileTemplate.setMaxLevel(12)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(175)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(125)
+ mobileTemplate.setBoneType("Animal Bones")
+ mobileTemplate.setHideAmount(100)
+ mobileTemplate.setSocialGroup("twisted")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dewback.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('twisted_dewback', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/twisted_rill.py b/scripts/mobiles/tatooine/twisted_rill.py
new file mode 100644
index 00000000..752e2e0b
--- /dev/null
+++ b/scripts/mobiles/tatooine/twisted_rill.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('twisted_rill')
+ mobileTemplate.setLevel(11)
+ mobileTemplate.setMinLevel(10)
+ mobileTemplate.setMaxLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(35)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(15)
+ mobileTemplate.setSocialGroup("twisted")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('twisted_rill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/twisted_womprat.py b/scripts/mobiles/tatooine/twisted_womprat.py
new file mode 100644
index 00000000..ca4b5198
--- /dev/null
+++ b/scripts/mobiles/tatooine/twisted_womprat.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('twisted_womprat')
+ mobileTemplate.setLevel(11)
+ mobileTemplate.setMinLevel(10)
+ mobileTemplate.setMaxLevel(12)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("twisted")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_womp_rat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('twisted_womprat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/vaigonn_shinn.py b/scripts/mobiles/tatooine/vaigonn_shinn.py
new file mode 100644
index 00000000..071e5e22
--- /dev/null
+++ b/scripts/mobiles/tatooine/vaigonn_shinn.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_vaigon_shinn')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("shinn mugger")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_01.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_02.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_03.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_04.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_05.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_06.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_07.iff')
+ templates.add('object/mobile/shared_dressed_commoner_tatooine_nikto_male_08.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vaigon_shinn', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_assassin.py b/scripts/mobiles/tatooine/valarian_assassin.py
new file mode 100644
index 00000000..83abf464
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_assassin.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_assassin')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_assassin.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_assassin', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_compound_guard.py b/scripts/mobiles/tatooine/valarian_compound_guard.py
new file mode 100644
index 00000000..c132509b
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_compound_guard.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_compound_guard')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_compound_guard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_compound_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_crew_chief.py b/scripts/mobiles/tatooine/valarian_crew_chief.py
new file mode 100644
index 00000000..ef74a5dc
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_crew_chief.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_crew_chief')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_thug.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_chief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_depot_boss.py b/scripts/mobiles/tatooine/valarian_depot_boss.py
new file mode 100644
index 00000000..32701f92
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_depot_boss.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_elite_shuttle')
+ mobileTemplate.setLevel(22)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_valarian_assassin_boss.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_depot_boss', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_depot_foreman.py b/scripts/mobiles/tatooine/valarian_depot_foreman.py
new file mode 100644
index 00000000..d1a82dbe
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_depot_foreman.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_boss_depot')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_thug.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_depot_foreman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_depot_guard.py b/scripts/mobiles/tatooine/valarian_depot_guard.py
new file mode 100644
index 00000000..659e83da
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_depot_guard.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_boss_shuttle')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_thug.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_depot_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_depot_scout.py b/scripts/mobiles/tatooine/valarian_depot_scout.py
new file mode 100644
index 00000000..dfe2c81a
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_depot_scout.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_scout_depot')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_thug.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_dlt20.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_depot_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_depot_swooper.py b/scripts/mobiles/tatooine/valarian_depot_swooper.py
new file mode 100644
index 00000000..d54842f2
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_depot_swooper.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_swooper_depot')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_thug.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_depot_swooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_depot_worker.py b/scripts/mobiles/tatooine/valarian_depot_worker.py
new file mode 100644
index 00000000..4a50ff5f
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_depot_worker.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_thug_depot')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_thug.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_depot_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_enforcer.py b/scripts/mobiles/tatooine/valarian_enforcer.py
new file mode 100644
index 00000000..e64d4d9b
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_enforcer.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_enforcer')
+ mobileTemplate.setLevel(15)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_enforcer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_enforcer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_henchman.py b/scripts/mobiles/tatooine/valarian_henchman.py
new file mode 100644
index 00000000..4351ac14
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_henchman.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_henchman')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_henchman.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_cdef.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_henchman', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_mechanic.py b/scripts/mobiles/tatooine/valarian_mechanic.py
new file mode 100644
index 00000000..8a4eeacb
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_mechanic.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_mechanic')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_thug.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_mechanic', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_pod_racer.py b/scripts/mobiles/tatooine/valarian_pod_racer.py
new file mode 100644
index 00000000..d7424b22
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_pod_racer.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_pod_racer')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_swooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_pod_racer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_scout.py b/scripts/mobiles/tatooine/valarian_scout.py
new file mode 100644
index 00000000..c7f1add6
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_scout.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_scout')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_scout.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_dlt20.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_shuttle_guard.py b/scripts/mobiles/tatooine/valarian_shuttle_guard.py
new file mode 100644
index 00000000..d62435c3
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_shuttle_guard.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_swooper_shuttle')
+ mobileTemplate.setLevel(18)
+ mobileTemplate.setMinLevel(17)
+ mobileTemplate.setMaxLevel(22)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_thug.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_shuttle_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_swooper.py b/scripts/mobiles/tatooine/valarian_swooper.py
new file mode 100644
index 00000000..bdb0d623
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_swooper.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_swooper_leader')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_swooper_leader.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_swooper_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_swooper_leader.py b/scripts/mobiles/tatooine/valarian_swooper_leader.py
new file mode 100644
index 00000000..56537037
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_swooper_leader.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_swooper')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_swooper.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_swooper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_thief.py b/scripts/mobiles/tatooine/valarian_thief.py
new file mode 100644
index 00000000..7e30bf8a
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_thief.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_thief')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_thief.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_thief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/valarian_thug.py b/scripts/mobiles/tatooine/valarian_thug.py
new file mode 100644
index 00000000..04ce215c
--- /dev/null
+++ b/scripts/mobiles/tatooine/valarian_thug.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('valarian_thug')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("valarian")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_valarian_thug.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('valarian_thug', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/variegated_womprat.py b/scripts/mobiles/tatooine/variegated_womprat.py
new file mode 100644
index 00000000..f2df5312
--- /dev/null
+++ b/scripts/mobiles/tatooine/variegated_womprat.py
@@ -0,0 +1,46 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('variegated_womprat')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setMinLevel(11)
+ mobileTemplate.setMaxLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("variegated womprat")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_variegated_womp_rat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('variegated_womprat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/vicious_rill.py b/scripts/mobiles/tatooine/vicious_rill.py
new file mode 100644
index 00000000..93a7e55d
--- /dev/null
+++ b/scripts/mobiles/tatooine/vicious_rill.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('vicious_rill')
+ mobileTemplate.setLevel(3)
+ mobileTemplate.setMinLevel(2)
+ mobileTemplate.setMaxLevel(4)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(35)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(15)
+ mobileTemplate.setSocialGroup("rill")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_rill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('vicious_rill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/volatile_scyk.py b/scripts/mobiles/tatooine/volatile_scyk.py
new file mode 100644
index 00000000..dc0fab06
--- /dev/null
+++ b/scripts/mobiles/tatooine/volatile_scyk.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('scyk_volatile')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setMinLevel(11)
+ mobileTemplate.setMaxLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(40)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(25)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(18)
+ mobileTemplate.setSocialGroup("scyk")
+ mobileTemplate.setAssistRange(10)
+ mobileTemplate.setStalker(True)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_scyk.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('volatile_scyk', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/wasteland_cupa.py b/scripts/mobiles/tatooine/wasteland_cupa.py
new file mode 100644
index 00000000..574df453
--- /dev/null
+++ b/scripts/mobiles/tatooine/wasteland_cupa.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('wasteland_cu_pa')
+ mobileTemplate.setLevel(20)
+ mobileTemplate.setMinLevel(19)
+ mobileTemplate.setMaxLevel(21)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(215)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(100)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(115)
+ mobileTemplate.setSocialGroup("cu pa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_cu_pa.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('wasteland_cu_pa', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/water_thief.py b/scripts/mobiles/tatooine/water_thief.py
new file mode 100644
index 00000000..4e372bf0
--- /dev/null
+++ b/scripts/mobiles/tatooine/water_thief.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('water_thief')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(4)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("thug")
+ mobileTemplate.setAssistRange(4)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_moisture_thief.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 4, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('saberhit')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('water_thief', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/white_thranta_manager.py b/scripts/mobiles/tatooine/white_thranta_manager.py
new file mode 100644
index 00000000..f57bf0ca
--- /dev/null
+++ b/scripts/mobiles/tatooine/white_thranta_manager.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_opening_swooper_13')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("whitethranta")
+ mobileTemplate.setAssistRange(3)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_opening_wh_guard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('white_thranta_manager', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/white_thranta_security_captain.py b/scripts/mobiles/tatooine/white_thranta_security_captain.py
new file mode 100644
index 00000000..4d419c61
--- /dev/null
+++ b/scripts/mobiles/tatooine/white_thranta_security_captain.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_opening_swooper_15')
+ mobileTemplate.setLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("whitethranta")
+ mobileTemplate.setAssistRange(5)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_opening_wh_guard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_dlt20.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('white_thranta_security_captain', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/white_thranta_security_elite.py b/scripts/mobiles/tatooine/white_thranta_security_elite.py
new file mode 100644
index 00000000..db035c10
--- /dev/null
+++ b/scripts/mobiles/tatooine/white_thranta_security_elite.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_opening_swooper_15')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("whitethranta")
+ mobileTemplate.setAssistRange(5)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_opening_wh_guard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_dlt20.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('white_thranta_security_elite', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/white_thranta_security_guard.py b/scripts/mobiles/tatooine/white_thranta_security_guard.py
new file mode 100644
index 00000000..f652ece2
--- /dev/null
+++ b/scripts/mobiles/tatooine/white_thranta_security_guard.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_opening_swooper_9')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("whitethranta")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_opening_wh_guard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_dlt20.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('white_thranta_security_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/white_thranta_security_officer.py b/scripts/mobiles/tatooine/white_thranta_security_officer.py
new file mode 100644
index 00000000..ce9f6a30
--- /dev/null
+++ b/scripts/mobiles/tatooine/white_thranta_security_officer.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_opening_swooper_11')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("whitethranta")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_opening_wh_guard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_dlt20.iff', 0, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotrifle')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('white_thranta_security_officer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/white_thranta_specialist.py b/scripts/mobiles/tatooine/white_thranta_specialist.py
new file mode 100644
index 00000000..8754ae56
--- /dev/null
+++ b/scripts/mobiles/tatooine/white_thranta_specialist.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_opening_swooper_10')
+ mobileTemplate.setLevel(9)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("whitethranta")
+ mobileTemplate.setAssistRange(3)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_opening_wh_guard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('white_thranta_specialist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/white_thranta_technican.py b/scripts/mobiles/tatooine/white_thranta_technican.py
new file mode 100644
index 00000000..c8542f36
--- /dev/null
+++ b/scripts/mobiles/tatooine/white_thranta_technican.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tatooine_opening_swooper_8')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(0)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("whitethranta")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_tatooine_opening_wh_guard.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedShotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('white_thranta_technican', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/wild_bladeback_boar.py b/scripts/mobiles/tatooine/wild_bladeback_boar.py
new file mode 100644
index 00000000..59ab35da
--- /dev/null
+++ b/scripts/mobiles/tatooine/wild_bladeback_boar.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('quest_hero_of_tatooine_ferocious_beast')
+ mobileTemplate.setLevel(40)
+ mobileTemplate.setMinLevel(39)
+ mobileTemplate.setMaxLevel(41)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(120)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(80)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(50)
+ mobileTemplate.setSocialGroup("zucca boar")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_zucca_boar.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('wild_bladeback_boar', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/wild_dune_boar.py b/scripts/mobiles/tatooine/wild_dune_boar.py
new file mode 100644
index 00000000..4796affd
--- /dev/null
+++ b/scripts/mobiles/tatooine/wild_dune_boar.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('wild_dune_boar')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setMinLevel(49)
+ mobileTemplate.setMaxLevel(51)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(90)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(80)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(75)
+ mobileTemplate.setSocialGroup("zucca boar")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_zucca_boar.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('wild_dune_boar', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/womprat.py b/scripts/mobiles/tatooine/womprat.py
new file mode 100644
index 00000000..b50adcad
--- /dev/null
+++ b/scripts/mobiles/tatooine/womprat.py
@@ -0,0 +1,47 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('womprat')
+ mobileTemplate.setLevel(4)
+ mobileTemplate.setMinLevel(3)
+ mobileTemplate.setMaxLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("womprat")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_womp_rat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('womprat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/wonderous_cupa.py b/scripts/mobiles/tatooine/wonderous_cupa.py
new file mode 100644
index 00000000..2d34e4af
--- /dev/null
+++ b/scripts/mobiles/tatooine/wonderous_cupa.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('cu_pa_wonderous')
+ mobileTemplate.setLevel(12)
+ mobileTemplate.setMinLevel(11)
+ mobileTemplate.setMaxLevel(13)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(215)
+ mobileTemplate.setHideType("Bristly Hide")
+ mobileTemplate.setBoneAmount(100)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(115)
+ mobileTemplate.setSocialGroup("cu pa")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_cu_pa.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('wonderous_cu_pa', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/worrt.py b/scripts/mobiles/tatooine/worrt.py
new file mode 100644
index 00000000..4a49556b
--- /dev/null
+++ b/scripts/mobiles/tatooine/worrt.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('worrt')
+ mobileTemplate.setLevel(5)
+ mobileTemplate.setMinLevel(4)
+ mobileTemplate.setMaxLevel(6)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("worrt")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_worrt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('worrt', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/worrt_gutbuster.py b/scripts/mobiles/tatooine/worrt_gutbuster.py
new file mode 100644
index 00000000..e39f0ffb
--- /dev/null
+++ b/scripts/mobiles/tatooine/worrt_gutbuster.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('worrt_gutbuster')
+ mobileTemplate.setLevel(13)
+ mobileTemplate.setMinLevel(12)
+ mobileTemplate.setMaxLevel(14)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptilian Meat")
+ mobileTemplate.setMeatAmount(9)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(9)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("worrt")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_worrt.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('worrt_gutbuster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/young_mountain_squill.py b/scripts/mobiles/tatooine/young_mountain_squill.py
new file mode 100644
index 00000000..411e0c15
--- /dev/null
+++ b/scripts/mobiles/tatooine/young_mountain_squill.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('young_mountain_squill')
+ mobileTemplate.setLevel(16)
+ mobileTemplate.setMinLevel(15)
+ mobileTemplate.setMaxLevel(17)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(2)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(1)
+ mobileTemplate.setSocialGroup("squill")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_squill.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('young_mountain_squill', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/tatooine/zucca_boar.py b/scripts/mobiles/tatooine/zucca_boar.py
new file mode 100644
index 00000000..6865bcac
--- /dev/null
+++ b/scripts/mobiles/tatooine/zucca_boar.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('zucca_boar')
+ mobileTemplate.setLevel(8)
+ mobileTemplate.setMinLevel(7)
+ mobileTemplate.setMaxLevel(9)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setBoneType("Animal Bone")
+ mobileTemplate.setHideAmount(25)
+ mobileTemplate.setSocialGroup("zucca boar")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_zucca_boar.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('zucca_boar', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/ancient_mamien.py b/scripts/mobiles/yavin4/ancient_mamien.py
new file mode 100644
index 00000000..dbf12dec
--- /dev/null
+++ b/scripts/mobiles/yavin4/ancient_mamien.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mamien_ancient')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(20)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(20)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setSocialGroup("mamien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mamien.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('ancient_mamien', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/angler.py b/scripts/mobiles/yavin4/angler.py
new file mode 100644
index 00000000..c0cfb19a
--- /dev/null
+++ b/scripts/mobiles/yavin4/angler.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('angler')
+ mobileTemplate.setLevel(72)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setSocialGroup("angler")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_angler.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('angler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/angler_bone.py b/scripts/mobiles/yavin4/angler_bone.py
new file mode 100644
index 00000000..e98a684d
--- /dev/null
+++ b/scripts/mobiles/yavin4/angler_bone.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('angler_bone')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setSocialGroup("angler")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_angler.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('bone_angler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/angler_hatchling.py b/scripts/mobiles/yavin4/angler_hatchling.py
new file mode 100644
index 00000000..1f3a1933
--- /dev/null
+++ b/scripts/mobiles/yavin4/angler_hatchling.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('angler_hatchling')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(2)
+ mobileTemplate.setSocialGroup("angler")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_angler.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('angler_hatchling', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/angler_recluse.py b/scripts/mobiles/yavin4/angler_recluse.py
new file mode 100644
index 00000000..a3ed054a
--- /dev/null
+++ b/scripts/mobiles/yavin4/angler_recluse.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('angler_hatchling')
+ mobileTemplate.setLevel(73)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(2)
+ mobileTemplate.setSocialGroup("angler")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_angler.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('angler_recluse', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/blood_fanged_gackle_bat.py b/scripts/mobiles/yavin4/blood_fanged_gackle_bat.py
new file mode 100644
index 00000000..0c0f21c9
--- /dev/null
+++ b/scripts/mobiles/yavin4/blood_fanged_gackle_bat.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bloodfanged_gackle_bat')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(9)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(9)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(9)
+ mobileTemplate.setSocialGroup("gacklebat")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gackle.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('blood_fanged_gackle_bat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/choku.py b/scripts/mobiles/yavin4/choku.py
new file mode 100644
index 00000000..59f319d7
--- /dev/null
+++ b/scripts/mobiles/yavin4/choku.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('choku')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(8)
+ mobileTemplate.setSocialGroup("choku")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_choku.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('choku', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/choku_female.py b/scripts/mobiles/yavin4/choku_female.py
new file mode 100644
index 00000000..93581639
--- /dev/null
+++ b/scripts/mobiles/yavin4/choku_female.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('choku_female')
+ mobileTemplate.setLevel(69)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(8)
+ mobileTemplate.setSocialGroup("choku")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_choku.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('choku_female', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/choku_hunter.py b/scripts/mobiles/yavin4/choku_hunter.py
new file mode 100644
index 00000000..5ed02d64
--- /dev/null
+++ b/scripts/mobiles/yavin4/choku_hunter.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('choku_hunter')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(8)
+ mobileTemplate.setSocialGroup("choku")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_choku.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('choku_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/choku_male.py b/scripts/mobiles/yavin4/choku_male.py
new file mode 100644
index 00000000..2b70e07c
--- /dev/null
+++ b/scripts/mobiles/yavin4/choku_male.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('choku_male')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(8)
+ mobileTemplate.setSocialGroup("choku")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_choku.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('choku_male', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/choku_packmaster.py b/scripts/mobiles/yavin4/choku_packmaster.py
new file mode 100644
index 00000000..039bc66e
--- /dev/null
+++ b/scripts/mobiles/yavin4/choku_packmaster.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('choku_packmaster')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(8)
+ mobileTemplate.setSocialGroup("choku")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_choku.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('choku_packmaster', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/choku_pup.py b/scripts/mobiles/yavin4/choku_pup.py
new file mode 100644
index 00000000..8bed76a0
--- /dev/null
+++ b/scripts/mobiles/yavin4/choku_pup.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('choku_pup')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.5)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(7)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(5)
+ mobileTemplate.setSocialGroup("choku")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_choku.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('choku_pup', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/crystal_snake.py b/scripts/mobiles/yavin4/crystal_snake.py
new file mode 100644
index 00000000..a58c453c
--- /dev/null
+++ b/scripts/mobiles/yavin4/crystal_snake.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crystal_snake')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("crystal snake")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_crystal_snake.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('crystal_snake', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/elder_mamien.py b/scripts/mobiles/yavin4/elder_mamien.py
new file mode 100644
index 00000000..963482e0
--- /dev/null
+++ b/scripts/mobiles/yavin4/elder_mamien.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mamien_elder')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(35)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(40)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(45)
+ mobileTemplate.setSocialGroup("mamien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mamien.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('eler_mamien', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/enraged_tybis.py b/scripts/mobiles/yavin4/enraged_tybis.py
new file mode 100644
index 00000000..3f2841f6
--- /dev/null
+++ b/scripts/mobiles/yavin4/enraged_tybis.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('enraged_tybis')
+ mobileTemplate.setLevel(75)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(220)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(160)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(105)
+ mobileTemplate.setSocialGroup("tybis")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tybis.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('enraged_tybis', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/female_mamien.py b/scripts/mobiles/yavin4/female_mamien.py
new file mode 100644
index 00000000..6e04a67f
--- /dev/null
+++ b/scripts/mobiles/yavin4/female_mamien.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mamien_female')
+ mobileTemplate.setLevel(67)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(45)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(20)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setSocialGroup("mamien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mamien.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('female_mamien', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/female_mawgax.py b/scripts/mobiles/yavin4/female_mawgax.py
new file mode 100644
index 00000000..9c003136
--- /dev/null
+++ b/scripts/mobiles/yavin4/female_mawgax.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mawgax_female')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Domesticated Meat")
+ mobileTemplate.setMeatAmount(115)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(72)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(52)
+ mobileTemplate.setSocialGroup("mawgax")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mawgax.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('female_mawgax', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/female_tybis.py b/scripts/mobiles/yavin4/female_tybis.py
new file mode 100644
index 00000000..0100a516
--- /dev/null
+++ b/scripts/mobiles/yavin4/female_tybis.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tybis_female')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(220)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(160)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(105)
+ mobileTemplate.setSocialGroup("tybis")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tybis.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('female_tybis', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/feral_mutant_gackle_stalker.py b/scripts/mobiles/yavin4/feral_mutant_gackle_stalker.py
new file mode 100644
index 00000000..2f74e14d
--- /dev/null
+++ b/scripts/mobiles/yavin4/feral_mutant_gackle_stalker.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('feral_mutant_gackle_stalker')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(9)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(9)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(9)
+ mobileTemplate.setSocialGroup("gacklebat")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gackle_bat_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('feral_mutant_gackle_stalker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/frenzied_choku.py b/scripts/mobiles/yavin4/frenzied_choku.py
new file mode 100644
index 00000000..5cc27ba3
--- /dev/null
+++ b/scripts/mobiles/yavin4/frenzied_choku.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('frenzied_choku')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(8)
+ mobileTemplate.setSocialGroup("choku")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_choku.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('frenzied_choku', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/gackle_bat.py b/scripts/mobiles/yavin4/gackle_bat.py
new file mode 100644
index 00000000..16723014
--- /dev/null
+++ b/scripts/mobiles/yavin4/gackle_bat.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gackle_bat')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setSocialGroup("gacklebat")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gackle_bat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gackle_bat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/gackle_bat_hunter.py b/scripts/mobiles/yavin4/gackle_bat_hunter.py
new file mode 100644
index 00000000..444ac1c2
--- /dev/null
+++ b/scripts/mobiles/yavin4/gackle_bat_hunter.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gackle_bat_hunter')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(3)
+ mobileTemplate.setSocialGroup("gacklebat")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gackle_bat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gackle_bat_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/gackle_bat_mymidon_lord.py b/scripts/mobiles/yavin4/gackle_bat_mymidon_lord.py
new file mode 100644
index 00000000..8d9fd29d
--- /dev/null
+++ b/scripts/mobiles/yavin4/gackle_bat_mymidon_lord.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('gackle_bat_myrmidon_lord')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(10)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(10)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(10)
+ mobileTemplate.setSocialGroup("gacklebat")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_gackle_bat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('gackle_bat_myrmidon_lord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/geonosian_bunker/enhanced_gaping_spider.py b/scripts/mobiles/yavin4/geonosian_bunker/enhanced_gaping_spider.py
new file mode 100644
index 00000000..387b4ca9
--- /dev/null
+++ b/scripts/mobiles/yavin4/geonosian_bunker/enhanced_gaping_spider.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('geonosian_gaping_spider_fire')
+ mobileTemplate.setLevel(88)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(50)
+ mobileTemplate.setSocialGroup("geonosian bunker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gaping_spider_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/base/shared_creature_base.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('enhanced_gaping_spider', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/geonosian_bunker/enhanced_kliknik.py b/scripts/mobiles/yavin4/geonosian_bunker/enhanced_kliknik.py
new file mode 100644
index 00000000..1ad10dbc
--- /dev/null
+++ b/scripts/mobiles/yavin4/geonosian_bunker/enhanced_kliknik.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('geonosian_kliknik_force_strong')
+ mobileTemplate.setLevel(89)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(45)
+ mobileTemplate.setHideType("Scaley Meat")
+ mobileTemplate.setHideAmount(40)
+ mobileTemplate.setSocialGroup("geonosian bunker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/base/shared_creature_base.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('enhanced_kliknik', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/geonosian_bunker/enhanced_kwi.py b/scripts/mobiles/yavin4/geonosian_bunker/enhanced_kwi.py
new file mode 100644
index 00000000..6cc6a288
--- /dev/null
+++ b/scripts/mobiles/yavin4/geonosian_bunker/enhanced_kwi.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('geonosian_enhanced_kwi')
+ mobileTemplate.setLevel(88)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(100)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(85)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(75)
+ mobileTemplate.setSocialGroup("geonosian bunker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kwi_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('enhanced_kwi', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/geonosian_bunker/geonosian_acklay_bunker_boss.py b/scripts/mobiles/yavin4/geonosian_bunker/geonosian_acklay_bunker_boss.py
new file mode 100644
index 00000000..ff94ddd2
--- /dev/null
+++ b/scripts/mobiles/yavin4/geonosian_bunker/geonosian_acklay_bunker_boss.py
@@ -0,0 +1,38 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('geonosian_acklay_bunker_boss')
+ mobileTemplate.setLevel(93)
+ mobileTemplate.setDifficulty(2)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("geonosian bunker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_acklay.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/base/shared_base_weapon_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('geonosian_acklay_bunker_boss', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/geonosian_bunker/geonosian_crazed_guard.py b/scripts/mobiles/yavin4/geonosian_bunker/geonosian_crazed_guard.py
new file mode 100644
index 00000000..ad8cf4b6
--- /dev/null
+++ b/scripts/mobiles/yavin4/geonosian_bunker/geonosian_crazed_guard.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('geonosian_crazed_guard')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("geonosian bunker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_geonosian_warrior_01.iff')
+ templates.add('object/mobile/shared_dressed_geonosian_warrior_02.iff')
+ templates.add('object/mobile/shared_dressed_geonosian_warrior_03.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_geo_generic.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('geonosian_crazed_guard', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/geonosian_bunker/geonosian_droideka_crazed.py b/scripts/mobiles/yavin4/geonosian_bunker/geonosian_droideka_crazed.py
new file mode 100644
index 00000000..4523dcce
--- /dev/null
+++ b/scripts/mobiles/yavin4/geonosian_bunker/geonosian_droideka_crazed.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('geonosian_droideka_crazed')
+ mobileTemplate.setLevel(90)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("geonosian bunker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_droideka.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/droid/shared_droid_droideka_ranged.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('geonosian_droideka_crazed', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/geonosian_bunker/geonosian_scientist.py b/scripts/mobiles/yavin4/geonosian_bunker/geonosian_scientist.py
new file mode 100644
index 00000000..c0d13cf4
--- /dev/null
+++ b/scripts/mobiles/yavin4/geonosian_bunker/geonosian_scientist.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('geonosian_scientist')
+ mobileTemplate.setLevel(86)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("geonosian bunker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_geonosian_scientist_01.iff')
+ templates.add('object/mobile/shared_dressed_geonosian_scientist_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_geonosian_sonic_blaster_loot.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('geonosian_scientist', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/geonosian_bunker/geonosian_technical_assistant.py b/scripts/mobiles/yavin4/geonosian_bunker/geonosian_technical_assistant.py
new file mode 100644
index 00000000..1acef5cf
--- /dev/null
+++ b/scripts/mobiles/yavin4/geonosian_bunker/geonosian_technical_assistant.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('geonosian_tech_assistant')
+ mobileTemplate.setLevel(86)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("geonosian bunker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_geonosian_warrior_01.iff')
+ templates.add('object/mobile/shared_dressed_geonosian_warrior_02.iff')
+ templates.add('object/mobile/shared_dressed_geonosian_warrior_03.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_geonosian_sonic_blaster_loot.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshotpistol')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('geonosian_technical_assistant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/geonosian_bunker/geonosian_worker.py b/scripts/mobiles/yavin4/geonosian_bunker/geonosian_worker.py
new file mode 100644
index 00000000..5f12658a
--- /dev/null
+++ b/scripts/mobiles/yavin4/geonosian_bunker/geonosian_worker.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('geonosian_worker')
+ mobileTemplate.setLevel(85)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("geonosian bunker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_geonosian_commoner_01.iff')
+ templates.add('object/mobile/shared_dressed_geonosian_commoner_02.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_geo_generic.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('geonosian_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/geonosian_bunker/imperial_observer.py b/scripts/mobiles/yavin4/geonosian_bunker/imperial_observer.py
new file mode 100644
index 00000000..1e294dd2
--- /dev/null
+++ b/scripts/mobiles/yavin4/geonosian_bunker/imperial_observer.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eow_geonosian_imperial_observer')
+ mobileTemplate.setLevel(88)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("geonosian bunker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_imperial_officer_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('imperial_observer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/geonosian_bunker/mercenary_sentry.py b/scripts/mobiles/yavin4/geonosian_bunker/mercenary_sentry.py
new file mode 100644
index 00000000..91861738
--- /dev/null
+++ b/scripts/mobiles/yavin4/geonosian_bunker/mercenary_sentry.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('eow_geonosian_human_security_force')
+ mobileTemplate.setLevel(88)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("geonosian bunker")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_mercenary_elite_hum_f.iff')
+ templates.add('object/mobile/shared_dressed_mercenary_elite_hum_m.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('mercenary_sentry', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/giant_angler.py b/scripts/mobiles/yavin4/giant_angler.py
new file mode 100644
index 00000000..dce8ae78
--- /dev/null
+++ b/scripts/mobiles/yavin4/giant_angler.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_angler')
+ mobileTemplate.setLevel(73)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setSocialGroup("angler")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_angler.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_angler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/giant_crystal_snake.py b/scripts/mobiles/yavin4/giant_crystal_snake.py
new file mode 100644
index 00000000..d0b81980
--- /dev/null
+++ b/scripts/mobiles/yavin4/giant_crystal_snake.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_crystal_snake')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(7)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("crystal snake")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_crystal_snake.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_crystal_snake', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/giant_gackle_bat.py b/scripts/mobiles/yavin4/giant_gackle_bat.py
new file mode 100644
index 00000000..70440ef9
--- /dev/null
+++ b/scripts/mobiles/yavin4/giant_gackle_bat.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_gackle_bat')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(7)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(5)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(6)
+ mobileTemplate.setSocialGroup("gacklebat")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_gackle_bat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_gackle_bat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/giant_mawgax.py b/scripts/mobiles/yavin4/giant_mawgax.py
new file mode 100644
index 00000000..f07ab6b9
--- /dev/null
+++ b/scripts/mobiles/yavin4/giant_mawgax.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_mawgax')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Domesticated Meat")
+ mobileTemplate.setMeatAmount(135)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(85)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(70)
+ mobileTemplate.setSocialGroup("mawgax")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_mawgax.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_mawgax', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/giant_spined_puc.py b/scripts/mobiles/yavin4/giant_spined_puc.py
new file mode 100644
index 00000000..024bb1f1
--- /dev/null
+++ b/scripts/mobiles/yavin4/giant_spined_puc.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_spined_puc')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptile Meat")
+ mobileTemplate.setMeatAmount(7)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(7)
+ mobileTemplate.setSocialGroup("spined puc")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_spined_puc.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_spined_puc', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/giant_stintaril.py b/scripts/mobiles/yavin4/giant_stintaril.py
new file mode 100644
index 00000000..502629e0
--- /dev/null
+++ b/scripts/mobiles/yavin4/giant_stintaril.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_stintaril')
+ mobileTemplate.setLevel(63)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(9)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(7)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(6)
+ mobileTemplate.setSocialGroup("stintaril")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_stintaril.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_stintaril', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/giant_tanc_mite.py b/scripts/mobiles/yavin4/giant_tanc_mite.py
new file mode 100644
index 00000000..9091d6ed
--- /dev/null
+++ b/scripts/mobiles/yavin4/giant_tanc_mite.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('giant_tanc_mite')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setSocialGroup("tancmite")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_giant_tanc_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('giant_tanc_mite', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/hooded_crystal_snake.py b/scripts/mobiles/yavin4/hooded_crystal_snake.py
new file mode 100644
index 00000000..069f1cf3
--- /dev/null
+++ b/scripts/mobiles/yavin4/hooded_crystal_snake.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('crystal_snake_hooded')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(2)
+ mobileTemplate.setSocialGroup("crystal snake")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_crystal_snake.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('hooded_crystal_snake', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/hutt_expeditionary_force_leader.py b/scripts/mobiles/yavin4/hutt_expeditionary_force_leader.py
new file mode 100644
index 00000000..7210b145
--- /dev/null
+++ b/scripts/mobiles/yavin4/hutt_expeditionary_force_leader.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hutt_expedition_force_leader')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("hutt")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_hutt_expedition_force_leader.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('hutt_expeditionary_force_leader', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/hutt_expeditionary_force_member.py b/scripts/mobiles/yavin4/hutt_expeditionary_force_member.py
new file mode 100644
index 00000000..d8f0dd31
--- /dev/null
+++ b/scripts/mobiles/yavin4/hutt_expeditionary_force_member.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hutt_expedition_force_member')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("hutt")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_hutt_expedition_force_member.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('hutt_expeditionary_force_member', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/hutt_expeditionary_force_surveyor.py b/scripts/mobiles/yavin4/hutt_expeditionary_force_surveyor.py
new file mode 100644
index 00000000..27a5ce1b
--- /dev/null
+++ b/scripts/mobiles/yavin4/hutt_expeditionary_force_surveyor.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('hutt_expedition_force_surveyor')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("hutt")
+ mobileTemplate.setAssistRange(6)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_hutt_medic1_zabrak_female_01..iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('hutt_expeditionary_force_sureyor', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kai_tok_bloodreaver.py b/scripts/mobiles/yavin4/kai_tok_bloodreaver.py
new file mode 100644
index 00000000..4d849b6d
--- /dev/null
+++ b/scripts/mobiles/yavin4/kai_tok_bloodreaver.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kai_tok_bloodreaver')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(41)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(46)
+ mobileTemplate.setSocialGroup("kai tok")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kai_tok.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kai_tok_bloodreaver', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kai_tok_prowler.py b/scripts/mobiles/yavin4/kai_tok_prowler.py
new file mode 100644
index 00000000..c6b42cc1
--- /dev/null
+++ b/scripts/mobiles/yavin4/kai_tok_prowler.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kai_tok_prowler')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(41)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(46)
+ mobileTemplate.setSocialGroup("kai tok")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kai_tok.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kai_tok_prowler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kai_tok_scavenger.py b/scripts/mobiles/yavin4/kai_tok_scavenger.py
new file mode 100644
index 00000000..f434d75c
--- /dev/null
+++ b/scripts/mobiles/yavin4/kai_tok_scavenger.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kai_tok_scavenger')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(41)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(46)
+ mobileTemplate.setSocialGroup("kai tok")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kai_tok.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kai_tok_scavenger', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kai_tok_slayer.py b/scripts/mobiles/yavin4/kai_tok_slayer.py
new file mode 100644
index 00000000..3453be75
--- /dev/null
+++ b/scripts/mobiles/yavin4/kai_tok_slayer.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kai_tok_slayer')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(41)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(46)
+ mobileTemplate.setSocialGroup("kai tok")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kai_tok.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kai_tok_slayer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kliknik.py b/scripts/mobiles/yavin4/kliknik.py
new file mode 100644
index 00000000..2e377321
--- /dev/null
+++ b/scripts/mobiles/yavin4/kliknik.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kliknik')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("kliknik")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kliknik', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kliknik_dark_defender.py b/scripts/mobiles/yavin4/kliknik_dark_defender.py
new file mode 100644
index 00000000..cb9101f7
--- /dev/null
+++ b/scripts/mobiles/yavin4/kliknik_dark_defender.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kliknik_dark_defender')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("kliknik")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kliknik_dark_defender', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kliknik_dark_hunter.py b/scripts/mobiles/yavin4/kliknik_dark_hunter.py
new file mode 100644
index 00000000..106e16fe
--- /dev/null
+++ b/scripts/mobiles/yavin4/kliknik_dark_hunter.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kliknik_dark_hunter')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("kliknik")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kliknik_dark_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kliknik_dark_queen.py b/scripts/mobiles/yavin4/kliknik_dark_queen.py
new file mode 100644
index 00000000..03178fca
--- /dev/null
+++ b/scripts/mobiles/yavin4/kliknik_dark_queen.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kliknik_dark_queen')
+ mobileTemplate.setLevel(75)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(7)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("kliknik")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik_queen.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kliknik_dark_queen', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kliknik_dark_warrior.py b/scripts/mobiles/yavin4/kliknik_dark_warrior.py
new file mode 100644
index 00000000..5611a22f
--- /dev/null
+++ b/scripts/mobiles/yavin4/kliknik_dark_warrior.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kliknik_dark_warrior')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("kliknik")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kliknik_dark_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kliknik_hatchling.py b/scripts/mobiles/yavin4/kliknik_hatchling.py
new file mode 100644
index 00000000..769bfd71
--- /dev/null
+++ b/scripts/mobiles/yavin4/kliknik_hatchling.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kliknik_hatchling')
+ mobileTemplate.setLevel(73)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(1)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("kliknik")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik_hatchling.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kliknik_hatchling', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kliknik_hunter.py b/scripts/mobiles/yavin4/kliknik_hunter.py
new file mode 100644
index 00000000..1a67f5da
--- /dev/null
+++ b/scripts/mobiles/yavin4/kliknik_hunter.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kliknik_hunter')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("kliknik")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kliknik_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kliknik_mantis.py b/scripts/mobiles/yavin4/kliknik_mantis.py
new file mode 100644
index 00000000..80057620
--- /dev/null
+++ b/scripts/mobiles/yavin4/kliknik_mantis.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kliknik_mantis')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("kliknik")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kliknik_mantis', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kliknik_queen.py b/scripts/mobiles/yavin4/kliknik_queen.py
new file mode 100644
index 00000000..7d716284
--- /dev/null
+++ b/scripts/mobiles/yavin4/kliknik_queen.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kliknik_queen')
+ mobileTemplate.setLevel(80)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(7)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("kliknik")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik_queen.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kliknik_queen', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kliknik_queen_harvester.py b/scripts/mobiles/yavin4/kliknik_queen_harvester.py
new file mode 100644
index 00000000..69b61823
--- /dev/null
+++ b/scripts/mobiles/yavin4/kliknik_queen_harvester.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kliknik_queen_harvester')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("kliknik")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kliknik_queen_harvester', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kliknik_scout.py b/scripts/mobiles/yavin4/kliknik_scout.py
new file mode 100644
index 00000000..1b473e00
--- /dev/null
+++ b/scripts/mobiles/yavin4/kliknik_scout.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kliknik_scout')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("kliknik")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kliknik_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kliknik_shredder_guardian.py b/scripts/mobiles/yavin4/kliknik_shredder_guardian.py
new file mode 100644
index 00000000..9b2ee777
--- /dev/null
+++ b/scripts/mobiles/yavin4/kliknik_shredder_guardian.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kliknik_shredder_guardian')
+ mobileTemplate.setLevel(73)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("kliknik")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kliknik_shredder_guardian', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kliknik_warrior.py b/scripts/mobiles/yavin4/kliknik_warrior.py
new file mode 100644
index 00000000..76065513
--- /dev/null
+++ b/scripts/mobiles/yavin4/kliknik_warrior.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kliknik_warrior')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("kliknik")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kliknik_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/kliknik_worker.py b/scripts/mobiles/yavin4/kliknik_worker.py
new file mode 100644
index 00000000..f8539994
--- /dev/null
+++ b/scripts/mobiles/yavin4/kliknik_worker.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kliknik_worker')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("kliknik")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('kliknik_worker', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/lurking_angler.py b/scripts/mobiles/yavin4/lurking_angler.py
new file mode 100644
index 00000000..2f35e65b
--- /dev/null
+++ b/scripts/mobiles/yavin4/lurking_angler.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('lurking_angler')
+ mobileTemplate.setLevel(67)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setSocialGroup("angler")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_angler_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('lurking_angler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/mad_angler.py b/scripts/mobiles/yavin4/mad_angler.py
new file mode 100644
index 00000000..0e2517a1
--- /dev/null
+++ b/scripts/mobiles/yavin4/mad_angler.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mad_angler')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(3)
+ mobileTemplate.setSocialGroup("angler")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_angler_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mad_angler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/majestic_whisper_bird.py b/scripts/mobiles/yavin4/majestic_whisper_bird.py
new file mode 100644
index 00000000..caf2f682
--- /dev/null
+++ b/scripts/mobiles/yavin4/majestic_whisper_bird.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('whisper_bird_majestic')
+ mobileTemplate.setLevel(56)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setSocialGroup("whisperbird")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_whisper_bird.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('majestic_whisper_bird', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/male_mamien.py b/scripts/mobiles/yavin4/male_mamien.py
new file mode 100644
index 00000000..dbe95a91
--- /dev/null
+++ b/scripts/mobiles/yavin4/male_mamien.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mamien_male')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(45)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(20)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setSocialGroup("mamien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mamien.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('male_mamien', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/male_mawgax.py b/scripts/mobiles/yavin4/male_mawgax.py
new file mode 100644
index 00000000..89608fec
--- /dev/null
+++ b/scripts/mobiles/yavin4/male_mawgax.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mawgax_male')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Domesticated Meat")
+ mobileTemplate.setMeatAmount(100)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(70)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(55)
+ mobileTemplate.setSocialGroup("mawgax")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mawgax.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('male_mawgax', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/male_tybis.py b/scripts/mobiles/yavin4/male_tybis.py
new file mode 100644
index 00000000..5b82b3ce
--- /dev/null
+++ b/scripts/mobiles/yavin4/male_tybis.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tybis_male')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(275)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(200)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(125)
+ mobileTemplate.setSocialGroup("tybis")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tybis.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('male_tybis', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/mamien_junglelord.py b/scripts/mobiles/yavin4/mamien_junglelord.py
new file mode 100644
index 00000000..ad610222
--- /dev/null
+++ b/scripts/mobiles/yavin4/mamien_junglelord.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mamien_junglelord')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(18)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(18)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(18)
+ mobileTemplate.setSocialGroup("mamien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mamien.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mamien_junglelord', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/mamien_matriarch.py b/scripts/mobiles/yavin4/mamien_matriarch.py
new file mode 100644
index 00000000..d76a707c
--- /dev/null
+++ b/scripts/mobiles/yavin4/mamien_matriarch.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mamien_matriarch')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(17)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(20)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setSocialGroup("mamien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mamien.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mamien_matriarch', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/mamien_youth.py b/scripts/mobiles/yavin4/mamien_youth.py
new file mode 100644
index 00000000..c503262c
--- /dev/null
+++ b/scripts/mobiles/yavin4/mamien_youth.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mamien_youth')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(.7)
+ mobileTemplate.setMeatType("Wild Meat")
+ mobileTemplate.setMeatAmount(35)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(20)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setSocialGroup("mamien")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mamien.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mamien_youth', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/mawgax.py b/scripts/mobiles/yavin4/mawgax.py
new file mode 100644
index 00000000..9f4b948c
--- /dev/null
+++ b/scripts/mobiles/yavin4/mawgax.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('bio_engineered_mawgax')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Domesticated Meat")
+ mobileTemplate.setMeatAmount(100)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(70)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(55)
+ mobileTemplate.setSocialGroup("mawgax")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mawgax.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mawgax', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/mawgax_raptor.py b/scripts/mobiles/yavin4/mawgax_raptor.py
new file mode 100644
index 00000000..7aebbcfe
--- /dev/null
+++ b/scripts/mobiles/yavin4/mawgax_raptor.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mawgax_raptor')
+ mobileTemplate.setLevel(50)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Domesticated Meat")
+ mobileTemplate.setMeatAmount(100)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(70)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(55)
+ mobileTemplate.setSocialGroup("mawgax")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mawgax.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mawgax_raptor', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/mawgax_youth.py b/scripts/mobiles/yavin4/mawgax_youth.py
new file mode 100644
index 00000000..f4443690
--- /dev/null
+++ b/scripts/mobiles/yavin4/mawgax_youth.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('mawgax_youth')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Domesticated Meat")
+ mobileTemplate.setMeatAmount(90)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(60)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(45)
+ mobileTemplate.setSocialGroup("mawgax")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_mawgax_youth.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('mawgax_youth', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/ominous_skreeg.py b/scripts/mobiles/yavin4/ominous_skreeg.py
new file mode 100644
index 00000000..78d9ce73
--- /dev/null
+++ b/scripts/mobiles/yavin4/ominous_skreeg.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('skreeg_ominous')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(9)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(7)
+ mobileTemplate.setSocialGroup("skreeg")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_skreeg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('ominous_skreeg', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/poisinous_spined_puc.py b/scripts/mobiles/yavin4/poisinous_spined_puc.py
new file mode 100644
index 00000000..d5388f03
--- /dev/null
+++ b/scripts/mobiles/yavin4/poisinous_spined_puc.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('spined_puc_poison')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptile Meat")
+ mobileTemplate.setMeatAmount(7)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(7)
+ mobileTemplate.setSocialGroup("spined puc")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_spined_puc.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('poisinous_spined_puc', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/puny_gackle_bat.py b/scripts/mobiles/yavin4/puny_gackle_bat.py
new file mode 100644
index 00000000..f4198003
--- /dev/null
+++ b/scripts/mobiles/yavin4/puny_gackle_bat.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('puny_gackle_bat')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(2)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(1)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(1)
+ mobileTemplate.setSocialGroup("gacklebat")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_puny_gackle_bat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('puny_gackle_bat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/puny_stintaril.py b/scripts/mobiles/yavin4/puny_stintaril.py
new file mode 100644
index 00000000..583b4d50
--- /dev/null
+++ b/scripts/mobiles/yavin4/puny_stintaril.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('puny_stintaril')
+ mobileTemplate.setLevel(61)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(2)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(1)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(1)
+ mobileTemplate.setSocialGroup("stintaril")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_puny_stintaril.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('puny_stintaril', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/puny_tanc_mite.py b/scripts/mobiles/yavin4/puny_tanc_mite.py
new file mode 100644
index 00000000..f080440f
--- /dev/null
+++ b/scripts/mobiles/yavin4/puny_tanc_mite.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('puny_tanc_mite')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(2)
+ mobileTemplate.setSocialGroup("tancmite")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_puny_tanc_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('puny_tanc_mite', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/ravaging_gackle_bat.py b/scripts/mobiles/yavin4/ravaging_gackle_bat.py
new file mode 100644
index 00000000..d8f3f6e6
--- /dev/null
+++ b/scripts/mobiles/yavin4/ravaging_gackle_bat.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('ravaging_gackle_bat')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(4)
+ mobileTemplate.setSocialGroup("gacklebat")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_gackle_bat.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('ravaging_gackle_bat', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/skreeg_adolescent.py b/scripts/mobiles/yavin4/skreeg_adolescent.py
new file mode 100644
index 00000000..f35bbd7b
--- /dev/null
+++ b/scripts/mobiles/yavin4/skreeg_adolescent.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('skreeg_adolescent')
+ mobileTemplate.setLevel(59)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(12)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(9)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(7)
+ mobileTemplate.setSocialGroup("skreeg")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_skreeg_adolescent.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('skreeg_adolescent', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/skreeg_female.py b/scripts/mobiles/yavin4/skreeg_female.py
new file mode 100644
index 00000000..e66eeb3b
--- /dev/null
+++ b/scripts/mobiles/yavin4/skreeg_female.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('skreeg_female')
+ mobileTemplate.setLevel(65)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(9)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(7)
+ mobileTemplate.setSocialGroup("skreeg")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_skreeg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('skreeg_female', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/skreeg_gatherer.py b/scripts/mobiles/yavin4/skreeg_gatherer.py
new file mode 100644
index 00000000..e5490848
--- /dev/null
+++ b/scripts/mobiles/yavin4/skreeg_gatherer.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('skreeg_gatherer')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(18)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(9)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(7)
+ mobileTemplate.setSocialGroup("skreeg")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_skreeg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('skreeg_gatherer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/skreeg_hunter.py b/scripts/mobiles/yavin4/skreeg_hunter.py
new file mode 100644
index 00000000..347c7f8b
--- /dev/null
+++ b/scripts/mobiles/yavin4/skreeg_hunter.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('skreeg_hunter')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(9)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(7)
+ mobileTemplate.setSocialGroup("skreeg")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_skreeg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('skreeg_hunter', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/skreeg_infant.py b/scripts/mobiles/yavin4/skreeg_infant.py
new file mode 100644
index 00000000..2d2097e3
--- /dev/null
+++ b/scripts/mobiles/yavin4/skreeg_infant.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('skreeg_infant')
+ mobileTemplate.setLevel(59)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(15)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(9)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(7)
+ mobileTemplate.setSocialGroup("skreeg")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_skreeg_infant.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('skreeg_infant', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/skreeg_male.py b/scripts/mobiles/yavin4/skreeg_male.py
new file mode 100644
index 00000000..00e62267
--- /dev/null
+++ b/scripts/mobiles/yavin4/skreeg_male.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('skreeg_male')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(9)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(7)
+ mobileTemplate.setSocialGroup("skreeg")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_skreeg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('skreeg_male', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/skreeg_scout.py b/scripts/mobiles/yavin4/skreeg_scout.py
new file mode 100644
index 00000000..c25350c3
--- /dev/null
+++ b/scripts/mobiles/yavin4/skreeg_scout.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('skreeg_scout')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(9)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(7)
+ mobileTemplate.setSocialGroup("skreeg")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_skreeg.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('skreeg_scout', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/skreeg_warrior.py b/scripts/mobiles/yavin4/skreeg_warrior.py
new file mode 100644
index 00000000..52eecddd
--- /dev/null
+++ b/scripts/mobiles/yavin4/skreeg_warrior.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('skreeg_warrior')
+ mobileTemplate.setLevel(66)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(9)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(7)
+ mobileTemplate.setSocialGroup("skreeg")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_skreeg_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('skreeg_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/skreeg_warrior_elite.py b/scripts/mobiles/yavin4/skreeg_warrior_elite.py
new file mode 100644
index 00000000..20e92498
--- /dev/null
+++ b/scripts/mobiles/yavin4/skreeg_warrior_elite.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('skreeg_warrior_elite')
+ mobileTemplate.setLevel(67)
+ mobileTemplate.setDifficulty(1)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(9)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(7)
+ mobileTemplate.setSocialGroup("skreeg")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_skreeg_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('skreeg_warrior_elite', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/smuggler_member.py b/scripts/mobiles/yavin4/smuggler_member.py
new file mode 100644
index 00000000..56b8e91a
--- /dev/null
+++ b/scripts/mobiles/yavin4/smuggler_member.py
@@ -0,0 +1,45 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('yavin_smuggler_member')
+ mobileTemplate.setLevel(70)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("smuggler")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(128)
+
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_smuggler_trainer_01.iff')
+
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('smuggler_member', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/spined_puc.py b/scripts/mobiles/yavin4/spined_puc.py
new file mode 100644
index 00000000..5d8c617e
--- /dev/null
+++ b/scripts/mobiles/yavin4/spined_puc.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('spined_puc')
+ mobileTemplate.setLevel(69)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Reptile Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setHideType("Leathery Hide")
+ mobileTemplate.setHideAmount(6)
+ mobileTemplate.setSocialGroup("spined puc")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_spined_puc.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('spined_puc', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/stintaril.py b/scripts/mobiles/yavin4/stintaril.py
new file mode 100644
index 00000000..08ba8a30
--- /dev/null
+++ b/scripts/mobiles/yavin4/stintaril.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stintaril')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("stintaril")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stintaril.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stintaril', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/stintaril_fleshripper.py b/scripts/mobiles/yavin4/stintaril_fleshripper.py
new file mode 100644
index 00000000..b11e6f4f
--- /dev/null
+++ b/scripts/mobiles/yavin4/stintaril_fleshripper.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stintaril_fleshripper')
+ mobileTemplate.setLevel(58)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("stintaril")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stintaril.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stintaril_fleshripper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/stintaril_prowler.py b/scripts/mobiles/yavin4/stintaril_prowler.py
new file mode 100644
index 00000000..9e8e4045
--- /dev/null
+++ b/scripts/mobiles/yavin4/stintaril_prowler.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stintaril_prowler')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("stintaril")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stintaril_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stintaril_prowler', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/stintaril_ravager.py b/scripts/mobiles/yavin4/stintaril_ravager.py
new file mode 100644
index 00000000..7e12fcd9
--- /dev/null
+++ b/scripts/mobiles/yavin4/stintaril_ravager.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stintaril_ravager')
+ mobileTemplate.setLevel(62)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("stintaril")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stintaril.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stintaril_ravager', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/stintaril_scavenger.py b/scripts/mobiles/yavin4/stintaril_scavenger.py
new file mode 100644
index 00000000..eefd318e
--- /dev/null
+++ b/scripts/mobiles/yavin4/stintaril_scavenger.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stintaril_scavenger')
+ mobileTemplate.setLevel(64)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(3)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(2)
+ mobileTemplate.setSocialGroup("stintaril")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_stintaril.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stintaril_scavenger', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/stranded_imperial_officer.py b/scripts/mobiles/yavin4/stranded_imperial_officer.py
new file mode 100644
index 00000000..2da0fdc9
--- /dev/null
+++ b/scripts/mobiles/yavin4/stranded_imperial_officer.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stranded_imperial_officer')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stranded_imperial_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stranded_imperial_officer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/stranded_imperial_pilot.py b/scripts/mobiles/yavin4/stranded_imperial_pilot.py
new file mode 100644
index 00000000..6553b678
--- /dev/null
+++ b/scripts/mobiles/yavin4/stranded_imperial_pilot.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stranded_imperial_pilot')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stranded_imperial_pilot.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stranded_imperial_pilot', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/stranded_imperial_soldier.py b/scripts/mobiles/yavin4/stranded_imperial_soldier.py
new file mode 100644
index 00000000..0b5d0275
--- /dev/null
+++ b/scripts/mobiles/yavin4/stranded_imperial_soldier.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stranded_imperial_soldier')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("imperial")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("imperial")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stranded_imperial_soldier.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stranded_imperial_soldier', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/stranded_rebel_officer.py b/scripts/mobiles/yavin4/stranded_rebel_officer.py
new file mode 100644
index 00000000..b918421d
--- /dev/null
+++ b/scripts/mobiles/yavin4/stranded_rebel_officer.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stranded_rebel_officer')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("rebel")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("rebel")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stranded_rebel_officer.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stranded_rebel_officer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/stranded_rebel_pilot.py b/scripts/mobiles/yavin4/stranded_rebel_pilot.py
new file mode 100644
index 00000000..19875d3b
--- /dev/null
+++ b/scripts/mobiles/yavin4/stranded_rebel_pilot.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stranded_rebel_pilot')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("rebel")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("rebel")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stranded_rebel_pilot.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stranded_rebel_pilot', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/stranded_rebel_soldier.py b/scripts/mobiles/yavin4/stranded_rebel_soldier.py
new file mode 100644
index 00000000..1f1931ba
--- /dev/null
+++ b/scripts/mobiles/yavin4/stranded_rebel_soldier.py
@@ -0,0 +1,39 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stranded_rebel_soldier')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("rebel")
+ mobileTemplate.setAssistRange(0)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setFaction("rebel")
+ mobileTemplate.setFactionStatus(1)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_stranded_rebel_soldier.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('rangedshot')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stranded_rebel_soldier', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/stunted_woolamander.py b/scripts/mobiles/yavin4/stunted_woolamander.py
new file mode 100644
index 00000000..abb89023
--- /dev/null
+++ b/scripts/mobiles/yavin4/stunted_woolamander.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('stunted_woolamander')
+ mobileTemplate.setLevel(74)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(20)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setSocialGroup("woolamander")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_woolamander.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('stunted_woolamander', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/swarming_kliknik.py b/scripts/mobiles/yavin4/swarming_kliknik.py
new file mode 100644
index 00000000..23a4a257
--- /dev/null
+++ b/scripts/mobiles/yavin4/swarming_kliknik.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('kliknik_swarming')
+ mobileTemplate.setLevel(73)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(12)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Carnivore Meat")
+ mobileTemplate.setMeatAmount(5)
+ mobileTemplate.setHideType("Scaley Hide")
+ mobileTemplate.setHideAmount(4)
+ mobileTemplate.setSocialGroup("kliknik")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_kliknik_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureRangedAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('swarming_kliknik', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/tanc_mite.py b/scripts/mobiles/yavin4/tanc_mite.py
new file mode 100644
index 00000000..b425ff64
--- /dev/null
+++ b/scripts/mobiles/yavin4/tanc_mite.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tanc_mite')
+ mobileTemplate.setLevel(67)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(4)
+ mobileTemplate.setSocialGroup("tancmite")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tanc_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tanc_mite', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/tanc_mite_warrior.py b/scripts/mobiles/yavin4/tanc_mite_warrior.py
new file mode 100644
index 00000000..d3467c00
--- /dev/null
+++ b/scripts/mobiles/yavin4/tanc_mite_warrior.py
@@ -0,0 +1,40 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tanc_mite_warrior')
+ mobileTemplate.setLevel(71)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Insect Meat")
+ mobileTemplate.setMeatAmount(6)
+ mobileTemplate.setSocialGroup("tancmite")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tanc_mite.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tanc_mite_warrior', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/tybis.py b/scripts/mobiles/yavin4/tybis.py
new file mode 100644
index 00000000..fe8e087d
--- /dev/null
+++ b/scripts/mobiles/yavin4/tybis.py
@@ -0,0 +1,44 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('tybis')
+ mobileTemplate.setLevel(73)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Herbivore Meat")
+ mobileTemplate.setMeatAmount(275)
+ mobileTemplate.setHideType("Bristley Hide")
+ mobileTemplate.setHideAmount(200)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(125)
+ mobileTemplate.setSocialGroup("tybis")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_tybis.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('tybis', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/whisper_bird_female.py b/scripts/mobiles/yavin4/whisper_bird_female.py
new file mode 100644
index 00000000..68a4b863
--- /dev/null
+++ b/scripts/mobiles/yavin4/whisper_bird_female.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('whisper_bird_female')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setSocialGroup("whisperbird")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_whisper_bird.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('whisper_bird_female', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/whisper_bird_hatchling.py b/scripts/mobiles/yavin4/whisper_bird_hatchling.py
new file mode 100644
index 00000000..1b225cfd
--- /dev/null
+++ b/scripts/mobiles/yavin4/whisper_bird_hatchling.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('whisper_bird_hatchling')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(55)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(30)
+ mobileTemplate.setSocialGroup("whisperbird")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_whisper_bird_hatchling.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('whisper_bird_hatchling', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/whisper_bird_male.py b/scripts/mobiles/yavin4/whisper_bird_male.py
new file mode 100644
index 00000000..79c59ee9
--- /dev/null
+++ b/scripts/mobiles/yavin4/whisper_bird_male.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('whisper_bird_male')
+ mobileTemplate.setLevel(60)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setMeatType("Avian Meat")
+ mobileTemplate.setMeatAmount(65)
+ mobileTemplate.setBoneType("Avian Bones")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setSocialGroup("whisperbird")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_whisper_bird.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('whisper_bird_male', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/woolamander.py b/scripts/mobiles/yavin4/woolamander.py
new file mode 100644
index 00000000..68495a12
--- /dev/null
+++ b/scripts/mobiles/yavin4/woolamander.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('woolamander')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(20)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setSocialGroup("woolamander")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_woolamander.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('woolamander', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/woolamander_gatherer.py b/scripts/mobiles/yavin4/woolamander_gatherer.py
new file mode 100644
index 00000000..15add95a
--- /dev/null
+++ b/scripts/mobiles/yavin4/woolamander_gatherer.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('woolamander_gatherer')
+ mobileTemplate.setLevel(76)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(20)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setSocialGroup("woolamander")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(128)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_woolamander.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('woolamander_gatherer', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/woolamander_harrower.py b/scripts/mobiles/yavin4/woolamander_harrower.py
new file mode 100644
index 00000000..55268859
--- /dev/null
+++ b/scripts/mobiles/yavin4/woolamander_harrower.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('woolamander_harrower')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(40)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(40)
+ mobileTemplate.setSocialGroup("woolamander")
+ mobileTemplate.setAssistRange(40)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_woolamander_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('woolamander_harrower', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/woolamander_harvester.py b/scripts/mobiles/yavin4/woolamander_harvester.py
new file mode 100644
index 00000000..d2f50f61
--- /dev/null
+++ b/scripts/mobiles/yavin4/woolamander_harvester.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('woolamander_harvester')
+ mobileTemplate.setLevel(77)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(False)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(20)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setSocialGroup("woolamander")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_woolamander.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('woolamander_harvester', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/woolamander_reaper.py b/scripts/mobiles/yavin4/woolamander_reaper.py
new file mode 100644
index 00000000..1fa77bcb
--- /dev/null
+++ b/scripts/mobiles/yavin4/woolamander_reaper.py
@@ -0,0 +1,42 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('woolamander_reaper')
+ mobileTemplate.setLevel(78)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(5)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(6)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setHideType("Wooly Hide")
+ mobileTemplate.setHideAmount(35)
+ mobileTemplate.setBoneType("Mammal Bones")
+ mobileTemplate.setBoneAmount(20)
+ mobileTemplate.setSocialGroup("woolamander")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(False)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_woolamander_hue.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('creatureMeleeAttack')
+ mobileTemplate.setAttacks(attacks)
+
+ core.spawnService.addMobileTemplate('woolamander_reaper', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/mobiles/yavin4/yakasoba.py b/scripts/mobiles/yavin4/yakasoba.py
new file mode 100644
index 00000000..1afffb75
--- /dev/null
+++ b/scripts/mobiles/yavin4/yakasoba.py
@@ -0,0 +1,43 @@
+import sys
+from services.spawn import MobileTemplate
+from services.spawn import WeaponTemplate
+from java.util import Vector
+
+def addTemplate(core):
+ mobileTemplate = MobileTemplate()
+
+ mobileTemplate.setCreatureName('yavin_yakasoba')
+ mobileTemplate.setLevel(68)
+ mobileTemplate.setDifficulty(0)
+ mobileTemplate.setAttackRange(15)
+ mobileTemplate.setAttackSpeed(1.0)
+ mobileTemplate.setWeaponType(1)
+ mobileTemplate.setMinSpawnDistance(4)
+ mobileTemplate.setMaxSpawnDistance(8)
+ mobileTemplate.setDeathblow(True)
+ mobileTemplate.setScale(1)
+ mobileTemplate.setSocialGroup("gracerobber")
+ mobileTemplate.setAssistRange(12)
+ mobileTemplate.setStalker(True)
+ mobileTemplate.setOptionsBitmask(192)
+
+ templates = Vector()
+ templates.add('object/mobile/shared_dressed_yavin_yakasoba.iff')
+ mobileTemplate.setTemplates(templates)
+
+ weaponTemplates = Vector()
+ weapontemplate = WeaponTemplate('object/weapon/melee/sword/shared_sword_01.iff', 1, 1.0)
+ weaponTemplates.add(weapontemplate)
+ mobileTemplate.setWeaponTemplateVector(weaponTemplates)
+
+ attacks = Vector()
+ mobileTemplate.setDefaultAttack('meleeHit')
+ mobileTemplate.setAttacks(attacks)
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 100
+ mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ core.spawnService.addMobileTemplate('yakasoba', mobileTemplate)
+ return
\ No newline at end of file
diff --git a/scripts/object/building/corellia/bank_corellia.py b/scripts/object/building/corellia/bank_corellia.py
index ccad8904..8a96a6ad 100644
--- a/scripts/object/building/corellia/bank_corellia.py
+++ b/scripts/object/building/corellia/bank_corellia.py
@@ -1,4 +1,12 @@
import sys
def setup(core, object):
+
+ objSvc = core.objectService
+
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_bank.iff', 0, 0.5, 4.2, 0, 1)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_bank.iff', 0, 0.5, -4.2, 1, 0)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_bank.iff', 4.2, 0.5, 0.707107, 0.707107, 1)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_bank.iff', -4.2, 0.5, 0, -0.707107, 0.707107)
+
return
\ No newline at end of file
diff --git a/scripts/object/building/corellia/cloning_corellia.py b/scripts/object/building/corellia/cloning_corellia.py
index 487b8163..76288df2 100644
--- a/scripts/object/building/corellia/cloning_corellia.py
+++ b/scripts/object/building/corellia/cloning_corellia.py
@@ -3,12 +3,9 @@ from java.util import Vector
from resources.common import SpawnPoint
def setup(core, object):
- stcSvc = core.staticService
- cell = object.getCellByCellNumber(2)
-
- if cell:
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(1), float(-0.05), float(2.5), float(0), float(1))
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(1), float(-0.05), float(-1.35), float(1), float(0))
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(1), float(-0.05), float(2.5), float(0), float(1), 2)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(1), float(-0.05), float(-1.35), float(1), float(0), 2)
spawnPoints = Vector()
spawnPoints.add(SpawnPoint(-16.6514, -4.29167, -10.4976, 0.709453, 0.704753, 4))
diff --git a/scripts/object/building/corellia/shuttleport_corellia.py b/scripts/object/building/corellia/shuttleport_corellia.py
index ccad8904..5cdd5f87 100644
--- a/scripts/object/building/corellia/shuttleport_corellia.py
+++ b/scripts/object/building/corellia/shuttleport_corellia.py
@@ -1,4 +1,10 @@
import sys
def setup(core, object):
+
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', -13, 0.6, -10, -0.707107, 0.707107)
+ objSvc.createChildObject(object, 'object/creature/npc/theme_park/shared_player_shuttle.iff', 0, 0.6, 0, 1, 0)
+ objSvc.createChildObject(object, 'object/tangible/travel/ticket_collector/shared_ticket_collector.iff', -13, 0.6, 10, -0.707107, 0.707107)
+
return
\ No newline at end of file
diff --git a/scripts/object/building/corellia/starport_corellia.py b/scripts/object/building/corellia/starport_corellia.py
index e71c9121..bfb384c6 100644
--- a/scripts/object/building/corellia/starport_corellia.py
+++ b/scripts/object/building/corellia/starport_corellia.py
@@ -1,15 +1,13 @@
import sys
def setup(core, object):
- stcSvc = core.staticService
- cell = object.getCellByCellNumber(4)
-
- if cell:
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', object.getPlanet().getName(), cell.getObjectID(), float(11.5), float(0.6), float(51.3), float(0.195405), float(-0.980722))
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', object.getPlanet().getName(), cell.getObjectID(), float(3.1), float(0.6), float(49), float(0), float(1))
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', object.getPlanet().getName(), cell.getObjectID(), float(-2.7), float(0.6), float(49), float(0), float(1))
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', object.getPlanet().getName(), cell.getObjectID(), float(-13.2), float(0.6), float(51.3), float(-0.195405), float(-0.980722))
-
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(11.5), float(0.6), float(51.3), float(0.195405), float(-0.980722), 4)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(3.1), float(0.6), float(49), float(0), float(1), 4)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(-2.7), float(0.6), float(49), float(0), float(1), 4)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(-13.2), float(0.6), float(51.3), float(-0.195405), float(-0.980722), 4)
+ objSvc.createChildObject(object, 'object/creature/npc/theme_park/shared_player_transport.iff', 0, 0, 0, 1, 0)
+ objSvc.createChildObject(object, 'object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 10, 0, -10, 0.707107, 0.707107)
core.mapService.addLocation(object.getPlanet(), 'Starport', object.getPosition().x, object.getPosition().z, 15, 0, 0)
return
\ No newline at end of file
diff --git a/scripts/object/building/general/shuttleport_general.py b/scripts/object/building/general/shuttleport_general.py
index ccad8904..9d1219e5 100644
--- a/scripts/object/building/general/shuttleport_general.py
+++ b/scripts/object/building/general/shuttleport_general.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', -13, 0.6, -10, -0.707107, 0.707107)
+ objSvc.createChildObject(object, 'object/creature/npc/theme_park/shared_player_shuttle.iff', 0, 0.6, 0, 1, 0)
+ objSvc.createChildObject(object, 'object/tangible/travel/ticket_collector/shared_ticket_collector.iff', -13, 0.6, 10, -0.707107, 0.707107)
return
\ No newline at end of file
diff --git a/scripts/object/building/military/outpost_cloning_facility.py b/scripts/object/building/military/outpost_cloning_facility.py
index 781c25a2..e9fd684a 100644
--- a/scripts/object/building/military/outpost_cloning_facility.py
+++ b/scripts/object/building/military/outpost_cloning_facility.py
@@ -3,14 +3,11 @@ from java.util import Vector
from resources.common import SpawnPoint
def setup(core, object):
- stcSvc = core.staticService
- cell = object.getCellByCellNumber(3)
-
- if cell:
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(0.0387871), float(0.125265), float(-6), float(-0.0595427), float(0.998226))
-
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(0.04), float(0.16), float(-6), float(-0.06), float(0.99), 3)
+
spawnPoints = Vector()
- spawnPoints.add(SpawnPoint(3.2408, 0.125266, -3.59732, 0.707641, -0.706572, 5))
+ spawnPoints.add(SpawnPoint(3.24, 0.16, -3.60, 0.71, -0.71, 5))
object.setAttachment('spawnPoints', spawnPoints)
diff --git a/scripts/object/building/military/outpost_cloning_facility_s02.py b/scripts/object/building/military/outpost_cloning_facility_s02.py
index 8d5a2475..bcea9348 100644
--- a/scripts/object/building/military/outpost_cloning_facility_s02.py
+++ b/scripts/object/building/military/outpost_cloning_facility_s02.py
@@ -3,16 +3,13 @@ from java.util import Vector
from resources.common import SpawnPoint
def setup(core, object):
- stcSvc = core.staticService
- cell = object.getCellByCellNumber(6)
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(-5.5), float(0.13), float(-3.44), float(0.70), float(0.71), 6)
- if cell:
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(-5.5), float(0.125265), float(-3.43841), float(0.699512), float(0.714621))
-
spawnPoints = Vector()
- spawnPoints.add(SpawnPoint(4.44727, 0.125266, -3.80136, -0.706468, 0.707745, 5))
- spawnPoints.add(SpawnPoint(4.65395, 0.125266, 1.49466, 0.714548, -0.699587, 4))
- spawnPoints.add(SpawnPoint(-3.99569, 0.125266, -3.51553, 0.70407, 0.710131, 6))
+ spawnPoints.add(SpawnPoint(4.45, 0.13, -3.80, -0.71, 0.71, 5))
+ spawnPoints.add(SpawnPoint(4.65, 0.13, 1.50, 0.71, -0.70, 4))
+ spawnPoints.add(SpawnPoint(-3.99, 0.13, -3.52, 0.70, 0.71, 6))
object.setAttachment('spawnPoints', spawnPoints)
diff --git a/scripts/object/building/military/outpost_cloning_facility_s03.py b/scripts/object/building/military/outpost_cloning_facility_s03.py
index 48330e4c..9e7b7d6f 100644
--- a/scripts/object/building/military/outpost_cloning_facility_s03.py
+++ b/scripts/object/building/military/outpost_cloning_facility_s03.py
@@ -3,11 +3,8 @@ from java.util import Vector
from resources.common import SpawnPoint
def setup(core, object):
- stcSvc = core.staticService
- cell = object.getCellByCellNumber(3)
-
- if cell:
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(-0.134662), float(0.125265), float(-5.80915), float(-0.0238176), float(0.998716))
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(-0.134662), float(0.125265), float(-5.80915), float(-0.0238176), float(0.998716), 3)
spawnPoints = Vector()
spawnPoints.add(SpawnPoint(4.42891, 0.125266, -3.717, 0.712528, -0.701643, 5))
diff --git a/scripts/object/building/military/outpost_starport.py b/scripts/object/building/military/outpost_starport.py
index ccad8904..b0e8b915 100644
--- a/scripts/object/building/military/outpost_starport.py
+++ b/scripts/object/building/military/outpost_starport.py
@@ -1,4 +1,10 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/creature/npc/theme_park/shared_player_transport.iff', 0, 7, 0, 0.71, 0.71)
+ objSvc.createChildObject(object, 'object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 1, 0, -10, 0, 1)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(-3.12), float(0.15), float(-17.57), float(0.71), float(-0.71), 1)
+ core.mapService.addLocation(object.getPlanet(), 'Starport', object.getPosition().x, object.getPosition().z, 15, 0, 0)
+ return
+
\ No newline at end of file
diff --git a/scripts/object/building/naboo/bank_naboo.py b/scripts/object/building/naboo/bank_naboo.py
index ccad8904..8a96a6ad 100644
--- a/scripts/object/building/naboo/bank_naboo.py
+++ b/scripts/object/building/naboo/bank_naboo.py
@@ -1,4 +1,12 @@
import sys
def setup(core, object):
+
+ objSvc = core.objectService
+
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_bank.iff', 0, 0.5, 4.2, 0, 1)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_bank.iff', 0, 0.5, -4.2, 1, 0)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_bank.iff', 4.2, 0.5, 0.707107, 0.707107, 1)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_bank.iff', -4.2, 0.5, 0, -0.707107, 0.707107)
+
return
\ No newline at end of file
diff --git a/scripts/object/building/naboo/cloning_facility_naboo.py b/scripts/object/building/naboo/cloning_facility_naboo.py
index 487b8163..91cb87d3 100644
--- a/scripts/object/building/naboo/cloning_facility_naboo.py
+++ b/scripts/object/building/naboo/cloning_facility_naboo.py
@@ -3,21 +3,18 @@ from java.util import Vector
from resources.common import SpawnPoint
def setup(core, object):
- stcSvc = core.staticService
- cell = object.getCellByCellNumber(2)
-
- if cell:
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(1), float(-0.05), float(2.5), float(0), float(1))
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(1), float(-0.05), float(-1.35), float(1), float(0))
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(1), float(-0.05), float(2.5), float(0), float(1), 2)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(1), float(-0.05), float(-1.35), float(1), float(0), 2)
spawnPoints = Vector()
- spawnPoints.add(SpawnPoint(-16.6514, -4.29167, -10.4976, 0.709453, 0.704753, 4))
- spawnPoints.add(SpawnPoint(-16.5965, -4.29167, -14.1652, 0.721346, 0.692575, 4))
- spawnPoints.add(SpawnPoint(16.5771, -4.29167, -14.2091, 0.71195, -0.702231, 4))
- spawnPoints.add(SpawnPoint(16.6876, -4.29167, -10.5391, -0.6972, 0.716877, 4))
- spawnPoints.add(SpawnPoint(6.32992, -4.79167, 0.613332, 0.999992, 0.00405023, 4))
- spawnPoints.add(SpawnPoint(1.58067, -4.79167, 0.582775, 0.989691, 0.0143216, 4))
- spawnPoints.add(SpawnPoint(-2.84125, -4.79167, 0.657588, -0.0356012, 0.999366, 4))
+ spawnPoints.add(SpawnPoint(-16.66, -4.29, -10.50, 0.71, 0.70, 4))
+ spawnPoints.add(SpawnPoint(-16.60, -4.29, -14.17, 0.72, 0.69, 4))
+ spawnPoints.add(SpawnPoint(16.58, -4.29, -14.21, 0.71, -0.70, 4))
+ spawnPoints.add(SpawnPoint(16.69, -4.29, -10.54, -0.70, 0.72, 4))
+ spawnPoints.add(SpawnPoint(6.33, -4.79, 0.61, 0.99, 0.01, 4))
+ spawnPoints.add(SpawnPoint(1.58, -4.79, 0.58, 0.99, 0.01, 4))
+ spawnPoints.add(SpawnPoint(-2.84, -4.79, 0.66, -0.04, 0.99, 4))
object.setAttachment('spawnPoints', spawnPoints)
diff --git a/scripts/object/building/naboo/hangar_naboo_theed.py b/scripts/object/building/naboo/hangar_naboo_theed.py
index ccad8904..79a247e9 100644
--- a/scripts/object/building/naboo/hangar_naboo_theed.py
+++ b/scripts/object/building/naboo/hangar_naboo_theed.py
@@ -1,4 +1,15 @@
import sys
def setup(core, object):
+ objSvc = core.objectService
+
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(-26.94), float(0.75), float(-67.14), float(1), float(0), 3)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(26.94), float(0.75), float(-67.14), float(1), float(0), 4)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(-9.49), float(7.98), float(-45.24), float(0), float(1), 5)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(9.49), float(7.98), float(-45.24), float(0), float(1), 5)
+ objSvc.createChildObject(object, 'object/tangible/travel/ticket_collector/shared_ticket_collector.iff', float(-10), float(7.98), float(10), float(-0.71), float(0.71), 5)
+ objSvc.createChildObject(object, 'object/creature/npc/theme_park/shared_player_transport_theed_hangar.iff', float(0), float(7.98), float(0), float(1), float(1), 5)
+
+ core.mapService.addLocation(object.getPlanet(), 'Starport', object.getPosition().x, object.getPosition().z, 15, 0, 0)
+
return
\ No newline at end of file
diff --git a/scripts/object/building/naboo/rori_restuss_shuttleport.py b/scripts/object/building/naboo/rori_restuss_shuttleport.py
index ccad8904..9d1219e5 100644
--- a/scripts/object/building/naboo/rori_restuss_shuttleport.py
+++ b/scripts/object/building/naboo/rori_restuss_shuttleport.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', -13, 0.6, -10, -0.707107, 0.707107)
+ objSvc.createChildObject(object, 'object/creature/npc/theme_park/shared_player_shuttle.iff', 0, 0.6, 0, 1, 0)
+ objSvc.createChildObject(object, 'object/tangible/travel/ticket_collector/shared_ticket_collector.iff', -13, 0.6, 10, -0.707107, 0.707107)
return
\ No newline at end of file
diff --git a/scripts/object/building/naboo/rori_restuss_starport.py b/scripts/object/building/naboo/rori_restuss_starport.py
index ccad8904..1130afc6 100644
--- a/scripts/object/building/naboo/rori_restuss_starport.py
+++ b/scripts/object/building/naboo/rori_restuss_starport.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/creature/npc/theme_park/shared_player_transport.iff', 0, 7, 0, 0.707107, 0.707107)
+ objSvc.createChildObject(object, 'object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 1, 0, -10, 0, 1)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(-3.12), float(0.14659503), float(-17.57), float(0.707107), float(-0.707107), 1)
return
\ No newline at end of file
diff --git a/scripts/object/building/naboo/shuttleport_naboo.py b/scripts/object/building/naboo/shuttleport_naboo.py
index ccad8904..5cdd5f87 100644
--- a/scripts/object/building/naboo/shuttleport_naboo.py
+++ b/scripts/object/building/naboo/shuttleport_naboo.py
@@ -1,4 +1,10 @@
import sys
def setup(core, object):
+
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', -13, 0.6, -10, -0.707107, 0.707107)
+ objSvc.createChildObject(object, 'object/creature/npc/theme_park/shared_player_shuttle.iff', 0, 0.6, 0, 1, 0)
+ objSvc.createChildObject(object, 'object/tangible/travel/ticket_collector/shared_ticket_collector.iff', -13, 0.6, 10, -0.707107, 0.707107)
+
return
\ No newline at end of file
diff --git a/scripts/object/building/naboo/starport_naboo.py b/scripts/object/building/naboo/starport_naboo.py
index e71c9121..e66e8bf2 100644
--- a/scripts/object/building/naboo/starport_naboo.py
+++ b/scripts/object/building/naboo/starport_naboo.py
@@ -1,15 +1,13 @@
import sys
def setup(core, object):
- stcSvc = core.staticService
- cell = object.getCellByCellNumber(4)
-
- if cell:
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', object.getPlanet().getName(), cell.getObjectID(), float(11.5), float(0.6), float(51.3), float(0.195405), float(-0.980722))
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', object.getPlanet().getName(), cell.getObjectID(), float(3.1), float(0.6), float(49), float(0), float(1))
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', object.getPlanet().getName(), cell.getObjectID(), float(-2.7), float(0.6), float(49), float(0), float(1))
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', object.getPlanet().getName(), cell.getObjectID(), float(-13.2), float(0.6), float(51.3), float(-0.195405), float(-0.980722))
-
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(11.5), float(0.6), float(51.3), float(0.20), float(-0.98), 4)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(3.1), float(0.6), float(49), float(0), float(1), 4)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(-2.7), float(0.6), float(49), float(0), float(1), 4)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(-13.2), float(0.6), float(51.3), float(-0.20), float(-0.98), 4)
+ objSvc.createChildObject(object, 'object/creature/npc/theme_park/shared_player_transport.iff', 0, 0, 0, 1, 0)
+ objSvc.createChildObject(object, 'object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 10, 0, -10, 0.71, 0.71)
core.mapService.addLocation(object.getPlanet(), 'Starport', object.getPosition().x, object.getPosition().z, 15, 0, 0)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/city/cityhall_corellia.py b/scripts/object/building/player/city/cityhall_corellia.py
index ccad8904..6b2cbced 100644
--- a/scripts/object/building/player/city/cityhall_corellia.py
+++ b/scripts/object/building/player/city/cityhall_corellia.py
@@ -1,4 +1,20 @@
import sys
+from engine.resources.scene import Point3D
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -13.7, 3, 9.1, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -17.2, 1.5 , 8, 1, 0 ,4)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
+
+ cityterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_city.iff', Point3D(float(16), float(2), float(-9)), Quaternion(float(1), float(1), float(1), float(0)),5)
+ #cityterminal.setAttachment('housing_parentstruct', object)
+
+ city_vote_terminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_city_vote.iff', Point3D(float(0), float(1.85), float(-8.5)), Quaternion(float(1), float(1), float(1), float(0)),3)
+ #cityterminal.setAttachment('housing_parentstruct', object)
+
return
\ No newline at end of file
diff --git a/scripts/object/building/player/city/cityhall_naboo.py b/scripts/object/building/player/city/cityhall_naboo.py
index ccad8904..4e456185 100644
--- a/scripts/object/building/player/city/cityhall_naboo.py
+++ b/scripts/object/building/player/city/cityhall_naboo.py
@@ -1,4 +1,19 @@
import sys
+from engine.resources.scene import Point3D
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -13.7, 3, 9.1, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -17.2, 1.5 , 8, 1, 0 ,4)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
+ cityterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_city.iff', Point3D(float(16), float(2), float(-9)), Quaternion(float(1), float(1), float(1), float(0)),5)
+ #cityterminal.setAttachment('housing_parentstruct', object)
+
+ city_vote_terminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_city_vote.iff', Point3D(float(0), float(1.85), float(-8.5)), Quaternion(float(1), float(1), float(1), float(0)),3)
+ #cityterminal.setAttachment('housing_parentstruct', object)
+
return
\ No newline at end of file
diff --git a/scripts/object/building/player/city/cityhall_tatooine.py b/scripts/object/building/player/city/cityhall_tatooine.py
index ccad8904..6b2cbced 100644
--- a/scripts/object/building/player/city/cityhall_tatooine.py
+++ b/scripts/object/building/player/city/cityhall_tatooine.py
@@ -1,4 +1,20 @@
import sys
+from engine.resources.scene import Point3D
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -13.7, 3, 9.1, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -17.2, 1.5 , 8, 1, 0 ,4)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
+
+ cityterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_city.iff', Point3D(float(16), float(2), float(-9)), Quaternion(float(1), float(1), float(1), float(0)),5)
+ #cityterminal.setAttachment('housing_parentstruct', object)
+
+ city_vote_terminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_city_vote.iff', Point3D(float(0), float(1.85), float(-8.5)), Quaternion(float(1), float(1), float(1), float(0)),3)
+ #cityterminal.setAttachment('housing_parentstruct', object)
+
return
\ No newline at end of file
diff --git a/scripts/object/building/player/city/garden_tatooine_sml_01.py b/scripts/object/building/player/city/garden_tatooine_sml_01.py
index ccad8904..287ca8f0 100644
--- a/scripts/object/building/player/city/garden_tatooine_sml_01.py
+++ b/scripts/object/building/player/city/garden_tatooine_sml_01.py
@@ -1,4 +1,14 @@
import sys
+from engine.resources.scene import Point3D
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -13.7, 3, 9.1, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -17.2, 1.5 , 8, 1, 0 ,4)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
+
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_guildhall_corellia_style_01.py b/scripts/object/building/player/player_guildhall_corellia_style_01.py
index ccad8904..8e623ae0 100644
--- a/scripts/object/building/player/player_guildhall_corellia_style_01.py
+++ b/scripts/object/building/player/player_guildhall_corellia_style_01.py
@@ -1,4 +1,13 @@
import sys
+from engine.resources.scene import Point3D
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 6,3, 18.4, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', Point3D(float(18.9), float(2.5), float(10)), Quaternion(float(1), float(1), float(1), float(0)),7)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_guildhall_generic_style_01.py b/scripts/object/building/player/player_guildhall_generic_style_01.py
index ccad8904..8e623ae0 100644
--- a/scripts/object/building/player/player_guildhall_generic_style_01.py
+++ b/scripts/object/building/player/player_guildhall_generic_style_01.py
@@ -1,4 +1,13 @@
import sys
+from engine.resources.scene import Point3D
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 6,3, 18.4, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', Point3D(float(18.9), float(2.5), float(10)), Quaternion(float(1), float(1), float(1), float(0)),7)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_guildhall_naboo_style_01.py b/scripts/object/building/player/player_guildhall_naboo_style_01.py
index ccad8904..8e623ae0 100644
--- a/scripts/object/building/player/player_guildhall_naboo_style_01.py
+++ b/scripts/object/building/player/player_guildhall_naboo_style_01.py
@@ -1,4 +1,13 @@
import sys
+from engine.resources.scene import Point3D
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 6,3, 18.4, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', Point3D(float(18.9), float(2.5), float(10)), Quaternion(float(1), float(1), float(1), float(0)),7)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_guildhall_tatooine_style_01.py b/scripts/object/building/player/player_guildhall_tatooine_style_01.py
index ccad8904..8e623ae0 100644
--- a/scripts/object/building/player/player_guildhall_tatooine_style_01.py
+++ b/scripts/object/building/player/player_guildhall_tatooine_style_01.py
@@ -1,4 +1,13 @@
import sys
+from engine.resources.scene import Point3D
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 6,3, 18.4, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', Point3D(float(18.9), float(2.5), float(10)), Quaternion(float(1), float(1), float(1), float(0)),7)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_guildhall_tatooine_style_02.py b/scripts/object/building/player/player_guildhall_tatooine_style_02.py
index ccad8904..53903ad4 100644
--- a/scripts/object/building/player/player_guildhall_tatooine_style_02.py
+++ b/scripts/object/building/player/player_guildhall_tatooine_style_02.py
@@ -1,4 +1,13 @@
import sys
+from engine.resources.scene import Point3D
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 5.5,4, 12.7, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', Point3D(float(4.0), float(2.2), float(9)), Quaternion(float(0), float(0), float(0), float(0)),1)
+ #structureterminal.setAttachment('radial_filename', 'structure/structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_atat.py b/scripts/object/building/player/player_house_atat.py
index ccad8904..030485f9 100644
--- a/scripts/object/building/player/player_house_atat.py
+++ b/scripts/object/building/player/player_house_atat.py
@@ -1,4 +1,12 @@
import sys
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -3.8, 5.86, 15.1, 0, 1, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 4.4, 18.5, 4.5, 0.707108, -0.707108, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_corellia_large_style_01.py b/scripts/object/building/player/player_house_corellia_large_style_01.py
index ccad8904..128a3e4b 100644
--- a/scripts/object/building/player/player_house_corellia_large_style_01.py
+++ b/scripts/object/building/player/player_house_corellia_large_style_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 6, 3, 13.4, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 14.9, 4.5, 3.5, 0.707108, -0.707108, 3)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_corellia_large_style_02.py b/scripts/object/building/player/player_house_corellia_large_style_02.py
index ccad8904..257e2444 100644
--- a/scripts/object/building/player/player_house_corellia_large_style_02.py
+++ b/scripts/object/building/player/player_house_corellia_large_style_02.py
@@ -1,4 +1,12 @@
import sys
+
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -13.7, 3, 9.1, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -10.5, 0.7, 4.5, 0.707108, -0.707108, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_corellia_medium_style_01.py b/scripts/object/building/player/player_house_corellia_medium_style_01.py
index ccad8904..26bf70af 100644
--- a/scripts/object/building/player/player_house_corellia_medium_style_01.py
+++ b/scripts/object/building/player/player_house_corellia_medium_style_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 5.3, 2.26, 7.7, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 10.6, 0.5, 3.5, 0.707108, -0.707108, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_corellia_medium_style_02.py b/scripts/object/building/player/player_house_corellia_medium_style_02.py
index ccad8904..26bf70af 100644
--- a/scripts/object/building/player/player_house_corellia_medium_style_02.py
+++ b/scripts/object/building/player/player_house_corellia_medium_style_02.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 5.3, 2.26, 7.7, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 10.6, 0.5, 3.5, 0.707108, -0.707108, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_corellia_small_style_01.py b/scripts/object/building/player/player_house_corellia_small_style_01.py
index ccad8904..6e0ae61d 100644
--- a/scripts/object/building/player/player_house_corellia_small_style_01.py
+++ b/scripts/object/building/player/player_house_corellia_small_style_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -7.39, 2.36, 2, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -5, 0.74, -1.81, 0.707107, -0.707107, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_corellia_small_style_01_floorplan_02.py b/scripts/object/building/player/player_house_corellia_small_style_01_floorplan_02.py
index ccad8904..6e0ae61d 100644
--- a/scripts/object/building/player/player_house_corellia_small_style_01_floorplan_02.py
+++ b/scripts/object/building/player/player_house_corellia_small_style_01_floorplan_02.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -7.39, 2.36, 2, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -5, 0.74, -1.81, 0.707107, -0.707107, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_corellia_small_style_02.py b/scripts/object/building/player/player_house_corellia_small_style_02.py
index ccad8904..d301f713 100644
--- a/scripts/object/building/player/player_house_corellia_small_style_02.py
+++ b/scripts/object/building/player/player_house_corellia_small_style_02.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -1.9, 2.86, 8.35, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 6.5, 0.5, -3.8, 0.707108, -0.707108, 3)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_corellia_small_style_02_floorplan_02.py b/scripts/object/building/player/player_house_corellia_small_style_02_floorplan_02.py
index ccad8904..faba7813 100644
--- a/scripts/object/building/player/player_house_corellia_small_style_02_floorplan_02.py
+++ b/scripts/object/building/player/player_house_corellia_small_style_02_floorplan_02.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -1.9, 2.86, 8.35, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 6.5, 0.5, -3.8, 0.707108, -0.707108, 2)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_generic_large_style_01.py b/scripts/object/building/player/player_house_generic_large_style_01.py
index ccad8904..128a3e4b 100644
--- a/scripts/object/building/player/player_house_generic_large_style_01.py
+++ b/scripts/object/building/player/player_house_generic_large_style_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 6, 3, 13.4, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 14.9, 4.5, 3.5, 0.707108, -0.707108, 3)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_generic_large_style_02.py b/scripts/object/building/player/player_house_generic_large_style_02.py
index ccad8904..257e2444 100644
--- a/scripts/object/building/player/player_house_generic_large_style_02.py
+++ b/scripts/object/building/player/player_house_generic_large_style_02.py
@@ -1,4 +1,12 @@
import sys
+
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -13.7, 3, 9.1, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -10.5, 0.7, 4.5, 0.707108, -0.707108, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_generic_large_window_s01.py b/scripts/object/building/player/player_house_generic_large_window_s01.py
index ccad8904..cda43b48 100644
--- a/scripts/object/building/player/player_house_generic_large_window_s01.py
+++ b/scripts/object/building/player/player_house_generic_large_window_s01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -13.7, 3, 9.1, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -10.5, 0.7, 4.5, 0.707108, -0.707108, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_generic_large_window_s02.py b/scripts/object/building/player/player_house_generic_large_window_s02.py
index ccad8904..fb7db369 100644
--- a/scripts/object/building/player/player_house_generic_large_window_s02.py
+++ b/scripts/object/building/player/player_house_generic_large_window_s02.py
@@ -1,4 +1,14 @@
import sys
+from engine.resources.scene import Point3D
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', Point3D(float(10.4), float(3), float(-11)), Quaternion(float(0), float(0), float(0), float(0)), -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ #structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -8.5, 0.7, 8.5, 0.707108, -0.707108, 1)
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', Point3D(float(8.6), float(0.5), float(2.5)), Quaternion(float(0), float(0), float(1), float(0)),1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal').
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_generic_medium_style_01.py b/scripts/object/building/player/player_house_generic_medium_style_01.py
index ccad8904..26bf70af 100644
--- a/scripts/object/building/player/player_house_generic_medium_style_01.py
+++ b/scripts/object/building/player/player_house_generic_medium_style_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 5.3, 2.26, 7.7, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 10.6, 0.5, 3.5, 0.707108, -0.707108, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_generic_medium_style_02.py b/scripts/object/building/player/player_house_generic_medium_style_02.py
index ccad8904..26bf70af 100644
--- a/scripts/object/building/player/player_house_generic_medium_style_02.py
+++ b/scripts/object/building/player/player_house_generic_medium_style_02.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 5.3, 2.26, 7.7, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 10.6, 0.5, 3.5, 0.707108, -0.707108, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_generic_medium_windowed.py b/scripts/object/building/player/player_house_generic_medium_windowed.py
index ccad8904..175f5b8e 100644
--- a/scripts/object/building/player/player_house_generic_medium_windowed.py
+++ b/scripts/object/building/player/player_house_generic_medium_windowed.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 5.5, 2.26, 7.8, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 10.7, 0.5, 3.5, 0.707108, -0.707108, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_generic_medium_windowed_s02.py b/scripts/object/building/player/player_house_generic_medium_windowed_s02.py
index ccad8904..35ddb590 100644
--- a/scripts/object/building/player/player_house_generic_medium_windowed_s02.py
+++ b/scripts/object/building/player/player_house_generic_medium_windowed_s02.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 5.5, 2.26, 7.8, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 10.7, 0.5, 2.8, 0.707108, -0.707108, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_generic_small_style_01.py b/scripts/object/building/player/player_house_generic_small_style_01.py
index ccad8904..6e0ae61d 100644
--- a/scripts/object/building/player/player_house_generic_small_style_01.py
+++ b/scripts/object/building/player/player_house_generic_small_style_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -7.39, 2.36, 2, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -5, 0.74, -1.81, 0.707107, -0.707107, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_generic_small_style_01_floorplan_02.py b/scripts/object/building/player/player_house_generic_small_style_01_floorplan_02.py
index ccad8904..6e0ae61d 100644
--- a/scripts/object/building/player/player_house_generic_small_style_01_floorplan_02.py
+++ b/scripts/object/building/player/player_house_generic_small_style_01_floorplan_02.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -7.39, 2.36, 2, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -5, 0.74, -1.81, 0.707107, -0.707107, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_generic_small_style_02.py b/scripts/object/building/player/player_house_generic_small_style_02.py
index ccad8904..d301f713 100644
--- a/scripts/object/building/player/player_house_generic_small_style_02.py
+++ b/scripts/object/building/player/player_house_generic_small_style_02.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -1.9, 2.86, 8.35, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 6.5, 0.5, -3.8, 0.707108, -0.707108, 3)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_generic_small_style_02_floorplan_02.py b/scripts/object/building/player/player_house_generic_small_style_02_floorplan_02.py
index ccad8904..faba7813 100644
--- a/scripts/object/building/player/player_house_generic_small_style_02_floorplan_02.py
+++ b/scripts/object/building/player/player_house_generic_small_style_02_floorplan_02.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -1.9, 2.86, 8.35, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 6.5, 0.5, -3.8, 0.707108, -0.707108, 2)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_generic_small_window_style_03.py b/scripts/object/building/player/player_house_generic_small_window_style_03.py
index ccad8904..06b43e10 100644
--- a/scripts/object/building/player/player_house_generic_small_window_style_03.py
+++ b/scripts/object/building/player/player_house_generic_small_window_style_03.py
@@ -1,4 +1,12 @@
import sys
+
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -6.6, 2.36, 6.3, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 7, 0.74, -1.81, 0.707107, -0.707107, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_generic_small_windowed.py b/scripts/object/building/player/player_house_generic_small_windowed.py
index ccad8904..6e0ae61d 100644
--- a/scripts/object/building/player/player_house_generic_small_windowed.py
+++ b/scripts/object/building/player/player_house_generic_small_windowed.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -7.39, 2.36, 2, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -5, 0.74, -1.81, 0.707107, -0.707107, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_hangar.py b/scripts/object/building/player/player_house_hangar.py
index ccad8904..a3c2e750 100644
--- a/scripts/object/building/player/player_house_hangar.py
+++ b/scripts/object/building/player/player_house_hangar.py
@@ -1,4 +1,12 @@
import sys
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -9.2, 2.86, 0.8, 1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 9.0, 0.7, -2, 0.707108, -0.707108, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_jabbas_sail_barge.py b/scripts/object/building/player/player_house_jabbas_sail_barge.py
index ccad8904..354beadc 100644
--- a/scripts/object/building/player/player_house_jabbas_sail_barge.py
+++ b/scripts/object/building/player/player_house_jabbas_sail_barge.py
@@ -1,4 +1,12 @@
import sys
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 0, 2.86, -3.5, 0, 1, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 9.0, 0.7, -2, 0.707108, -0.707108, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_jedi_meditation_room.py b/scripts/object/building/player/player_house_jedi_meditation_room.py
index ccad8904..b15dd1a4 100644
--- a/scripts/object/building/player/player_house_jedi_meditation_room.py
+++ b/scripts/object/building/player/player_house_jedi_meditation_room.py
@@ -1,4 +1,12 @@
import sys
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 3, 2.86, 5.7, 1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 8.2, 0.7, -1.0, 0.707108, -0.707108, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_mustafar_lg.py b/scripts/object/building/player/player_house_mustafar_lg.py
index ccad8904..c768c102 100644
--- a/scripts/object/building/player/player_house_mustafar_lg.py
+++ b/scripts/object/building/player/player_house_mustafar_lg.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 1.5, 2.86, 13.0, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -4.1, 0.55, 6.6, 0.714 ,0.714, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_naboo_large_style_01.py b/scripts/object/building/player/player_house_naboo_large_style_01.py
index ccad8904..7a05615e 100644
--- a/scripts/object/building/player/player_house_naboo_large_style_01.py
+++ b/scripts/object/building/player/player_house_naboo_large_style_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -7, 3, -15.5, 0, 1, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 14.8, 4.5, -1.8, 0.707108, -0.707108, 2)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_naboo_medium_style_01.py b/scripts/object/building/player/player_house_naboo_medium_style_01.py
index ccad8904..fd60d18b 100644
--- a/scripts/object/building/player/player_house_naboo_medium_style_01.py
+++ b/scripts/object/building/player/player_house_naboo_medium_style_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -2.2, 3, -11.5, 1, 1, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 9.8, 0.7, -10.4, 0, 1, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_naboo_small_style_01.py b/scripts/object/building/player/player_house_naboo_small_style_01.py
index ccad8904..cacc9a2a 100644
--- a/scripts/object/building/player/player_house_naboo_small_style_01.py
+++ b/scripts/object/building/player/player_house_naboo_small_style_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -1.7, 3, -8.2, 0, 1, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 0, 0.7, 6.2, 1, 0, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_naboo_small_style_02.py b/scripts/object/building/player/player_house_naboo_small_style_02.py
index ccad8904..90382dc1 100644
--- a/scripts/object/building/player/player_house_naboo_small_style_02.py
+++ b/scripts/object/building/player/player_house_naboo_small_style_02.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 8.4, 3, 7.2, 0.2, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 0.4, 0.5, 6.2, 1, 0, 2)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_naboo_small_window_style_01.py b/scripts/object/building/player/player_house_naboo_small_window_style_01.py
index ccad8904..cacc9a2a 100644
--- a/scripts/object/building/player/player_house_naboo_small_window_style_01.py
+++ b/scripts/object/building/player/player_house_naboo_small_window_style_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -1.7, 3, -8.2, 0, 1, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 0, 0.7, 6.2, 1, 0, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_sandcrawler.py b/scripts/object/building/player/player_house_sandcrawler.py
index ccad8904..3d2f2529 100644
--- a/scripts/object/building/player/player_house_sandcrawler.py
+++ b/scripts/object/building/player/player_house_sandcrawler.py
@@ -1,4 +1,12 @@
import sys
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -8.75, 3.86, 1, 0.5, 0.5, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 6, 3.5, 0.7, 0.707108, -0.707108, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_sith_meditation_room.py b/scripts/object/building/player/player_house_sith_meditation_room.py
index ccad8904..fc3b32ac 100644
--- a/scripts/object/building/player/player_house_sith_meditation_room.py
+++ b/scripts/object/building/player/player_house_sith_meditation_room.py
@@ -1,4 +1,12 @@
import sys
+from engine.resources.scene import Quaternion
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 3, 2.86, 5.7, 1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 4.2, 0.7, 2, 0.707108, -0.707108, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_tatooine_large_style_01.py b/scripts/object/building/player/player_house_tatooine_large_style_01.py
index ccad8904..89f9d082 100644
--- a/scripts/object/building/player/player_house_tatooine_large_style_01.py
+++ b/scripts/object/building/player/player_house_tatooine_large_style_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -3, 3, 15.8, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 9, 0.5, 12, 1, 0, 2)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_tatooine_medium_style_01.py b/scripts/object/building/player/player_house_tatooine_medium_style_01.py
index ccad8904..3b5cb8e9 100644
--- a/scripts/object/building/player/player_house_tatooine_medium_style_01.py
+++ b/scripts/object/building/player/player_house_tatooine_medium_style_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 4.3, 2.26, 12.5, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', 4, 0.5, 6.5, 1, 0, 2)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_tatooine_small_style_01.py b/scripts/object/building/player/player_house_tatooine_small_style_01.py
index ccad8904..2c07f46e 100644
--- a/scripts/object/building/player/player_house_tatooine_small_style_01.py
+++ b/scripts/object/building/player/player_house_tatooine_small_style_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -1.7, 3, 7.9, 1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -6, 0.7, 6.2, 1, 0, 2)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_tatooine_small_style_02.py b/scripts/object/building/player/player_house_tatooine_small_style_02.py
index ccad8904..f4846b69 100644
--- a/scripts/object/building/player/player_house_tatooine_small_style_02.py
+++ b/scripts/object/building/player/player_house_tatooine_small_style_02.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', 4, 3, 7.6, 1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -6, 0.7, 6.2, 1, 0, 2)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_tatooine_small_window_style_01.py b/scripts/object/building/player/player_house_tatooine_small_window_style_01.py
index ccad8904..2c07f46e 100644
--- a/scripts/object/building/player/player_house_tatooine_small_window_style_01.py
+++ b/scripts/object/building/player/player_house_tatooine_small_window_style_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -1.7, 3, 7.9, 1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -6, 0.7, 6.2, 1, 0, 2)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_house_tcg_8_bespin_house.py b/scripts/object/building/player/player_house_tcg_8_bespin_house.py
index ccad8904..2c07f46e 100644
--- a/scripts/object/building/player/player_house_tcg_8_bespin_house.py
+++ b/scripts/object/building/player/player_house_tcg_8_bespin_house.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/player/shared_house_address.iff', -1.7, 3, 7.9, 1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -6, 0.7, 6.2, 1, 0, 2)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_merchant_tent_style_01.py b/scripts/object/building/player/player_merchant_tent_style_01.py
index ccad8904..4f29b4f2 100644
--- a/scripts/object/building/player/player_merchant_tent_style_01.py
+++ b/scripts/object/building/player/player_merchant_tent_style_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/shared_streetsign_upright_style_01.iff', 3.5, -0.3, 3.5, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -3.4, 0.5, 0, 0.7, 0.7, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_merchant_tent_style_02.py b/scripts/object/building/player/player_merchant_tent_style_02.py
index ccad8904..4f29b4f2 100644
--- a/scripts/object/building/player/player_merchant_tent_style_02.py
+++ b/scripts/object/building/player/player_merchant_tent_style_02.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/shared_streetsign_upright_style_01.iff', 3.5, -0.3, 3.5, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -3.4, 0.5, 0, 0.7, 0.7, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/player/player_merchant_tent_style_03.py b/scripts/object/building/player/player_merchant_tent_style_03.py
index ccad8904..4f29b4f2 100644
--- a/scripts/object/building/player/player_merchant_tent_style_03.py
+++ b/scripts/object/building/player/player_merchant_tent_style_03.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ sign = core.objectService.createChildObject(object, 'object/tangible/sign/shared_streetsign_upright_style_01.iff', 3.5, -0.3, 3.5, -1, 0, -1)
+ print(sign)
+ object.setAttachment("structureSign", sign)
+
+ structureterminal = core.objectService.createChildObject(object, 'object/tangible/terminal/shared_terminal_player_structure.iff', -3.4, 0.5, 0, 0.7, 0.7, 1)
+ #structureterminal.setAttachment('radial_filename', 'structure_management_terminal')
+ structureterminal.setAttachment('housing_parentstruct', object)
return
\ No newline at end of file
diff --git a/scripts/object/building/restuss/restuss_shuttleport.py b/scripts/object/building/restuss/restuss_shuttleport.py
index ccad8904..a3ddedaa 100644
--- a/scripts/object/building/restuss/restuss_shuttleport.py
+++ b/scripts/object/building/restuss/restuss_shuttleport.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+
return
\ No newline at end of file
diff --git a/scripts/object/building/restuss/restuss_starport.py b/scripts/object/building/restuss/restuss_starport.py
index ccad8904..b686025c 100644
--- a/scripts/object/building/restuss/restuss_starport.py
+++ b/scripts/object/building/restuss/restuss_starport.py
@@ -1,4 +1,16 @@
import sys
def setup(core, object):
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/creature/npc/theme_park/shared_player_transport.iff', 0, 7, 0, 0.707107, 0.707107)
+ objSvc.createChildObject(object, 'object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 1, 0, -10, 0, 1)
+
+ cell = object.getCellByCellNumber(1)
+
+ if cell:
+ stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', object.getPlanet().getName(), cell.getObjectID(), float(-3.12), float(0.14659503), float(-17.57), float(0.707107), float(-0.707107))
+
+
return
\ No newline at end of file
diff --git a/scripts/object/building/tatooine/bank_tatooine.py b/scripts/object/building/tatooine/bank_tatooine.py
index ccad8904..8a96a6ad 100644
--- a/scripts/object/building/tatooine/bank_tatooine.py
+++ b/scripts/object/building/tatooine/bank_tatooine.py
@@ -1,4 +1,12 @@
import sys
def setup(core, object):
+
+ objSvc = core.objectService
+
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_bank.iff', 0, 0.5, 4.2, 0, 1)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_bank.iff', 0, 0.5, -4.2, 1, 0)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_bank.iff', 4.2, 0.5, 0.707107, 0.707107, 1)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_bank.iff', -4.2, 0.5, 0, -0.707107, 0.707107)
+
return
\ No newline at end of file
diff --git a/scripts/object/building/tatooine/cloning_facility_tatooine.py b/scripts/object/building/tatooine/cloning_facility_tatooine.py
index 7673e657..bc7b58d6 100644
--- a/scripts/object/building/tatooine/cloning_facility_tatooine.py
+++ b/scripts/object/building/tatooine/cloning_facility_tatooine.py
@@ -3,12 +3,9 @@ from java.util import Vector
from resources.common import SpawnPoint
def setup(core, object):
- stcSvc = core.staticService
- cell = object.getCellByCellNumber(2)
-
- if cell:
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(1), float(-0.05), float(2.5), float(0), float(1))
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(1), float(-0.05), float(-1.35), float(1), float(0))
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(1), float(-0.05), float(2.5), float(0), float(1), 2)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(1), float(-0.05), float(-1.35), float(1), float(0), 2)
spawnPoints = Vector()
spawnPoints.add(SpawnPoint(-16.6514, -4.29167, -10.4976, 0.709453, 0.704753, 4))
diff --git a/scripts/object/building/tatooine/cloning_facility_tatooine_small.py b/scripts/object/building/tatooine/cloning_facility_tatooine_small.py
index 2994a68a..73dc07de 100644
--- a/scripts/object/building/tatooine/cloning_facility_tatooine_small.py
+++ b/scripts/object/building/tatooine/cloning_facility_tatooine_small.py
@@ -3,12 +3,9 @@ from java.util import Vector
from resources.common import SpawnPoint
def setup(core, object):
- stcSvc = core.staticService
- cell = object.getCellByCellNumber(10)
-
- if cell:
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_cloning.iff', object.getPlanet().getName(), cell.getObjectID(), float(-0.42), float(-0.38), float(-0.4), float(1), float(0))
-
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_cloning.iff', float(-0.42), float(-0.38), float(-0.4), float(1), float(0), 10)
+
spawnPoints = Vector()
spawnPoints.add(SpawnPoint(0.445015, 0.271775, 1.39199, 0.707038, 0.707176, 9))
diff --git a/scripts/object/building/tatooine/shuttleport_tatooine.py b/scripts/object/building/tatooine/shuttleport_tatooine.py
index c5cf71c2..5a651a1c 100644
--- a/scripts/object/building/tatooine/shuttleport_tatooine.py
+++ b/scripts/object/building/tatooine/shuttleport_tatooine.py
@@ -2,6 +2,11 @@ import sys
def setup(core, object):
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', -13, 0.6, -9, -0.707107, 0.707107)
+ objSvc.createChildObject(object, 'object/creature/npc/theme_park/shared_player_shuttle.iff', 0, 0.6, 0, 1, 0)
+ objSvc.createChildObject(object, 'object/tangible/travel/ticket_collector/shared_ticket_collector.iff', -13, 0.6, 10, -0.707107, 0.707107)
+
core.mapService.addLocation(object.getPlanet(), 'Shuttleport', object.getPosition().x, object.getPosition().z, 14, 0, 0)
return
\ No newline at end of file
diff --git a/scripts/object/building/tatooine/starport_tatooine.py b/scripts/object/building/tatooine/starport_tatooine.py
index 34468ac1..2194e3a2 100644
--- a/scripts/object/building/tatooine/starport_tatooine.py
+++ b/scripts/object/building/tatooine/starport_tatooine.py
@@ -1,14 +1,13 @@
import sys
def setup(core, object):
- stcSvc = core.staticService
- cell = object.getCellByCellNumber(4)
-
- if cell:
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', object.getPlanet().getName(), cell.getObjectID(), float(11.5), float(0.6), float(51.3), float(0.195405), float(-0.980722))
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', object.getPlanet().getName(), cell.getObjectID(), float(3.1), float(0.6), float(49), float(0), float(1))
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', object.getPlanet().getName(), cell.getObjectID(), float(-2.7), float(0.6), float(49), float(0), float(1))
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', object.getPlanet().getName(), cell.getObjectID(), float(-13.2), float(0.6), float(51.3), float(-0.195405), float(-0.980722))
+ objSvc = core.objectService
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(11.5), float(0.6), float(51.3), float(0.195405), float(-0.980722), 4)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(3.1), float(0.6), float(49), float(0), float(1), 4)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(-2.7), float(0.6), float(49), float(0), float(1), 4)
+ objSvc.createChildObject(object, 'object/tangible/terminal/shared_terminal_travel.iff', float(-13.2), float(0.6), float(51.3), float(-0.195405), float(-0.980722), 4)
+ objSvc.createChildObject(object, 'object/creature/npc/theme_park/shared_player_transport.iff', 0, 0, 0, 1, 0)
+ objSvc.createChildObject(object, 'object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 10, 0, -10, 0.707107, 0.707107)
core.mapService.addLocation(object.getPlanet(), 'Starport', object.getPosition().x, object.getPosition().z, 15, 0, 0)
return
\ No newline at end of file
diff --git a/scripts/object/creature/npc/droid/imperial_probot_bounty.py b/scripts/object/creature/npc/droid/imperial_probot_bounty.py
index ccad8904..de71643c 100644
--- a/scripts/object/creature/npc/droid/imperial_probot_bounty.py
+++ b/scripts/object/creature/npc/droid/imperial_probot_bounty.py
@@ -1,4 +1,8 @@
+from resources.datatables import Options
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','missions/bounty_droid_probot')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
return
\ No newline at end of file
diff --git a/scripts/object/creature/npc/theme_park/lambda_shuttle.py b/scripts/object/creature/npc/theme_park/lambda_shuttle.py
index ccad8904..3e8a7cbb 100644
--- a/scripts/object/creature/npc/theme_park/lambda_shuttle.py
+++ b/scripts/object/creature/npc/theme_park/lambda_shuttle.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ #object.setPosture(2)
return
\ No newline at end of file
diff --git a/scripts/object/creature/npc/theme_park/player_shuttle.py b/scripts/object/creature/npc/theme_park/player_shuttle.py
index ccad8904..2fc11f63 100644
--- a/scripts/object/creature/npc/theme_park/player_shuttle.py
+++ b/scripts/object/creature/npc/theme_park/player_shuttle.py
@@ -1,4 +1,14 @@
import sys
def setup(core, object):
+ object.setPosture(0) # land = 0 : away = 2
+ object.setOptionsBitmask(256)
+
+ tp = core.travelService.getNearestTravelPoint(object, 300)
+
+ if tp and tp is not None:
+ tp.setShuttle(object)
+ tp.setShuttleAvailable(True)
+ tp.setShuttleLanding(False)
+ return
return
\ No newline at end of file
diff --git a/scripts/object/creature/npc/theme_park/player_transport.py b/scripts/object/creature/npc/theme_park/player_transport.py
index 3e7b455f..42849403 100644
--- a/scripts/object/creature/npc/theme_park/player_transport.py
+++ b/scripts/object/creature/npc/theme_park/player_transport.py
@@ -2,6 +2,13 @@ import sys
def setup(core, object):
object.setPosture(0) # land = 0 : away = 2
- tp = core.travelService.getNearestTravelPoint(object)
- tp.setShuttle(object)
+ object.setOptionsBitmask(256)
+
+ tp = core.travelService.getNearestTravelPoint(object, 300)
+
+ if tp and tp is not None:
+ tp.setShuttle(object)
+ tp.setShuttleAvailable(True)
+ tp.setShuttleLanding(False)
+ return
return
\ No newline at end of file
diff --git a/scripts/object/creature/npc/theme_park/player_transport_theed_hangar.py b/scripts/object/creature/npc/theme_park/player_transport_theed_hangar.py
index ccad8904..277d62b1 100644
--- a/scripts/object/creature/npc/theme_park/player_transport_theed_hangar.py
+++ b/scripts/object/creature/npc/theme_park/player_transport_theed_hangar.py
@@ -1,4 +1,14 @@
import sys
def setup(core, object):
+ object.setPosture(0) # land = 0 : away = 2
+ object.setOptionsBitmask(256)
+
+ tp = core.travelService.getNearestTravelPoint(object, 500)
+
+ if tp and tp is not None:
+ tp.setShuttle(object)
+ tp.setShuttleAvailable(True)
+ tp.setShuttleLanding(False)
+ return
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/bothan_female.py b/scripts/object/creature/player/bothan_female.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/bothan_female.py
+++ b/scripts/object/creature/player/bothan_female.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/bothan_male.py b/scripts/object/creature/player/bothan_male.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/bothan_male.py
+++ b/scripts/object/creature/player/bothan_male.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/human_female.py b/scripts/object/creature/player/human_female.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/human_female.py
+++ b/scripts/object/creature/player/human_female.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/human_male.py b/scripts/object/creature/player/human_male.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/human_male.py
+++ b/scripts/object/creature/player/human_male.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/ithorian_female.py b/scripts/object/creature/player/ithorian_female.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/ithorian_female.py
+++ b/scripts/object/creature/player/ithorian_female.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/ithorian_male.py b/scripts/object/creature/player/ithorian_male.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/ithorian_male.py
+++ b/scripts/object/creature/player/ithorian_male.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/moncal_female.py b/scripts/object/creature/player/moncal_female.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/moncal_female.py
+++ b/scripts/object/creature/player/moncal_female.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/moncal_male.py b/scripts/object/creature/player/moncal_male.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/moncal_male.py
+++ b/scripts/object/creature/player/moncal_male.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/rodian_female.py b/scripts/object/creature/player/rodian_female.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/rodian_female.py
+++ b/scripts/object/creature/player/rodian_female.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/rodian_male.py b/scripts/object/creature/player/rodian_male.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/rodian_male.py
+++ b/scripts/object/creature/player/rodian_male.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/sullustan_female.py b/scripts/object/creature/player/sullustan_female.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/sullustan_female.py
+++ b/scripts/object/creature/player/sullustan_female.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/sullustan_male.py b/scripts/object/creature/player/sullustan_male.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/sullustan_male.py
+++ b/scripts/object/creature/player/sullustan_male.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/trandoshan_female.py b/scripts/object/creature/player/trandoshan_female.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/trandoshan_female.py
+++ b/scripts/object/creature/player/trandoshan_female.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/trandoshan_male.py b/scripts/object/creature/player/trandoshan_male.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/trandoshan_male.py
+++ b/scripts/object/creature/player/trandoshan_male.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/twilek_female.py b/scripts/object/creature/player/twilek_female.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/twilek_female.py
+++ b/scripts/object/creature/player/twilek_female.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/twilek_male.py b/scripts/object/creature/player/twilek_male.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/twilek_male.py
+++ b/scripts/object/creature/player/twilek_male.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/wookiee_female.py b/scripts/object/creature/player/wookiee_female.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/wookiee_female.py
+++ b/scripts/object/creature/player/wookiee_female.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/wookiee_male.py b/scripts/object/creature/player/wookiee_male.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/wookiee_male.py
+++ b/scripts/object/creature/player/wookiee_male.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/zabrak_female.py b/scripts/object/creature/player/zabrak_female.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/zabrak_female.py
+++ b/scripts/object/creature/player/zabrak_female.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/creature/player/zabrak_male.py b/scripts/object/creature/player/zabrak_male.py
index ccad8904..a77a99e7 100644
--- a/scripts/object/creature/player/zabrak_male.py
+++ b/scripts/object/creature/player/zabrak_male.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/player')
return
\ No newline at end of file
diff --git a/scripts/object/installation/generators/power_generator_fusion_style_1.py b/scripts/object/installation/generators/power_generator_fusion_style_1.py
index ccad8904..3b0b69aa 100644
--- a/scripts/object/installation/generators/power_generator_fusion_style_1.py
+++ b/scripts/object/installation/generators/power_generator_fusion_style_1.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/generator')
+ object.setHarvester_type(5)
+ object.setMaintenanceCost(30)
+ object.setGenerator(1)
return
\ No newline at end of file
diff --git a/scripts/object/installation/generators/power_generator_geothermal_style_1.py b/scripts/object/installation/generators/power_generator_geothermal_style_1.py
index ccad8904..3b0b69aa 100644
--- a/scripts/object/installation/generators/power_generator_geothermal_style_1.py
+++ b/scripts/object/installation/generators/power_generator_geothermal_style_1.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/generator')
+ object.setHarvester_type(5)
+ object.setMaintenanceCost(30)
+ object.setGenerator(1)
return
\ No newline at end of file
diff --git a/scripts/object/installation/generators/power_generator_photo_bio_style_1.py b/scripts/object/installation/generators/power_generator_photo_bio_style_1.py
index ccad8904..3b0b69aa 100644
--- a/scripts/object/installation/generators/power_generator_photo_bio_style_1.py
+++ b/scripts/object/installation/generators/power_generator_photo_bio_style_1.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/generator')
+ object.setHarvester_type(5)
+ object.setMaintenanceCost(30)
+ object.setGenerator(1)
return
\ No newline at end of file
diff --git a/scripts/object/installation/generators/power_generator_solar_style_1.py b/scripts/object/installation/generators/power_generator_solar_style_1.py
index ccad8904..3b0b69aa 100644
--- a/scripts/object/installation/generators/power_generator_solar_style_1.py
+++ b/scripts/object/installation/generators/power_generator_solar_style_1.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/generator')
+ object.setHarvester_type(5)
+ object.setMaintenanceCost(30)
+ object.setGenerator(1)
return
\ No newline at end of file
diff --git a/scripts/object/installation/generators/power_generator_wind_style_1.py b/scripts/object/installation/generators/power_generator_wind_style_1.py
index ccad8904..0c7bc05c 100644
--- a/scripts/object/installation/generators/power_generator_wind_style_1.py
+++ b/scripts/object/installation/generators/power_generator_wind_style_1.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/generator')
+ object.setHarvester_type(5)
+ object.setMaintenanceCost(20)
+ object.setGenerator(1)
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_gas/mining_gas_harvester_style_1.py b/scripts/object/installation/mining_gas/mining_gas_harvester_style_1.py
index ccad8904..6b49d930 100644
--- a/scripts/object/installation/mining_gas/mining_gas_harvester_style_1.py
+++ b/scripts/object/installation/mining_gas/mining_gas_harvester_style_1.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(3)
+ object.setPowerCost(25);
+ object.setMaintenanceCost(16);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_gas/mining_gas_harvester_style_2.py b/scripts/object/installation/mining_gas/mining_gas_harvester_style_2.py
index ccad8904..7a6f2b77 100644
--- a/scripts/object/installation/mining_gas/mining_gas_harvester_style_2.py
+++ b/scripts/object/installation/mining_gas/mining_gas_harvester_style_2.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(3)
+ object.setPowerCost(60);
+ object.setMaintenanceCost(60);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_gas/mining_gas_harvester_style_3.py b/scripts/object/installation/mining_gas/mining_gas_harvester_style_3.py
index ccad8904..36a2c41e 100644
--- a/scripts/object/installation/mining_gas/mining_gas_harvester_style_3.py
+++ b/scripts/object/installation/mining_gas/mining_gas_harvester_style_3.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(3)
+ object.setPowerCost(75);
+ object.setMaintenanceCost(90);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_gas/mining_gas_harvester_style_4.py b/scripts/object/installation/mining_gas/mining_gas_harvester_style_4.py
index ccad8904..93f4bfec 100644
--- a/scripts/object/installation/mining_gas/mining_gas_harvester_style_4.py
+++ b/scripts/object/installation/mining_gas/mining_gas_harvester_style_4.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(3)
+ object.setPowerCost(100);
+ object.setMaintenanceCost(120);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_1.py b/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_1.py
index ccad8904..f8ad23ca 100644
--- a/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_1.py
+++ b/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_1.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(1)
+ object.setPowerCost(25);
+ object.setMaintenanceCost(16);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_2.py b/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_2.py
index ccad8904..346183c1 100644
--- a/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_2.py
+++ b/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_2.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(1)
+ object.setPowerCost(60);
+ object.setMaintenanceCost(60);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_3.py b/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_3.py
index ccad8904..c1ad33db 100644
--- a/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_3.py
+++ b/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_3.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(1)
+ object.setPowerCost(75);
+ object.setMaintenanceCost(90);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_4.py b/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_4.py
index ccad8904..a394e5ce 100644
--- a/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_4.py
+++ b/scripts/object/installation/mining_liquid/mining_liquid_harvester_style_4.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(1)
+ object.setPowerCost(100);
+ object.setMaintenanceCost(120);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester.py b/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester.py
index ccad8904..3905b4c0 100644
--- a/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester.py
+++ b/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(4)
+ object.setPowerCost(25);
+ object.setMaintenanceCost(16);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester_elite.py b/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester_elite.py
index ccad8904..ae69d03d 100644
--- a/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester_elite.py
+++ b/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester_elite.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(4)
+ object.setPowerCost(100);
+ object.setMaintenanceCost(120);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester_heavy.py b/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester_heavy.py
index ccad8904..499bd036 100644
--- a/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester_heavy.py
+++ b/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester_heavy.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(4)
+ object.setPowerCost(75);
+ object.setMaintenanceCost(90);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester_medium.py b/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester_medium.py
index ccad8904..4962e477 100644
--- a/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester_medium.py
+++ b/scripts/object/installation/mining_liquid/mining_liquid_moisture_harvester_medium.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(4)
+ object.setPowerCost(60);
+ object.setMaintenanceCost(60);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_ore/mining_ore_harvester_elite.py b/scripts/object/installation/mining_ore/mining_ore_harvester_elite.py
index ccad8904..daafe847 100644
--- a/scripts/object/installation/mining_ore/mining_ore_harvester_elite.py
+++ b/scripts/object/installation/mining_ore/mining_ore_harvester_elite.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(0)
+ object.setPowerCost(100);
+ object.setMaintenanceCost(120);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_ore/mining_ore_harvester_heavy.py b/scripts/object/installation/mining_ore/mining_ore_harvester_heavy.py
index ccad8904..02cad7c2 100644
--- a/scripts/object/installation/mining_ore/mining_ore_harvester_heavy.py
+++ b/scripts/object/installation/mining_ore/mining_ore_harvester_heavy.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(0)
+ object.setPowerCost(75);
+ object.setMaintenanceCost(90);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_ore/mining_ore_harvester_style_1.py b/scripts/object/installation/mining_ore/mining_ore_harvester_style_1.py
index ccad8904..7a6fdae5 100644
--- a/scripts/object/installation/mining_ore/mining_ore_harvester_style_1.py
+++ b/scripts/object/installation/mining_ore/mining_ore_harvester_style_1.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(0)
+ object.setPowerCost(25);
+ object.setMaintenanceCost(16);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_ore/mining_ore_harvester_style_2.py b/scripts/object/installation/mining_ore/mining_ore_harvester_style_2.py
index ccad8904..76358940 100644
--- a/scripts/object/installation/mining_ore/mining_ore_harvester_style_2.py
+++ b/scripts/object/installation/mining_ore/mining_ore_harvester_style_2.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(0)
+ object.setPowerCost(60);
+ object.setMaintenanceCost(60);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_organic/mining_organic_flora_farm.py b/scripts/object/installation/mining_organic/mining_organic_flora_farm.py
index ccad8904..714ccd97 100644
--- a/scripts/object/installation/mining_organic/mining_organic_flora_farm.py
+++ b/scripts/object/installation/mining_organic/mining_organic_flora_farm.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(2)
+ object.setPowerCost(25);
+ object.setMaintenanceCost(16);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_organic/mining_organic_flora_farm_elite.py b/scripts/object/installation/mining_organic/mining_organic_flora_farm_elite.py
index ccad8904..71580f57 100644
--- a/scripts/object/installation/mining_organic/mining_organic_flora_farm_elite.py
+++ b/scripts/object/installation/mining_organic/mining_organic_flora_farm_elite.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(2)
+ object.setPowerCost(100);
+ object.setMaintenanceCost(120);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_organic/mining_organic_flora_farm_heavy.py b/scripts/object/installation/mining_organic/mining_organic_flora_farm_heavy.py
index ccad8904..dbd32ee3 100644
--- a/scripts/object/installation/mining_organic/mining_organic_flora_farm_heavy.py
+++ b/scripts/object/installation/mining_organic/mining_organic_flora_farm_heavy.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(2)
+ object.setPowerCost(60);
+ object.setMaintenanceCost(60);
return
\ No newline at end of file
diff --git a/scripts/object/installation/mining_organic/mining_organic_flora_farm_medium.py b/scripts/object/installation/mining_organic/mining_organic_flora_farm_medium.py
index ccad8904..dbd32ee3 100644
--- a/scripts/object/installation/mining_organic/mining_organic_flora_farm_medium.py
+++ b/scripts/object/installation/mining_organic/mining_organic_flora_farm_medium.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/harvester')
+ object.setHarvester_type(2)
+ object.setPowerCost(60);
+ object.setMaintenanceCost(60);
return
\ No newline at end of file
diff --git a/scripts/object/intangible/data_item/guild_stone.py b/scripts/object/intangible/data_item/guild_stone.py
index ccad8904..7cf0dd3a 100644
--- a/scripts/object/intangible/data_item/guild_stone.py
+++ b/scripts/object/intangible/data_item/guild_stone.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/guild_access_device')
return
\ No newline at end of file
diff --git a/scripts/object/intangible/vehicle/barc_speeder_pcd.py b/scripts/object/intangible/vehicle/barc_speeder_pcd.py
index ccad8904..e9fa1234 100644
--- a/scripts/object/intangible/vehicle/barc_speeder_pcd.py
+++ b/scripts/object/intangible/vehicle/barc_speeder_pcd.py
@@ -1,4 +1,15 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'vehicle_pcd')
+ return
+
+def use(core, actor, object):
+ if object and actor.getAttachment('activeVehicleID') == None:
+ barc = core.objectService.createObject('object/mobile/vehicle/shared_barc_speeder.iff', 0, actor.getPlanet(), actor.getPosition(), actor.getOrientation())
+
+ barc.setOwnerId(actor.getObjectID())
+ actor.setAttachment('activeVehicleID', barc.getObjectID())
+
+ core.simulationService.add(barc, barc.getPosition().x, barc.getPosition().z, True)
return
\ No newline at end of file
diff --git a/scripts/object/intangible/vehicle/landspeeder_av21_pcd.py b/scripts/object/intangible/vehicle/landspeeder_av21_pcd.py
index ccad8904..d7c3f4a1 100644
--- a/scripts/object/intangible/vehicle/landspeeder_av21_pcd.py
+++ b/scripts/object/intangible/vehicle/landspeeder_av21_pcd.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'datapad/vehicle_pcd')
return
\ No newline at end of file
diff --git a/scripts/object/intangible/vehicle/landspeeder_tantive4_pcd.py b/scripts/object/intangible/vehicle/landspeeder_tantive4_pcd.py
index ccad8904..ff8849f4 100644
--- a/scripts/object/intangible/vehicle/landspeeder_tantive4_pcd.py
+++ b/scripts/object/intangible/vehicle/landspeeder_tantive4_pcd.py
@@ -1,4 +1,15 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'vehicle_pcd')
+ return
+
+def use(core, actor, object):
+ if object and actor.getAttachment('activeVehicleID') == None:
+ tantive4 = core.objectService.createObject('object/mobile/vehicle/shared_landspeeder_tantive4.iff', 0, actor.getPlanet(), actor.getPosition(), actor.getOrientation())
+
+ tantive4.setOwnerId(actor.getObjectID())
+ actor.setAttachment('activeVehicleID', tantive4.getObjectID())
+
+ core.simulationService.add(tantive4, tantive4.getPosition().x, tantive4.getPosition().z, True)
return
\ No newline at end of file
diff --git a/scripts/object/intangible/vehicle/speederbike_swoop_pcd.py b/scripts/object/intangible/vehicle/speederbike_swoop_pcd.py
index ccad8904..d7c3f4a1 100644
--- a/scripts/object/intangible/vehicle/speederbike_swoop_pcd.py
+++ b/scripts/object/intangible/vehicle/speederbike_swoop_pcd.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'datapad/vehicle_pcd')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/21b_surgical_droid.py b/scripts/object/mobile/21b_surgical_droid.py
index ccad8904..bdc8a620 100644
--- a/scripts/object/mobile/21b_surgical_droid.py
+++ b/scripts/object/mobile/21b_surgical_droid.py
@@ -1,4 +1,11 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','medical_cloning_droid')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('surgical_droid')
+ return
+
diff --git a/scripts/object/mobile/3po_protocol_droid_red.py b/scripts/object/mobile/3po_protocol_droid_red.py
index ccad8904..29961558 100644
--- a/scripts/object/mobile/3po_protocol_droid_red.py
+++ b/scripts/object/mobile/3po_protocol_droid_red.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('protocol_droid_3po_red')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/barada.py b/scripts/object/mobile/barada.py
index ccad8904..b5250e70 100644
--- a/scripts/object/mobile/barada.py
+++ b/scripts/object/mobile/barada.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('barada')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/berok_skoff.py b/scripts/object/mobile/berok_skoff.py
index ccad8904..20bf2a45 100644
--- a/scripts/object/mobile/berok_skoff.py
+++ b/scripts/object/mobile/berok_skoff.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('heroic_tusken_major_berok_skoff')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/bib_fortuna.py b/scripts/object/mobile/bib_fortuna.py
index ccad8904..1507ccc4 100644
--- a/scripts/object/mobile/bib_fortuna.py
+++ b/scripts/object/mobile/bib_fortuna.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('bib_fortuna')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/boba_fett.py b/scripts/object/mobile/boba_fett.py
index ccad8904..26c5be1e 100644
--- a/scripts/object/mobile/boba_fett.py
+++ b/scripts/object/mobile/boba_fett.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('boba_fett')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_force_crystal_hunter.py b/scripts/object/mobile/dressed_dark_force_crystal_hunter.py
index ccad8904..c7237ff3 100644
--- a/scripts/object/mobile/dressed_dark_force_crystal_hunter.py
+++ b/scripts/object/mobile/dressed_dark_force_crystal_hunter.py
@@ -1,4 +1,32 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['colorcrystals']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['armor_various','random_loot_rifles']
+ lootPoolChances_4 = [80,20]
+ lootGroupChance_4 = 35
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_elder_male_human_01.py b/scripts/object/mobile/dressed_dark_jedi_elder_male_human_01.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_elder_male_human_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_elder_male_human_01.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_female_human_01.py b/scripts/object/mobile/dressed_dark_jedi_female_human_01.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_female_human_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_female_human_01.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_female_human_02.py b/scripts/object/mobile/dressed_dark_jedi_female_human_02.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_female_human_02.py
+++ b/scripts/object/mobile/dressed_dark_jedi_female_human_02.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_female_human_03.py b/scripts/object/mobile/dressed_dark_jedi_female_human_03.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_female_human_03.py
+++ b/scripts/object/mobile/dressed_dark_jedi_female_human_03.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_female_human_04.py b/scripts/object/mobile/dressed_dark_jedi_female_human_04.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_female_human_04.py
+++ b/scripts/object/mobile/dressed_dark_jedi_female_human_04.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_female_marauder_01.py b/scripts/object/mobile/dressed_dark_jedi_female_marauder_01.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_female_marauder_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_female_marauder_01.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_female_twk_01.py b/scripts/object/mobile/dressed_dark_jedi_female_twk_01.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_female_twk_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_female_twk_01.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_female_twk_02.py b/scripts/object/mobile/dressed_dark_jedi_female_twk_02.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_female_twk_02.py
+++ b/scripts/object/mobile/dressed_dark_jedi_female_twk_02.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_female_twk_03.py b/scripts/object/mobile/dressed_dark_jedi_female_twk_03.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_female_twk_03.py
+++ b/scripts/object/mobile/dressed_dark_jedi_female_twk_03.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_female_zab_01.py b/scripts/object/mobile/dressed_dark_jedi_female_zab_01.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_female_zab_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_female_zab_01.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_female_zab_02.py b/scripts/object/mobile/dressed_dark_jedi_female_zab_02.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_female_zab_02.py
+++ b/scripts/object/mobile/dressed_dark_jedi_female_zab_02.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_female_zab_03.py b/scripts/object/mobile/dressed_dark_jedi_female_zab_03.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_female_zab_03.py
+++ b/scripts/object/mobile/dressed_dark_jedi_female_zab_03.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_human_female_01.py b/scripts/object/mobile/dressed_dark_jedi_human_female_01.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_human_female_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_human_female_01.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_human_male_01.py b/scripts/object/mobile/dressed_dark_jedi_human_male_01.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_human_male_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_human_male_01.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_male_human_01.py b/scripts/object/mobile/dressed_dark_jedi_male_human_01.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_male_human_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_male_human_01.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_male_human_02.py b/scripts/object/mobile/dressed_dark_jedi_male_human_02.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_male_human_02.py
+++ b/scripts/object/mobile/dressed_dark_jedi_male_human_02.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_male_human_03.py b/scripts/object/mobile/dressed_dark_jedi_male_human_03.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_male_human_03.py
+++ b/scripts/object/mobile/dressed_dark_jedi_male_human_03.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_male_human_04.py b/scripts/object/mobile/dressed_dark_jedi_male_human_04.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_male_human_04.py
+++ b/scripts/object/mobile/dressed_dark_jedi_male_human_04.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_male_human_05.py b/scripts/object/mobile/dressed_dark_jedi_male_human_05.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_male_human_05.py
+++ b/scripts/object/mobile/dressed_dark_jedi_male_human_05.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_male_human_06.py b/scripts/object/mobile/dressed_dark_jedi_male_human_06.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_male_human_06.py
+++ b/scripts/object/mobile/dressed_dark_jedi_male_human_06.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_male_marauder_01.py b/scripts/object/mobile/dressed_dark_jedi_male_marauder_01.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_male_marauder_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_male_marauder_01.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_male_twk_01.py b/scripts/object/mobile/dressed_dark_jedi_male_twk_01.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_male_twk_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_male_twk_01.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_male_twk_02.py b/scripts/object/mobile/dressed_dark_jedi_male_twk_02.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_male_twk_02.py
+++ b/scripts/object/mobile/dressed_dark_jedi_male_twk_02.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_male_twk_03.py b/scripts/object/mobile/dressed_dark_jedi_male_twk_03.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_male_twk_03.py
+++ b/scripts/object/mobile/dressed_dark_jedi_male_twk_03.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_male_zab_01.py b/scripts/object/mobile/dressed_dark_jedi_male_zab_01.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_male_zab_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_male_zab_01.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_male_zab_02.py b/scripts/object/mobile/dressed_dark_jedi_male_zab_02.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_male_zab_02.py
+++ b/scripts/object/mobile/dressed_dark_jedi_male_zab_02.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_male_zab_03.py b/scripts/object/mobile/dressed_dark_jedi_male_zab_03.py
index ccad8904..be97678c 100644
--- a/scripts/object/mobile/dressed_dark_jedi_male_zab_03.py
+++ b/scripts/object/mobile/dressed_dark_jedi_male_zab_03.py
@@ -1,4 +1,31 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_female_bith_01.py b/scripts/object/mobile/dressed_dark_jedi_master_female_bith_01.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_female_bith_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_female_bith_01.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_female_bothan_01.py b/scripts/object/mobile/dressed_dark_jedi_master_female_bothan_01.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_female_bothan_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_female_bothan_01.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_female_chiss_01.py b/scripts/object/mobile/dressed_dark_jedi_master_female_chiss_01.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_female_chiss_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_female_chiss_01.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_female_chiss_02.py b/scripts/object/mobile/dressed_dark_jedi_master_female_chiss_02.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_female_chiss_02.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_female_chiss_02.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_female_twk_01.py b/scripts/object/mobile/dressed_dark_jedi_master_female_twk_01.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_female_twk_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_female_twk_01.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_female_twk_02.py b/scripts/object/mobile/dressed_dark_jedi_master_female_twk_02.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_female_twk_02.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_female_twk_02.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_female_zab_01.py b/scripts/object/mobile/dressed_dark_jedi_master_female_zab_01.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_female_zab_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_female_zab_01.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_female_zab_02.py b/scripts/object/mobile/dressed_dark_jedi_master_female_zab_02.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_female_zab_02.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_female_zab_02.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_arcona_01.py b/scripts/object/mobile/dressed_dark_jedi_master_male_arcona_01.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_arcona_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_arcona_01.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_barada_01.py b/scripts/object/mobile/dressed_dark_jedi_master_male_barada_01.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_barada_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_barada_01.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_gotal_01.py b/scripts/object/mobile/dressed_dark_jedi_master_male_gotal_01.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_gotal_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_gotal_01.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_human_01.py b/scripts/object/mobile/dressed_dark_jedi_master_male_human_01.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_human_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_human_01.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_human_02.py b/scripts/object/mobile/dressed_dark_jedi_master_male_human_02.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_human_02.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_human_02.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_human_03.py b/scripts/object/mobile/dressed_dark_jedi_master_male_human_03.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_human_03.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_human_03.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_human_04.py b/scripts/object/mobile/dressed_dark_jedi_master_male_human_04.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_human_04.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_human_04.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_human_05.py b/scripts/object/mobile/dressed_dark_jedi_master_male_human_05.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_human_05.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_human_05.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_human_06.py b/scripts/object/mobile/dressed_dark_jedi_master_male_human_06.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_human_06.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_human_06.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_sul_01.py b/scripts/object/mobile/dressed_dark_jedi_master_male_sul_01.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_sul_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_sul_01.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_twk_01.py b/scripts/object/mobile/dressed_dark_jedi_master_male_twk_01.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_twk_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_twk_01.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_twk_02.py b/scripts/object/mobile/dressed_dark_jedi_master_male_twk_02.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_twk_02.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_twk_02.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_twk_03.py b/scripts/object/mobile/dressed_dark_jedi_master_male_twk_03.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_twk_03.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_twk_03.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_twk_04.py b/scripts/object/mobile/dressed_dark_jedi_master_male_twk_04.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_twk_04.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_twk_04.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_weequay_01.py b/scripts/object/mobile/dressed_dark_jedi_master_male_weequay_01.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_weequay_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_weequay_01.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_zab_01.py b/scripts/object/mobile/dressed_dark_jedi_master_male_zab_01.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_zab_01.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_zab_01.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_jedi_master_male_zab_02.py b/scripts/object/mobile/dressed_dark_jedi_master_male_zab_02.py
index ccad8904..dba8fbeb 100644
--- a/scripts/object/mobile/dressed_dark_jedi_master_male_zab_02.py
+++ b/scripts/object/mobile/dressed_dark_jedi_master_male_zab_02.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['powercrystals_hiq']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 8
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dark_side_savage.py b/scripts/object/mobile/dressed_dark_side_savage.py
index ccad8904..70052ae4 100644
--- a/scripts/object/mobile/dressed_dark_side_savage.py
+++ b/scripts/object/mobile/dressed_dark_side_savage.py
@@ -1,4 +1,21 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['colorcrystals']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_dathomir_nightsister_slave.py b/scripts/object/mobile/dressed_dathomir_nightsister_slave.py
index ccad8904..32ec3471 100644
--- a/scripts/object/mobile/dressed_dathomir_nightsister_slave.py
+++ b/scripts/object/mobile/dressed_dathomir_nightsister_slave.py
@@ -1,4 +1,10 @@
import sys
def setup(core, object):
+
+ lootPoolNames_1 = ['rareloot']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 5
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_force_sensitive_crypt_crawler.py b/scripts/object/mobile/dressed_force_sensitive_crypt_crawler.py
index ccad8904..a96bd6e6 100644
--- a/scripts/object/mobile/dressed_force_sensitive_crypt_crawler.py
+++ b/scripts/object/mobile/dressed_force_sensitive_crypt_crawler.py
@@ -1,4 +1,32 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['colorcrystals']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['armor_various','random_loot_rifles']
+ lootPoolChances_4 = [80,20]
+ lootGroupChance_4 = 35
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['jediholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_force_sensitive_renegade.py b/scripts/object/mobile/dressed_force_sensitive_renegade.py
index ccad8904..a96bd6e6 100644
--- a/scripts/object/mobile/dressed_force_sensitive_renegade.py
+++ b/scripts/object/mobile/dressed_force_sensitive_renegade.py
@@ -1,4 +1,32 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['colorcrystals']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['armor_various','random_loot_rifles']
+ lootPoolChances_4 = [80,20]
+ lootGroupChance_4 = 35
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['jediholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_forsaken_force_drifter.py b/scripts/object/mobile/dressed_forsaken_force_drifter.py
index ccad8904..2c42c975 100644
--- a/scripts/object/mobile/dressed_forsaken_force_drifter.py
+++ b/scripts/object/mobile/dressed_forsaken_force_drifter.py
@@ -1,4 +1,27 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['colorcrystals']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['jediholocrons']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 1
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_fs_junk_dealer.py b/scripts/object/mobile/dressed_fs_junk_dealer.py
index ccad8904..6fed84e5 100644
--- a/scripts/object/mobile/dressed_fs_junk_dealer.py
+++ b/scripts/object/mobile/dressed_fs_junk_dealer.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_gendra.py b/scripts/object/mobile/dressed_gendra.py
index ccad8904..ceee905c 100644
--- a/scripts/object/mobile/dressed_gendra.py
+++ b/scripts/object/mobile/dressed_gendra.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','gendra')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('newbie_gendra')
+ return
diff --git a/scripts/object/mobile/dressed_gran_thug_male_01.py b/scripts/object/mobile/dressed_gran_thug_male_01.py
index ccad8904..6dcda077 100644
--- a/scripts/object/mobile/dressed_gran_thug_male_01.py
+++ b/scripts/object/mobile/dressed_gran_thug_male_01.py
@@ -1,4 +1,11 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('ree_yees')
+ return
+
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_imperial_officer_f.py b/scripts/object/mobile/dressed_imperial_officer_f.py
index ccad8904..52476091 100644
--- a/scripts/object/mobile/dressed_imperial_officer_f.py
+++ b/scripts/object/mobile/dressed_imperial_officer_f.py
@@ -1,4 +1,12 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','imp_recruiter')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('imperial_recruiter')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0)
+ return
diff --git a/scripts/object/mobile/dressed_imperial_officer_m_2.py b/scripts/object/mobile/dressed_imperial_officer_m_2.py
index ccad8904..52476091 100644
--- a/scripts/object/mobile/dressed_imperial_officer_m_2.py
+++ b/scripts/object/mobile/dressed_imperial_officer_m_2.py
@@ -1,4 +1,12 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','imp_recruiter')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('imperial_recruiter')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0)
+ return
diff --git a/scripts/object/mobile/dressed_imperial_officer_m_3.py b/scripts/object/mobile/dressed_imperial_officer_m_3.py
index ccad8904..52476091 100644
--- a/scripts/object/mobile/dressed_imperial_officer_m_3.py
+++ b/scripts/object/mobile/dressed_imperial_officer_m_3.py
@@ -1,4 +1,12 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','imp_recruiter')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('imperial_recruiter')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0)
+ return
diff --git a/scripts/object/mobile/dressed_imperial_officer_m_4.py b/scripts/object/mobile/dressed_imperial_officer_m_4.py
index ccad8904..52476091 100644
--- a/scripts/object/mobile/dressed_imperial_officer_m_4.py
+++ b/scripts/object/mobile/dressed_imperial_officer_m_4.py
@@ -1,4 +1,12 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','imp_recruiter')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('imperial_recruiter')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0)
+ return
diff --git a/scripts/object/mobile/dressed_imperial_officer_m_5.py b/scripts/object/mobile/dressed_imperial_officer_m_5.py
index ccad8904..52476091 100644
--- a/scripts/object/mobile/dressed_imperial_officer_m_5.py
+++ b/scripts/object/mobile/dressed_imperial_officer_m_5.py
@@ -1,4 +1,12 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','imp_recruiter')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('imperial_recruiter')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0)
+ return
diff --git a/scripts/object/mobile/dressed_imperial_officer_m_6.py b/scripts/object/mobile/dressed_imperial_officer_m_6.py
index ccad8904..220d9fd8 100644
--- a/scripts/object/mobile/dressed_imperial_officer_m_6.py
+++ b/scripts/object/mobile/dressed_imperial_officer_m_6.py
@@ -1,4 +1,12 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','imp_recruiter')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('imperial_recruiter')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:imperial', object.getPosition().x, object.getPosition().z, 46, 48, 0)
+ return
diff --git a/scripts/object/mobile/dressed_mayor_mikdanyell_guhrantt.py b/scripts/object/mobile/dressed_mayor_mikdanyell_guhrantt.py
index ccad8904..e8e3da38 100644
--- a/scripts/object/mobile/dressed_mayor_mikdanyell_guhrantt.py
+++ b/scripts/object/mobile/dressed_mayor_mikdanyell_guhrantt.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','mayor_mikdanyel_guhrantt')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('mos_eisley_mayor')
+ return
diff --git a/scripts/object/mobile/dressed_novice_force_mystic.py b/scripts/object/mobile/dressed_novice_force_mystic.py
index ccad8904..a96bd6e6 100644
--- a/scripts/object/mobile/dressed_novice_force_mystic.py
+++ b/scripts/object/mobile/dressed_novice_force_mystic.py
@@ -1,4 +1,32 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['colorcrystals']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['armor_various','random_loot_rifles']
+ lootPoolChances_4 = [80,20]
+ lootGroupChance_4 = 35
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['jediholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_porcellus.py b/scripts/object/mobile/dressed_porcellus.py
index ccad8904..b2884b2c 100644
--- a/scripts/object/mobile/dressed_porcellus.py
+++ b/scripts/object/mobile/dressed_porcellus.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('porcellus')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_rebel_recruiter_human_female_01.py b/scripts/object/mobile/dressed_rebel_recruiter_human_female_01.py
index ccad8904..d4d1de24 100644
--- a/scripts/object/mobile/dressed_rebel_recruiter_human_female_01.py
+++ b/scripts/object/mobile/dressed_rebel_recruiter_human_female_01.py
@@ -1,4 +1,12 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','reb_recruiter')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('rebel_recruiter')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:rebel', object.getPosition().x, object.getPosition().z, 45, 47, 0)
+ return
diff --git a/scripts/object/mobile/dressed_rebel_recruiter_human_female_02.py b/scripts/object/mobile/dressed_rebel_recruiter_human_female_02.py
index ccad8904..4f948254 100644
--- a/scripts/object/mobile/dressed_rebel_recruiter_human_female_02.py
+++ b/scripts/object/mobile/dressed_rebel_recruiter_human_female_02.py
@@ -1,4 +1,13 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','reb_recruiter')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('rebel_recruiter')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:rebel', object.getPosition().x, object.getPosition().z, 45, 47, 0)
+
+ return
diff --git a/scripts/object/mobile/dressed_rebel_recruiter_moncal_male_01.py b/scripts/object/mobile/dressed_rebel_recruiter_moncal_male_01.py
index ccad8904..efad85db 100644
--- a/scripts/object/mobile/dressed_rebel_recruiter_moncal_male_01.py
+++ b/scripts/object/mobile/dressed_rebel_recruiter_moncal_male_01.py
@@ -1,4 +1,13 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','reb_recruiter')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('rebel_recruiter')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:rebel', object.getPosition().x, object.getPosition().z, 45, 47, 0)
+
+ return
diff --git a/scripts/object/mobile/dressed_rebel_recruiter_twilek_female_01.py b/scripts/object/mobile/dressed_rebel_recruiter_twilek_female_01.py
index ccad8904..25c143c9 100644
--- a/scripts/object/mobile/dressed_rebel_recruiter_twilek_female_01.py
+++ b/scripts/object/mobile/dressed_rebel_recruiter_twilek_female_01.py
@@ -1,4 +1,13 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','reb_recruiter')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('rebel_recruiter')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:rebel', object.getPosition().x, object.getPosition().z, 45, 47, 0)
+
+ return
diff --git a/scripts/object/mobile/dressed_scout_trooper_black_black.py b/scripts/object/mobile/dressed_scout_trooper_black_black.py
index ccad8904..7334127c 100644
--- a/scripts/object/mobile/dressed_scout_trooper_black_black.py
+++ b/scripts/object/mobile/dressed_scout_trooper_black_black.py
@@ -1,4 +1,10 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 90
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ return
diff --git a/scripts/object/mobile/dressed_stormtrooper_m.py b/scripts/object/mobile/dressed_stormtrooper_m.py
index ccad8904..e972026a 100644
--- a/scripts/object/mobile/dressed_stormtrooper_m.py
+++ b/scripts/object/mobile/dressed_stormtrooper_m.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 90
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['armor_various','random_loot_rifles']
+ lootPoolChances_2 = [99,1]
+ lootGroupChance_2 = 100
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['Colorcrystals']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 6
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ # just to test
+ lootPoolNames_4 = ['random_stat_jewelry']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 10
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/dressed_tatooine_opening_byxle.py b/scripts/object/mobile/dressed_tatooine_opening_byxle.py
index ccad8904..a9115a52 100644
--- a/scripts/object/mobile/dressed_tatooine_opening_byxle.py
+++ b/scripts/object/mobile/dressed_tatooine_opening_byxle.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','byxle')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('tatooine_opening_byxle')
+ return
diff --git a/scripts/object/mobile/dressed_tatooine_opening_dunir.py b/scripts/object/mobile/dressed_tatooine_opening_dunir.py
index ccad8904..f9d28082 100644
--- a/scripts/object/mobile/dressed_tatooine_opening_dunir.py
+++ b/scripts/object/mobile/dressed_tatooine_opening_dunir.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','durni')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('tatooine_opening_dunir')
+ return
diff --git a/scripts/object/mobile/dressed_tatooine_opening_niko.py b/scripts/object/mobile/dressed_tatooine_opening_niko.py
index ccad8904..bb8c0ab4 100644
--- a/scripts/object/mobile/dressed_tatooine_opening_niko.py
+++ b/scripts/object/mobile/dressed_tatooine_opening_niko.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','niko')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('tatooine_opening_niko')
+ return
diff --git a/scripts/object/mobile/dressed_tatooine_opening_reimos.py b/scripts/object/mobile/dressed_tatooine_opening_reimos.py
index ccad8904..2b2075d4 100644
--- a/scripts/object/mobile/dressed_tatooine_opening_reimos.py
+++ b/scripts/object/mobile/dressed_tatooine_opening_reimos.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','reimos')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('tatooine_opening_reimos')
+ return
diff --git a/scripts/object/mobile/dressed_tatooine_opening_toggi.py b/scripts/object/mobile/dressed_tatooine_opening_toggi.py
index ccad8904..ee3d1ccf 100644
--- a/scripts/object/mobile/dressed_tatooine_opening_toggi.py
+++ b/scripts/object/mobile/dressed_tatooine_opening_toggi.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','toggi')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('tatooine_opening_toggi')
+ return
diff --git a/scripts/object/mobile/dressed_untrained_wielder_of_the_darkside.py b/scripts/object/mobile/dressed_untrained_wielder_of_the_darkside.py
index ccad8904..c7237ff3 100644
--- a/scripts/object/mobile/dressed_untrained_wielder_of_the_darkside.py
+++ b/scripts/object/mobile/dressed_untrained_wielder_of_the_darkside.py
@@ -1,4 +1,32 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['jedi_relic_1']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['colorcrystals']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 12
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['armor_various','random_loot_rifles']
+ lootPoolChances_4 = [80,20]
+ lootGroupChance_4 = 35
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ lootPoolNames_5 = ['sithholocrons']
+ lootPoolChances_5 = [100]
+ lootGroupChance_5 = 1
+ object.addToLootGroups(lootPoolNames_5,lootPoolChances_5,lootGroupChance_5)
+
+
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/droopy_mccool.py b/scripts/object/mobile/droopy_mccool.py
index ccad8904..2574a1f6 100644
--- a/scripts/object/mobile/droopy_mccool.py
+++ b/scripts/object/mobile/droopy_mccool.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('droopy_mccool')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/ephant_mon.py b/scripts/object/mobile/ephant_mon.py
index ccad8904..99f49296 100644
--- a/scripts/object/mobile/ephant_mon.py
+++ b/scripts/object/mobile/ephant_mon.py
@@ -1,4 +1,11 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE | Options.QUEST)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('ephant_mon')
+ return
+
\ No newline at end of file
diff --git a/scripts/object/mobile/ev_9d9.py b/scripts/object/mobile/ev_9d9.py
index ccad8904..28c1c020 100644
--- a/scripts/object/mobile/ev_9d9.py
+++ b/scripts/object/mobile/ev_9d9.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('ev_9d9')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/han_solo.py b/scripts/object/mobile/han_solo.py
index ccad8904..8608e0f6 100644
--- a/scripts/object/mobile/han_solo.py
+++ b/scripts/object/mobile/han_solo.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('han_solo')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/heroic_tusken_kav_golder.py b/scripts/object/mobile/heroic_tusken_kav_golder.py
index ccad8904..9fad2d18 100644
--- a/scripts/object/mobile/heroic_tusken_kav_golder.py
+++ b/scripts/object/mobile/heroic_tusken_kav_golder.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('heroic_tusken_kav_goldor')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/hirce_tharnam.py b/scripts/object/mobile/hirce_tharnam.py
index ccad8904..952e7294 100644
--- a/scripts/object/mobile/hirce_tharnam.py
+++ b/scripts/object/mobile/hirce_tharnam.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('heroic_tusken_hirce_tharnam')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/jabba_the_hutt.py b/scripts/object/mobile/jabba_the_hutt.py
index ccad8904..bc2e1050 100644
--- a/scripts/object/mobile/jabba_the_hutt.py
+++ b/scripts/object/mobile/jabba_the_hutt.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('jabba_the_hutt')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/javran_mu.py b/scripts/object/mobile/javran_mu.py
index ccad8904..d2f6080d 100644
--- a/scripts/object/mobile/javran_mu.py
+++ b/scripts/object/mobile/javran_mu.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('heroic_tusken_javran_mu')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_dealer_f_01.py b/scripts/object/mobile/junk_dealer_f_01.py
index ccad8904..0864b43c 100644
--- a/scripts/object/mobile/junk_dealer_f_01.py
+++ b/scripts/object/mobile/junk_dealer_f_01.py
@@ -1,4 +1,12 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:junkshop', object.getPosition().x, object.getPosition().z, 26, 81, 0)
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_dealer_f_02.py b/scripts/object/mobile/junk_dealer_f_02.py
index ccad8904..f366e0a9 100644
--- a/scripts/object/mobile/junk_dealer_f_02.py
+++ b/scripts/object/mobile/junk_dealer_f_02.py
@@ -1,4 +1,12 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer_smuggler')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:junkshop', object.getPosition().x, object.getPosition().z, 26, 81, 0)
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_dealer_f_03.py b/scripts/object/mobile/junk_dealer_f_03.py
index ccad8904..8de1dd20 100644
--- a/scripts/object/mobile/junk_dealer_f_03.py
+++ b/scripts/object/mobile/junk_dealer_f_03.py
@@ -1,4 +1,12 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer_special')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:junkshop', object.getPosition().x, object.getPosition().z, 26, 81, 0)
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_dealer_m_01.py b/scripts/object/mobile/junk_dealer_m_01.py
index ccad8904..0864b43c 100644
--- a/scripts/object/mobile/junk_dealer_m_01.py
+++ b/scripts/object/mobile/junk_dealer_m_01.py
@@ -1,4 +1,12 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:junkshop', object.getPosition().x, object.getPosition().z, 26, 81, 0)
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_dealer_m_02.py b/scripts/object/mobile/junk_dealer_m_02.py
index ccad8904..f366e0a9 100644
--- a/scripts/object/mobile/junk_dealer_m_02.py
+++ b/scripts/object/mobile/junk_dealer_m_02.py
@@ -1,4 +1,12 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer_smuggler')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:junkshop', object.getPosition().x, object.getPosition().z, 26, 81, 0)
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_dealer_m_03.py b/scripts/object/mobile/junk_dealer_m_03.py
index ccad8904..8de1dd20 100644
--- a/scripts/object/mobile/junk_dealer_m_03.py
+++ b/scripts/object/mobile/junk_dealer_m_03.py
@@ -1,4 +1,12 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer_special')
+
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:junkshop', object.getPosition().x, object.getPosition().z, 26, 81, 0)
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_dender.py b/scripts/object/mobile/junk_dender.py
index ccad8904..9ed1eded 100644
--- a/scripts/object/mobile/junk_dender.py
+++ b/scripts/object/mobile/junk_dender.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer_special')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_lila.py b/scripts/object/mobile/junk_lila.py
index ccad8904..9ed1eded 100644
--- a/scripts/object/mobile/junk_lila.py
+++ b/scripts/object/mobile/junk_lila.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer_special')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_malik.py b/scripts/object/mobile/junk_malik.py
index ccad8904..9ed1eded 100644
--- a/scripts/object/mobile/junk_malik.py
+++ b/scripts/object/mobile/junk_malik.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer_special')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_nado.py b/scripts/object/mobile/junk_nado.py
index ccad8904..9ed1eded 100644
--- a/scripts/object/mobile/junk_nado.py
+++ b/scripts/object/mobile/junk_nado.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer_special')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_nathan.py b/scripts/object/mobile/junk_nathan.py
index ccad8904..9ed1eded 100644
--- a/scripts/object/mobile/junk_nathan.py
+++ b/scripts/object/mobile/junk_nathan.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer_special')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_ollobo.py b/scripts/object/mobile/junk_ollobo.py
index ccad8904..9ed1eded 100644
--- a/scripts/object/mobile/junk_ollobo.py
+++ b/scripts/object/mobile/junk_ollobo.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer_special')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_quich.py b/scripts/object/mobile/junk_quich.py
index ccad8904..9ed1eded 100644
--- a/scripts/object/mobile/junk_quich.py
+++ b/scripts/object/mobile/junk_quich.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer_special')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_reggi.py b/scripts/object/mobile/junk_reggi.py
index ccad8904..9ed1eded 100644
--- a/scripts/object/mobile/junk_reggi.py
+++ b/scripts/object/mobile/junk_reggi.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer_special')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_sheani.py b/scripts/object/mobile/junk_sheani.py
index ccad8904..9ed1eded 100644
--- a/scripts/object/mobile/junk_sheani.py
+++ b/scripts/object/mobile/junk_sheani.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer_special')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/junk_sneg.py b/scripts/object/mobile/junk_sneg.py
index ccad8904..9ed1eded 100644
--- a/scripts/object/mobile/junk_sneg.py
+++ b/scripts/object/mobile/junk_sneg.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('junk_dealer_special')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/krayt_dragon.py b/scripts/object/mobile/krayt_dragon.py
index ccad8904..e023f206 100644
--- a/scripts/object/mobile/krayt_dragon.py
+++ b/scripts/object/mobile/krayt_dragon.py
@@ -1,4 +1,15 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 65
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['kraytpearl_lowq']
+ lootPoolChances_2 = [100]
+ lootGroupChance_2 = 85
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/lifeday_saun_dann.py b/scripts/object/mobile/lifeday_saun_dann.py
index ccad8904..1b75a652 100644
--- a/scripts/object/mobile/lifeday_saun_dann.py
+++ b/scripts/object/mobile/lifeday_saun_dann.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
+ object.setCustomName('Suan Dann')
+ #object.setCurrentAnimation('appearance/animation/all_b_dnc_bowie_loop.ans')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/macy_malo.py b/scripts/object/mobile/macy_malo.py
index ccad8904..a59ed409 100644
--- a/scripts/object/mobile/macy_malo.py
+++ b/scripts/object/mobile/macy_malo.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('heroic_tusken_macy_malo')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/malakili.py b/scripts/object/mobile/malakili.py
index ccad8904..8a73a9fe 100644
--- a/scripts/object/mobile/malakili.py
+++ b/scripts/object/mobile/malakili.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('malakili')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/max_rebo.py b/scripts/object/mobile/max_rebo.py
index ccad8904..697ffb20 100644
--- a/scripts/object/mobile/max_rebo.py
+++ b/scripts/object/mobile/max_rebo.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('max_rebo')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/oola.py b/scripts/object/mobile/oola.py
index ccad8904..6e18f435 100644
--- a/scripts/object/mobile/oola.py
+++ b/scripts/object/mobile/oola.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('oola')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/outbreak_junk_dealer_f_01.py b/scripts/object/mobile/outbreak_junk_dealer_f_01.py
index ccad8904..8d5252a1 100644
--- a/scripts/object/mobile/outbreak_junk_dealer_f_01.py
+++ b/scripts/object/mobile/outbreak_junk_dealer_f_01.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('outbreak_junk_dealer')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/outbreak_junk_dealer_f_02.py b/scripts/object/mobile/outbreak_junk_dealer_f_02.py
index ccad8904..8d5252a1 100644
--- a/scripts/object/mobile/outbreak_junk_dealer_f_02.py
+++ b/scripts/object/mobile/outbreak_junk_dealer_f_02.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('outbreak_junk_dealer')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/outbreak_junk_dealer_m_01.py b/scripts/object/mobile/outbreak_junk_dealer_m_01.py
index ccad8904..8d5252a1 100644
--- a/scripts/object/mobile/outbreak_junk_dealer_m_01.py
+++ b/scripts/object/mobile/outbreak_junk_dealer_m_01.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('outbreak_junk_dealer')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/outbreak_junk_dealer_m_02.py b/scripts/object/mobile/outbreak_junk_dealer_m_02.py
index ccad8904..8d5252a1 100644
--- a/scripts/object/mobile/outbreak_junk_dealer_m_02.py
+++ b/scripts/object/mobile/outbreak_junk_dealer_m_02.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('outbreak_junk_dealer')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/outbreak_junk_dealer_m_03.py b/scripts/object/mobile/outbreak_junk_dealer_m_03.py
index ccad8904..8d5252a1 100644
--- a/scripts/object/mobile/outbreak_junk_dealer_m_03.py
+++ b/scripts/object/mobile/outbreak_junk_dealer_m_03.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('outbreak_junk_dealer')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/porcellus.py b/scripts/object/mobile/porcellus.py
index ccad8904..b2884b2c 100644
--- a/scripts/object/mobile/porcellus.py
+++ b/scripts/object/mobile/porcellus.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('porcellus')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/rancor.py b/scripts/object/mobile/rancor.py
index ccad8904..8d5d1819 100644
--- a/scripts/object/mobile/rancor.py
+++ b/scripts/object/mobile/rancor.py
@@ -1,4 +1,10 @@
import sys
def setup(core, object):
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 90
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
return
\ No newline at end of file
diff --git a/scripts/object/mobile/rancor_static.py b/scripts/object/mobile/rancor_static.py
index ccad8904..37df700c 100644
--- a/scripts/object/mobile/rancor_static.py
+++ b/scripts/object/mobile/rancor_static.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('jabbas_palace_rancor')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/reelo_baruk.py b/scripts/object/mobile/reelo_baruk.py
index ccad8904..b4a616d8 100644
--- a/scripts/object/mobile/reelo_baruk.py
+++ b/scripts/object/mobile/reelo_baruk.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('reelo_baruk')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/respec_seller_f_1.py b/scripts/object/mobile/respec_seller_f_1.py
index ccad8904..1af596e0 100644
--- a/scripts/object/mobile/respec_seller_f_1.py
+++ b/scripts/object/mobile/respec_seller_f_1.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation')
+ object.setAttachment('conversationFile', 'respec')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('respec_seller')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/som/must_junk.py b/scripts/object/mobile/som/must_junk.py
index ccad8904..d33eab84 100644
--- a/scripts/object/mobile/som/must_junk.py
+++ b/scripts/object/mobile/som/must_junk.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/conversation');
+ object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ junkdealer.setStfName('som_mustafarian_junk')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/space_privateer_tier1_tatooine.py b/scripts/object/mobile/space_privateer_tier1_tatooine.py
index ccad8904..b0f81354 100644
--- a/scripts/object/mobile/space_privateer_tier1_tatooine.py
+++ b/scripts/object/mobile/space_privateer_tier1_tatooine.py
@@ -1,4 +1,9 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','imp_recruiter')
+ object.setOptionsBitmask(Options.INVULNERABLE)
+ object.setCustomName('Dravis')
+ return
diff --git a/scripts/object/mobile/space_privateer_tier2_shamdon.py b/scripts/object/mobile/space_privateer_tier2_shamdon.py
index ccad8904..f30504b0 100644
--- a/scripts/object/mobile/space_privateer_tier2_shamdon.py
+++ b/scripts/object/mobile/space_privateer_tier2_shamdon.py
@@ -1,4 +1,9 @@
import sys
+from resources.datatables import Options
def setup(core, object):
- return
\ No newline at end of file
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','imp_recruiter')
+ object.setOptionsBitmask(Options.INVULNERABLE)
+ object.setCustomName('Shamdon Kree ')
+ return
diff --git a/scripts/object/mobile/space_rebel_tier1_tatooine_socuna.py b/scripts/object/mobile/space_rebel_tier1_tatooine_socuna.py
index ccad8904..b2c0f1e5 100644
--- a/scripts/object/mobile/space_rebel_tier1_tatooine_socuna.py
+++ b/scripts/object/mobile/space_rebel_tier1_tatooine_socuna.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('heroic_tusken_da_la_socuna')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/sy_snootles.py b/scripts/object/mobile/sy_snootles.py
index ccad8904..000eafed 100644
--- a/scripts/object/mobile/sy_snootles.py
+++ b/scripts/object/mobile/sy_snootles.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('sy_snootles')
return
\ No newline at end of file
diff --git a/scripts/object/mobile/tusken_raider.py b/scripts/object/mobile/tusken_raider.py
index ccad8904..0fcd5010 100644
--- a/scripts/object/mobile/tusken_raider.py
+++ b/scripts/object/mobile/tusken_raider.py
@@ -1,4 +1,25 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 90
+ object.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+
+ lootPoolNames_2 = ['batons','random_loot_rifles']
+ lootPoolChances_2 = [60,40]
+ lootGroupChance_2 = 20
+ object.addToLootGroups(lootPoolNames_2,lootPoolChances_2,lootGroupChance_2)
+
+ lootPoolNames_3 = ['tusken_raider_clothing']
+ lootPoolChances_3 = [100]
+ lootGroupChance_3 = 10
+ object.addToLootGroups(lootPoolNames_3,lootPoolChances_3,lootGroupChance_3)
+
+ lootPoolNames_4 = ['Colorcrystals']
+ lootPoolChances_4 = [100]
+ lootGroupChance_4 = 6
+ object.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4)
+
+ return
\ No newline at end of file
diff --git a/scripts/object/mobile/vehicle/barc_speeder.py b/scripts/object/mobile/vehicle/barc_speeder.py
index ccad8904..4626c764 100644
--- a/scripts/object/mobile/vehicle/barc_speeder.py
+++ b/scripts/object/mobile/vehicle/barc_speeder.py
@@ -1,4 +1,16 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'vehicle')
+ return
+
+def use(core, actor, object):
+ vehicle = actor.getContainer()
+
+ if vehicle:
+ if vehicle.getObjectID() == object.getObjectID():
+ vehicle.remove(actor)
+ else:
+ vehicle.add(actor)
+
return
\ No newline at end of file
diff --git a/scripts/object/mobile/vehicle/barc_speeder_imperial.py b/scripts/object/mobile/vehicle/barc_speeder_imperial.py
index ccad8904..6093148c 100644
--- a/scripts/object/mobile/vehicle/barc_speeder_imperial.py
+++ b/scripts/object/mobile/vehicle/barc_speeder_imperial.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ core.buffService.addBuffToCreature(object, 'vehicle_pvp_barc_imperial', object)
+ return
+
+def use(core, actor, object):
+ core.buffService.addBuffToCreature(object, 'vehicle_pvp_barc_imperial', object)
return
\ No newline at end of file
diff --git a/scripts/object/mobile/vehicle/barc_speeder_rebel.py b/scripts/object/mobile/vehicle/barc_speeder_rebel.py
index ccad8904..402fab24 100644
--- a/scripts/object/mobile/vehicle/barc_speeder_rebel.py
+++ b/scripts/object/mobile/vehicle/barc_speeder_rebel.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ return
+
+def use(core, actor, object):
+ core.buffService.addBuffToCreature(object, 'vehicle_pvp_barc_rebel', object)
return
\ No newline at end of file
diff --git a/scripts/object/mobile/vehicle/landspeeder_av21.py b/scripts/object/mobile/vehicle/landspeeder_av21.py
index ccad8904..0f6896cd 100644
--- a/scripts/object/mobile/vehicle/landspeeder_av21.py
+++ b/scripts/object/mobile/vehicle/landspeeder_av21.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/vehicle')
+ object.setAttachment('passengers', 0)
return
\ No newline at end of file
diff --git a/scripts/object/mobile/vehicle/landspeeder_tantive4.py b/scripts/object/mobile/vehicle/landspeeder_tantive4.py
index ccad8904..1e2994c6 100644
--- a/scripts/object/mobile/vehicle/landspeeder_tantive4.py
+++ b/scripts/object/mobile/vehicle/landspeeder_tantive4.py
@@ -1,4 +1,20 @@
import sys
+def setup(core, object):
+ object.setAttachment('radial_filename', 'vehicle')
+ return
+
+def use(core, actor, object):
+ vehicle = actor.getContainer()
+
+ if vehicle:
+ if vehicle.getObjectID() == object.getObjectID():
+ vehicle.remove(actor)
+ else:
+ vehicle.add(actor)
+
+ return
+import sys
+
def setup(core, object):
return
\ No newline at end of file
diff --git a/scripts/object/mobile/vehicle/speederbike_swoop.py b/scripts/object/mobile/vehicle/speederbike_swoop.py
index ccad8904..0f6896cd 100644
--- a/scripts/object/mobile/vehicle/speederbike_swoop.py
+++ b/scripts/object/mobile/vehicle/speederbike_swoop.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'creature/vehicle')
+ object.setAttachment('passengers', 0)
return
\ No newline at end of file
diff --git a/scripts/object/mobile/vehicle/walker_at_rt_camo.py b/scripts/object/mobile/vehicle/walker_at_rt_camo.py
index ccad8904..38038e73 100644
--- a/scripts/object/mobile/vehicle/walker_at_rt_camo.py
+++ b/scripts/object/mobile/vehicle/walker_at_rt_camo.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ return
+
+def use(core, actor, object):
+ core.buffService.addBuffToCreature(object, 'vehicle_at_rt', object)
return
\ No newline at end of file
diff --git a/scripts/object/mobile/vehicle/walker_at_rt_reg.py b/scripts/object/mobile/vehicle/walker_at_rt_reg.py
index ccad8904..38038e73 100644
--- a/scripts/object/mobile/vehicle/walker_at_rt_reg.py
+++ b/scripts/object/mobile/vehicle/walker_at_rt_reg.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ return
+
+def use(core, actor, object):
+ core.buffService.addBuffToCreature(object, 'vehicle_at_rt', object)
return
\ No newline at end of file
diff --git a/scripts/object/mobile/watto.py b/scripts/object/mobile/watto.py
index ccad8904..5541ebd8 100644
--- a/scripts/object/mobile/watto.py
+++ b/scripts/object/mobile/watto.py
@@ -1,4 +1,10 @@
import sys
+from resources.datatables import Options
def setup(core, object):
+ #object.setAttachment('radial_filename', 'object/conversation');
+ #object.setAttachment('conversationFile','junk_dealer')
+ object.setOptionsBitmask(Options.CONVERSABLE | Options.INVULNERABLE)
+ object.setStfFilename('mob/creature_names')
+ object.setStfName('heroic_tusken_watto')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/component/weapon/lightsaber/item_krayt_pearl_04_01.py b/scripts/object/tangible/component/weapon/lightsaber/item_krayt_pearl_04_01.py
new file mode 100644
index 00000000..49c8246d
--- /dev/null
+++ b/scripts/object/tangible/component/weapon/lightsaber/item_krayt_pearl_04_01.py
@@ -0,0 +1,6 @@
+import sys
+
+def setup(core, object):
+ object.setStringAttribute('crystal_owner', '\#FFFF00UNTUNED')
+ object.setStringAttribute('quality', 'Poor')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/component/weapon/quest/blaster_power_handler_faux_bowcaster.py b/scripts/object/tangible/component/weapon/quest/blaster_power_handler_faux_bowcaster.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/component/weapon/quest/blaster_power_handler_faux_bowcaster.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/component/weapon/quest/projectile_feed_mechanism_faux_bowcaster.py b/scripts/object/tangible/component/weapon/quest/projectile_feed_mechanism_faux_bowcaster.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/component/weapon/quest/projectile_feed_mechanism_faux_bowcaster.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/component/weapon/quest/projectile_rifle_barrel_faux_bowcaster.py b/scripts/object/tangible/component/weapon/quest/projectile_rifle_barrel_faux_bowcaster.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/component/weapon/quest/projectile_rifle_barrel_faux_bowcaster.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/container/quest/crafting_contract/armor_crate.py b/scripts/object/tangible/container/quest/crafting_contract/armor_crate.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/container/quest/crafting_contract/armor_crate.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/container/quest/crafting_contract/clothing_crate.py b/scripts/object/tangible/container/quest/crafting_contract/clothing_crate.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/container/quest/crafting_contract/clothing_crate.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/container/quest/crafting_contract/droid_crate.py b/scripts/object/tangible/container/quest/crafting_contract/droid_crate.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/container/quest/crafting_contract/droid_crate.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/container/quest/crafting_contract/food_crate.py b/scripts/object/tangible/container/quest/crafting_contract/food_crate.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/container/quest/crafting_contract/food_crate.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/container/quest/crafting_contract/furniture_crate.py b/scripts/object/tangible/container/quest/crafting_contract/furniture_crate.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/container/quest/crafting_contract/furniture_crate.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/container/quest/crafting_contract/generic_crate.py b/scripts/object/tangible/container/quest/crafting_contract/generic_crate.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/container/quest/crafting_contract/generic_crate.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/container/quest/crafting_contract/weapon_crate.py b/scripts/object/tangible/container/quest/crafting_contract/weapon_crate.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/container/quest/crafting_contract/weapon_crate.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/container/quest/hero_of_tatooine/rock_crevice.py b/scripts/object/tangible/container/quest/hero_of_tatooine/rock_crevice.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/container/quest/hero_of_tatooine/rock_crevice.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/city_deed/cityhall_corellia_deed.py b/scripts/object/tangible/deed/city_deed/cityhall_corellia_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/city_deed/cityhall_corellia_deed.py
+++ b/scripts/object/tangible/deed/city_deed/cityhall_corellia_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/city_deed/cityhall_naboo_deed.py b/scripts/object/tangible/deed/city_deed/cityhall_naboo_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/city_deed/cityhall_naboo_deed.py
+++ b/scripts/object/tangible/deed/city_deed/cityhall_naboo_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/city_deed/cityhall_tatooine_deed.py b/scripts/object/tangible/deed/city_deed/cityhall_tatooine_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/city_deed/cityhall_tatooine_deed.py
+++ b/scripts/object/tangible/deed/city_deed/cityhall_tatooine_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/city_deed/garden_tatooine_sml_01_deed.py b/scripts/object/tangible/deed/city_deed/garden_tatooine_sml_01_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/city_deed/garden_tatooine_sml_01_deed.py
+++ b/scripts/object/tangible/deed/city_deed/garden_tatooine_sml_01_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/city_deed/shuttleport_tatooine_deed.py b/scripts/object/tangible/deed/city_deed/shuttleport_tatooine_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/city_deed/shuttleport_tatooine_deed.py
+++ b/scripts/object/tangible/deed/city_deed/shuttleport_tatooine_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/guild_deed/corellia_guild_deed.py b/scripts/object/tangible/deed/guild_deed/corellia_guild_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/guild_deed/corellia_guild_deed.py
+++ b/scripts/object/tangible/deed/guild_deed/corellia_guild_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/guild_deed/generic_guild_deed.py b/scripts/object/tangible/deed/guild_deed/generic_guild_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/guild_deed/generic_guild_deed.py
+++ b/scripts/object/tangible/deed/guild_deed/generic_guild_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/guild_deed/naboo_guild_deed.py b/scripts/object/tangible/deed/guild_deed/naboo_guild_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/guild_deed/naboo_guild_deed.py
+++ b/scripts/object/tangible/deed/guild_deed/naboo_guild_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/guild_deed/tatooine_guild_deed.py b/scripts/object/tangible/deed/guild_deed/tatooine_guild_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/guild_deed/tatooine_guild_deed.py
+++ b/scripts/object/tangible/deed/guild_deed/tatooine_guild_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/guild_deed/tatooine_guild_style_02_deed.py b/scripts/object/tangible/deed/guild_deed/tatooine_guild_style_02_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/guild_deed/tatooine_guild_style_02_deed.py
+++ b/scripts/object/tangible/deed/guild_deed/tatooine_guild_style_02_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed.py b/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed.py
index ccad8904..10d24ebd 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_1.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_organic/shared_mining_organic_flora_farm.iff')
+ object.setAttachment('LotRequirement', 1)
+ object.setIntAttribute('examine_maintenance_rate', 16)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed_elite.py b/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed_elite.py
index ccad8904..8a14fe9a 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed_elite.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed_elite.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_heavy.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_organic/shared_mining_organic_flora_farm_elite.iff')
+ object.setAttachment('LotRequirement', 3)
+ object.setIntAttribute('examine_maintenance_rate', 120)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed_heavy.py b/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed_heavy.py
index ccad8904..1006c18b 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed_heavy.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed_heavy.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_heavy.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_organic/shared_mining_organic_flora_farm_heavy.iff')
+ object.setAttachment('LotRequirement', 1)
+ object.setIntAttribute('examine_maintenance_rate', 90)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed_medium.py b/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed_medium.py
index ccad8904..41c49098 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed_medium.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_flora_deed_medium.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_2.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_organic/shared_mining_organic_flora_farm_medium.iff')
+ object.setAttachment('LotRequirement', 1)
+ object.setIntAttribute('examine_maintenance_rate', 60)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed.py b/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed.py
index ccad8904..d11eb62d 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_1.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_gas/shared_mining_gas_harvester_style_1.iff')
+ object.setAttachment('LotRequirement', 1)
+ object.setIntAttribute('examine_maintenance_rate', 16)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed_elite.py b/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed_elite.py
index ccad8904..0ea574be 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed_elite.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed_elite.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_heavy.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_gas/shared_mining_gas_harvester_style_4.iff')
+ object.setAttachment('LotRequirement', 3)
+ object.setIntAttribute('examine_maintenance_rate', 120)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed_heavy.py b/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed_heavy.py
index ccad8904..d77581cf 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed_heavy.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed_heavy.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_heavy.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_gas/shared_mining_gas_harvester_style_3.iff')
+ object.setAttachment('LotRequirement', 1)
+ object.setIntAttribute('examine_maintenance_rate', 90)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed_medium.py b/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed_medium.py
index ccad8904..4e999ccb 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed_medium.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_gas_deed_medium.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_2.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_gas/shared_mining_gas_harvester_style_2.iff')
+ object.setAttachment('LotRequirement', 1)
+ object.setIntAttribute('examine_maintenance_rate', 60)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed.py b/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed.py
index ccad8904..39590829 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_1.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_liquid/shared_mining_liquid_harvester_style_1.iff')
+ object.setAttachment('LotRequirement', 1)
+ object.setIntAttribute('examine_maintenance_rate', 16)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed_elite.py b/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed_elite.py
index ccad8904..b3eaba78 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed_elite.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed_elite.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_heavy.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_liquid/shared_mining_liquid_harvester_style_4.iff')
+ object.setAttachment('LotRequirement', 3)
+ object.setIntAttribute('examine_maintenance_rate', 120)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed_heavy.py b/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed_heavy.py
index ccad8904..48a97f35 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed_heavy.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed_heavy.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_heavy.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_liquid/shared_mining_liquid_harvester_style_3.iff')
+ object.setAttachment('LotRequirement', 1)
+ object.setIntAttribute('examine_maintenance_rate', 90)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed_medium.py b/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed_medium.py
index ccad8904..3ece7d28 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed_medium.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_liquid_deed_medium.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_2.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_liquid/shared_mining_liquid_harvester_style_2.iff')
+ object.setAttachment('LotRequirement', 1)
+ object.setIntAttribute('examine_maintenance_rate', 60)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed.py b/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed.py
index ccad8904..213a8d53 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_1.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_liquid/shared_mining_liquid_moisture_harvester.iff')
+ object.setAttachment('LotRequirement', 1)
+ object.setIntAttribute('examine_maintenance_rate', 16)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed_elite.py b/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed_elite.py
index ccad8904..ba7cf3f9 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed_elite.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed_elite.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_heavy.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_liquid/shared_mining_liquid_moisture_harvester_elite.iff')
+ object.setAttachment('LotRequirement', 3)
+ object.setIntAttribute('examine_maintenance_rate', 120)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed_heavy.py b/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed_heavy.py
index ccad8904..5ca18dc4 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed_heavy.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed_heavy.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_heavy.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_liquid/shared_mining_liquid_moisture_harvester_heavy.iff')
+ object.setAttachment('LotRequirement', 1)
+ object.setIntAttribute('examine_maintenance_rate', 90)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed_medium.py b/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed_medium.py
index ccad8904..e14043d2 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed_medium.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_moisture_deed_medium.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_2.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_liquid/shared_mining_liquid_moisture_harvester_medium.iff')
+ object.setAttachment('LotRequirement', 1)
+ object.setIntAttribute('examine_maintenance_rate', 60)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_ore_deed_elite.py b/scripts/object/tangible/deed/harvester_deed/harvester_ore_deed_elite.py
index ccad8904..6c3db03a 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_ore_deed_elite.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_ore_deed_elite.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_heavy.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_ore/shared_mining_ore_harvester_elite.iff')
+ object.setAttachment('LotRequirement', 3)
+ object.setIntAttribute('examine_maintenance_rate', 120)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_ore_heavy_deed.py b/scripts/object/tangible/deed/harvester_deed/harvester_ore_heavy_deed.py
index ccad8904..e15fd8b4 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_ore_heavy_deed.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_ore_heavy_deed.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_heavy.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_ore/shared_mining_ore_harvester_heavy.iff')
+ object.setAttachment('LotRequirement', 1)
+ object.setIntAttribute('examine_maintenance_rate', 90)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_ore_s1_deed.py b/scripts/object/tangible/deed/harvester_deed/harvester_ore_s1_deed.py
index ccad8904..42fbafc3 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_ore_s1_deed.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_ore_s1_deed.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_1.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_ore/shared_mining_ore_harvester_style_1.iff')
+ object.setAttachment('LotRequirement', 1)
+ object.setIntAttribute('examine_maintenance_rate', 16)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/harvester_deed/harvester_ore_s2_deed.py b/scripts/object/tangible/deed/harvester_deed/harvester_ore_s2_deed.py
index ccad8904..e619c2ee 100644
--- a/scripts/object/tangible/deed/harvester_deed/harvester_ore_s2_deed.py
+++ b/scripts/object/tangible/deed/harvester_deed/harvester_ore_s2_deed.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/harvesterDeed')
+ object.setAttachment('ConstructorTemplate', 'object/installation/mining_ore/construction/shared_construction_mining_ore_harvester_style_2.iff')
+ object.setAttachment('StructureTemplate', 'object/installation/mining_ore/shared_mining_ore_harvester_style_2.iff')
+ object.setAttachment('LotRequirement', 1)
+ object.setIntAttribute('examine_maintenance_rate', 60)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/corellia_house_large_deed.py b/scripts/object/tangible/deed/player_house_deed/corellia_house_large_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/corellia_house_large_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/corellia_house_large_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/corellia_house_large_style_02_deed.py b/scripts/object/tangible/deed/player_house_deed/corellia_house_large_style_02_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/corellia_house_large_style_02_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/corellia_house_large_style_02_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/corellia_house_medium_deed.py b/scripts/object/tangible/deed/player_house_deed/corellia_house_medium_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/corellia_house_medium_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/corellia_house_medium_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/corellia_house_medium_style_02_deed.py b/scripts/object/tangible/deed/player_house_deed/corellia_house_medium_style_02_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/corellia_house_medium_style_02_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/corellia_house_medium_style_02_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/corellia_house_small_deed.py b/scripts/object/tangible/deed/player_house_deed/corellia_house_small_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/corellia_house_small_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/corellia_house_small_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/corellia_house_small_floor_02_deed.py b/scripts/object/tangible/deed/player_house_deed/corellia_house_small_floor_02_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/corellia_house_small_floor_02_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/corellia_house_small_floor_02_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/corellia_house_small_style_02_deed.py b/scripts/object/tangible/deed/player_house_deed/corellia_house_small_style_02_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/corellia_house_small_style_02_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/corellia_house_small_style_02_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/corellia_house_small_style_02_floor_02_deed.py b/scripts/object/tangible/deed/player_house_deed/corellia_house_small_style_02_floor_02_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/corellia_house_small_style_02_floor_02_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/corellia_house_small_style_02_floor_02_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/generic_house_large_deed.py b/scripts/object/tangible/deed/player_house_deed/generic_house_large_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/generic_house_large_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/generic_house_large_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/generic_house_large_style_02_deed.py b/scripts/object/tangible/deed/player_house_deed/generic_house_large_style_02_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/generic_house_large_style_02_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/generic_house_large_style_02_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/generic_house_large_window_s01_deed.py b/scripts/object/tangible/deed/player_house_deed/generic_house_large_window_s01_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/generic_house_large_window_s01_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/generic_house_large_window_s01_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/generic_house_large_window_s02_deed.py b/scripts/object/tangible/deed/player_house_deed/generic_house_large_window_s02_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/generic_house_large_window_s02_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/generic_house_large_window_s02_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/generic_house_medium_deed.py b/scripts/object/tangible/deed/player_house_deed/generic_house_medium_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/generic_house_medium_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/generic_house_medium_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/generic_house_medium_style_02_deed.py b/scripts/object/tangible/deed/player_house_deed/generic_house_medium_style_02_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/generic_house_medium_style_02_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/generic_house_medium_style_02_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/generic_house_medium_windowed_deed.py b/scripts/object/tangible/deed/player_house_deed/generic_house_medium_windowed_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/generic_house_medium_windowed_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/generic_house_medium_windowed_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/generic_house_medium_windowed_s02_deed.py b/scripts/object/tangible/deed/player_house_deed/generic_house_medium_windowed_s02_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/generic_house_medium_windowed_s02_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/generic_house_medium_windowed_s02_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/generic_house_small_deed.py b/scripts/object/tangible/deed/player_house_deed/generic_house_small_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/generic_house_small_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/generic_house_small_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/generic_house_small_floor_02_deed.py b/scripts/object/tangible/deed/player_house_deed/generic_house_small_floor_02_deed.py
index ccad8904..5483eb6d 100644
--- a/scripts/object/tangible/deed/player_house_deed/generic_house_small_floor_02_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/generic_house_small_floor_02_deed.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/generic_house_small_style_02_deed.py b/scripts/object/tangible/deed/player_house_deed/generic_house_small_style_02_deed.py
index ccad8904..29729ab1 100644
--- a/scripts/object/tangible/deed/player_house_deed/generic_house_small_style_02_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/generic_house_small_style_02_deed.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
diff --git a/scripts/object/tangible/deed/player_house_deed/generic_house_small_style_02_floor_02_deed.py b/scripts/object/tangible/deed/player_house_deed/generic_house_small_style_02_floor_02_deed.py
index ccad8904..29729ab1 100644
--- a/scripts/object/tangible/deed/player_house_deed/generic_house_small_style_02_floor_02_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/generic_house_small_style_02_floor_02_deed.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
diff --git a/scripts/object/tangible/deed/player_house_deed/generic_house_small_window_deed.py b/scripts/object/tangible/deed/player_house_deed/generic_house_small_window_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/generic_house_small_window_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/generic_house_small_window_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/generic_house_small_window_style_03_deed.py b/scripts/object/tangible/deed/player_house_deed/generic_house_small_window_style_03_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/generic_house_small_window_style_03_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/generic_house_small_window_style_03_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/jabbas_sail_barge_deed.py b/scripts/object/tangible/deed/player_house_deed/jabbas_sail_barge_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/jabbas_sail_barge_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/jabbas_sail_barge_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/merchant_tent_style_01_deed.py b/scripts/object/tangible/deed/player_house_deed/merchant_tent_style_01_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/merchant_tent_style_01_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/merchant_tent_style_01_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/merchant_tent_style_02_deed.py b/scripts/object/tangible/deed/player_house_deed/merchant_tent_style_02_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/merchant_tent_style_02_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/merchant_tent_style_02_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/merchant_tent_style_03_deed.py b/scripts/object/tangible/deed/player_house_deed/merchant_tent_style_03_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/merchant_tent_style_03_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/merchant_tent_style_03_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/mustafar_house_lg.py b/scripts/object/tangible/deed/player_house_deed/mustafar_house_lg.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/mustafar_house_lg.py
+++ b/scripts/object/tangible/deed/player_house_deed/mustafar_house_lg.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/naboo_house_large_deed.py b/scripts/object/tangible/deed/player_house_deed/naboo_house_large_deed.py
index ccad8904..5483eb6d 100644
--- a/scripts/object/tangible/deed/player_house_deed/naboo_house_large_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/naboo_house_large_deed.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/naboo_house_medium_deed.py b/scripts/object/tangible/deed/player_house_deed/naboo_house_medium_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/naboo_house_medium_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/naboo_house_medium_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/naboo_house_small_deed.py b/scripts/object/tangible/deed/player_house_deed/naboo_house_small_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/naboo_house_small_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/naboo_house_small_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/naboo_house_small_style_02_deed.py b/scripts/object/tangible/deed/player_house_deed/naboo_house_small_style_02_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/naboo_house_small_style_02_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/naboo_house_small_style_02_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/naboo_house_small_window_deed.py b/scripts/object/tangible/deed/player_house_deed/naboo_house_small_window_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/naboo_house_small_window_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/naboo_house_small_window_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/player_house_tcg_8_bespin_house_deed.py b/scripts/object/tangible/deed/player_house_deed/player_house_tcg_8_bespin_house_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/player_house_tcg_8_bespin_house_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/player_house_tcg_8_bespin_house_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/tatooine_house_large_deed.py b/scripts/object/tangible/deed/player_house_deed/tatooine_house_large_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/tatooine_house_large_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/tatooine_house_large_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/tatooine_house_medium_deed.py b/scripts/object/tangible/deed/player_house_deed/tatooine_house_medium_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/tatooine_house_medium_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/tatooine_house_medium_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/tatooine_house_small_deed.py b/scripts/object/tangible/deed/player_house_deed/tatooine_house_small_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/tatooine_house_small_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/tatooine_house_small_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/tatooine_house_small_style_02_deed.py b/scripts/object/tangible/deed/player_house_deed/tatooine_house_small_style_02_deed.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/deed/player_house_deed/tatooine_house_small_style_02_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/tatooine_house_small_style_02_deed.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/player_house_deed/tatooine_house_window_small_deed.py b/scripts/object/tangible/deed/player_house_deed/tatooine_house_window_small_deed.py
index ccad8904..8f52a919 100644
--- a/scripts/object/tangible/deed/player_house_deed/tatooine_house_window_small_deed.py
+++ b/scripts/object/tangible/deed/player_house_deed/tatooine_house_window_small_deed.py
@@ -1,4 +1,12 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ object.setConstructorTemplate('object/building/player/construction/shared_construction_player_house_tatooine_small_style_01.iff')
+ object.setStructureTemplate('object/tangible/deed/player_house_deed/shared_tatooine_house_window_small_deed.iff')
+ object.setLotRequirement(2)
+ object.setBMR(8)
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/vehicle_deed/barc_speeder_deed.py b/scripts/object/tangible/deed/vehicle_deed/barc_speeder_deed.py
index ccad8904..af21fb67 100644
--- a/scripts/object/tangible/deed/vehicle_deed/barc_speeder_deed.py
+++ b/scripts/object/tangible/deed/vehicle_deed/barc_speeder_deed.py
@@ -1,4 +1,24 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'vehicleDeed')
+ return
+
+def use(core, actor, object):
+ datapad = actor.getSlottedObject('datapad')
+ pcd = core.objectService.createObject('object/intangible/vehicle/shared_barc_speeder_pcd.iff', actor.getPlanet(), actor.getPosition().x, actor.getPosition().z,actor.getPosition().y)
+
+ if datapad and pcd:
+
+ datapad.add(pcd)
+ core.objectService.destroyObject(object)
+
+ vehicleId = actor.getAttachment('activeVehicleID')
+
+ if vehicleId == None:
+ vehicle = core.objectService.createObject('object/mobile/vehicle/shared_barc_speeder.iff', actor.getPlanet(), actor.getPosition().x, actor.getPosition().z,actor.getPosition().y)
+ vehicle.setOwnerId(actor.getObjectID())
+ core.simulationService.add(vehicle, vehicle.getPosition().x, vehicle.getPosition().z, True)
+ actor.setAttachment('activeVehicleID', vehicle.getObjectID())
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/vehicle_deed/landspeeder_av21_deed.py b/scripts/object/tangible/deed/vehicle_deed/landspeeder_av21_deed.py
index ccad8904..a5677b55 100644
--- a/scripts/object/tangible/deed/vehicle_deed/landspeeder_av21_deed.py
+++ b/scripts/object/tangible/deed/vehicle_deed/landspeeder_av21_deed.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/vehicleDeed')
+ return
+
+def use(core, actor, object):
+ core.mountService.generateVehicle(actor, object, 'object/mobile/vehicle/shared_landspeeder_av21.iff', 'object/intangible/vehicle/shared_landspeeder_av21_pcd.iff')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/vehicle_deed/landspeeder_tantive4_deed.py b/scripts/object/tangible/deed/vehicle_deed/landspeeder_tantive4_deed.py
index ccad8904..f031d37f 100644
--- a/scripts/object/tangible/deed/vehicle_deed/landspeeder_tantive4_deed.py
+++ b/scripts/object/tangible/deed/vehicle_deed/landspeeder_tantive4_deed.py
@@ -1,4 +1,24 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'deeds/vehicleDeed')
+ return
+
+def use(core, actor, object):
+ datapad = actor.getSlottedObject('datapad')
+ pcd = core.objectService.createObject('object/intangible/vehicle/shared_landspeeder_tantive4_pcd.iff', actor.getPlanet(), actor.getPosition().x, actor.getPosition().z,actor.getPosition().y)
+
+ if datapad and pcd:
+
+ datapad.add(pcd)
+ core.objectService.destroyObject(object)
+
+ vehicleId = actor.getAttachment('activeVehicleID')
+
+ if vehicleId == None:
+ vehicle = core.objectService.createObject('object/mobile/vehicle/shared_landspeeder_tantive4.iff', actor.getPlanet(), actor.getPosition().x, actor.getPosition().z,actor.getPosition().y)
+ vehicle.setOwnerId(actor.getObjectID())
+ core.simulationService.add(vehicle, vehicle.getPosition().x, vehicle.getPosition().z, True)
+ actor.setAttachment('activeVehicleID', vehicle.getObjectID())
+
+ return
diff --git a/scripts/object/tangible/deed/vehicle_deed/speeder_stap_deed.py b/scripts/object/tangible/deed/vehicle_deed/speeder_stap_deed.py
index ccad8904..382ae19c 100644
--- a/scripts/object/tangible/deed/vehicle_deed/speeder_stap_deed.py
+++ b/scripts/object/tangible/deed/vehicle_deed/speeder_stap_deed.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/vehicleDeed')
+ return
+
+def use(core, actor, object):
+ core.mountService.generateVehicle(actor, object, 'object/mobile/vehicle/shared_stap_speeder.iff', 'object/intangible/vehicle/shared_stap_speeder_pcd.iff')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/deed/vehicle_deed/speederbike_swoop_deed.py b/scripts/object/tangible/deed/vehicle_deed/speederbike_swoop_deed.py
index ccad8904..48f0518e 100644
--- a/scripts/object/tangible/deed/vehicle_deed/speederbike_swoop_deed.py
+++ b/scripts/object/tangible/deed/vehicle_deed/speederbike_swoop_deed.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/vehicleDeed')
+ return
+
+def use(core, actor, object):
+ core.mountService.generateVehicle(actor, object, 'object/mobile/vehicle/shared_speederbike_swoop.iff', 'object/intangible/vehicle/shared_speederbike_swoop_pcd.iff')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/door/shared_thm_kash_zonegate_door_simple.py b/scripts/object/tangible/door/shared_thm_kash_zonegate_door_simple.py
new file mode 100644
index 00000000..4bd7f23d
--- /dev/null
+++ b/scripts/object/tangible/door/shared_thm_kash_zonegate_door_simple.py
@@ -0,0 +1,19 @@
+import sys
+
+from engine.resources.scene import Point3D
+from engine.resources.scene import Quaternion
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'a_gate_door')
+ return
+
+#TODO: Solve problem with displayed ObjectID from buildout not being proper unsigned int.
+#-56576470324869753 rryatt
+#-56576470324869754 blackscale
+#-56576470324869755 ettyy
+#kkowir exit coord -746 18 256
+
+def use(core, actor, object):
+ if object.getObjectID() == long(-56576470324869752):
+ core.simulationService.transferToPlanet(actor, core.terrainService.getPlanetByName('kashyyyk_dead_forest'), Point3D(float(86.9), float(29.4), float(-473)), Quaternion(float(0), float(0), float(0), float(1)), None)
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/event_perk/lifeday_painting.py b/scripts/object/tangible/event_perk/lifeday_painting.py
index ccad8904..5f0dee13 100644
--- a/scripts/object/tangible/event_perk/lifeday_painting.py
+++ b/scripts/object/tangible/event_perk/lifeday_painting.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Family Bonds
\ No newline at end of file
diff --git a/scripts/object/tangible/food/crafted/drink_breath_of_heaven.py b/scripts/object/tangible/food/crafted/drink_breath_of_heaven.py
index ccad8904..eec73983 100644
--- a/scripts/object/tangible/food/crafted/drink_breath_of_heaven.py
+++ b/scripts/object/tangible/food/crafted/drink_breath_of_heaven.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'shared_drink_breath_of_heaven')
+ return
diff --git a/scripts/object/tangible/food/quest/dessert_luilris_mushroom_pie.py b/scripts/object/tangible/food/quest/dessert_luilris_mushroom_pie.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/food/quest/dessert_luilris_mushroom_pie.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/food/quest/drink_warrl_surprise.py b/scripts/object/tangible/food/quest/drink_warrl_surprise.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/food/quest/drink_warrl_surprise.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/decorative/30th_anniversary_painting_01.py b/scripts/object/tangible/furniture/decorative/30th_anniversary_painting_01.py
index ccad8904..e125d99d 100644
--- a/scripts/object/tangible/furniture/decorative/30th_anniversary_painting_01.py
+++ b/scripts/object/tangible/furniture/decorative/30th_anniversary_painting_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #30th Anniversary Bash
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/decorative/event_lifeday05_painting_01.py b/scripts/object/tangible/furniture/decorative/event_lifeday05_painting_01.py
index ccad8904..c424cded 100644
--- a/scripts/object/tangible/furniture/decorative/event_lifeday05_painting_01.py
+++ b/scripts/object/tangible/furniture/decorative/event_lifeday05_painting_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Pilgramige
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/decorative/event_lifeday05_painting_02.py b/scripts/object/tangible/furniture/decorative/event_lifeday05_painting_02.py
index ccad8904..201a21dc 100644
--- a/scripts/object/tangible/furniture/decorative/event_lifeday05_painting_02.py
+++ b/scripts/object/tangible/furniture/decorative/event_lifeday05_painting_02.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Memories Past
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/decorative/event_lifeday05_painting_03.py b/scripts/object/tangible/furniture/decorative/event_lifeday05_painting_03.py
index ccad8904..ba95aa3f 100644
--- a/scripts/object/tangible/furniture/decorative/event_lifeday05_painting_03.py
+++ b/scripts/object/tangible/furniture/decorative/event_lifeday05_painting_03.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Triumph
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/decorative/event_lifeday07_painting_01.py b/scripts/object/tangible/furniture/decorative/event_lifeday07_painting_01.py
index ccad8904..9bdba6fa 100644
--- a/scripts/object/tangible/furniture/decorative/event_lifeday07_painting_01.py
+++ b/scripts/object/tangible/furniture/decorative/event_lifeday07_painting_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #No name, Yoda Wookiee
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/decorative/imperial_community_painting_2008.py b/scripts/object/tangible/furniture/decorative/imperial_community_painting_2008.py
index ccad8904..527db59b 100644
--- a/scripts/object/tangible/furniture/decorative/imperial_community_painting_2008.py
+++ b/scripts/object/tangible/furniture/decorative/imperial_community_painting_2008.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #United in our Cause
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/decorative/pub29_corellia_painting.py b/scripts/object/tangible/furniture/decorative/pub29_corellia_painting.py
index ccad8904..2a16ecb0 100644
--- a/scripts/object/tangible/furniture/decorative/pub29_corellia_painting.py
+++ b/scripts/object/tangible/furniture/decorative/pub29_corellia_painting.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Mystic Corellia
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/decorative/pub29_mustafar_painting.py b/scripts/object/tangible/furniture/decorative/pub29_mustafar_painting.py
index ccad8904..873bc07e 100644
--- a/scripts/object/tangible/furniture/decorative/pub29_mustafar_painting.py
+++ b/scripts/object/tangible/furniture/decorative/pub29_mustafar_painting.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #It Came From Mustafar
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/decorative/pub29_ryatt_painting.py b/scripts/object/tangible/furniture/decorative/pub29_ryatt_painting.py
index ccad8904..ad20ddcc 100644
--- a/scripts/object/tangible/furniture/decorative/pub29_ryatt_painting.py
+++ b/scripts/object/tangible/furniture/decorative/pub29_ryatt_painting.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Survive the Ryatt Trail
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/decorative/rebel_community_painting_2008.py b/scripts/object/tangible/furniture/decorative/rebel_community_painting_2008.py
index ccad8904..104d57f1 100644
--- a/scripts/object/tangible/furniture/decorative/rebel_community_painting_2008.py
+++ b/scripts/object/tangible/furniture/decorative/rebel_community_painting_2008.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #The March to Restuss
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s01.py b/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s01.py
index ccad8904..343b1b69 100644
--- a/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s01.py
+++ b/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #courage
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s02.py b/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s02.py
index ccad8904..dac3bf8f 100644
--- a/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s02.py
+++ b/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s02.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Morality
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s03.py b/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s03.py
index ccad8904..b3542866 100644
--- a/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s03.py
+++ b/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s03.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Loyalty
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s04.py b/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s04.py
index ccad8904..1319171d 100644
--- a/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s04.py
+++ b/scripts/object/tangible/furniture/lifeday/lifeday_painting_2010_s04.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Compassion
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/lifeday/lifeday_painting_s01.py b/scripts/object/tangible/furniture/lifeday/lifeday_painting_s01.py
index ccad8904..c089819f 100644
--- a/scripts/object/tangible/furniture/lifeday/lifeday_painting_s01.py
+++ b/scripts/object/tangible/furniture/lifeday/lifeday_painting_s01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Lifeday Painting (Red Robe)
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/lifeday/lifeday_painting_s02.py b/scripts/object/tangible/furniture/lifeday/lifeday_painting_s02.py
index ccad8904..72a1a7ef 100644
--- a/scripts/object/tangible/furniture/lifeday/lifeday_painting_s02.py
+++ b/scripts/object/tangible/furniture/lifeday/lifeday_painting_s02.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Red Robe Family
\ No newline at end of file
diff --git a/scripts/object/tangible/furniture/technical/guild_registry_initial.py b/scripts/object/tangible/furniture/technical/guild_registry_initial.py
index ccad8904..25ce3c98 100644
--- a/scripts/object/tangible/furniture/technical/guild_registry_initial.py
+++ b/scripts/object/tangible/furniture/technical/guild_registry_initial.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/guild_registry')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/holiday/life_day/main_lifeday_tree.py b/scripts/object/tangible/holiday/life_day/main_lifeday_tree.py
index ccad8904..f98db1aa 100644
--- a/scripts/object/tangible/holiday/life_day/main_lifeday_tree.py
+++ b/scripts/object/tangible/holiday/life_day/main_lifeday_tree.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'holidays/lifeday/main_lifeday_tree')
+ return
diff --git a/scripts/object/tangible/item/quest/crowd_pleaser/dance_reward.py b/scripts/object/tangible/item/quest/crowd_pleaser/dance_reward.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/crowd_pleaser/dance_reward.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/crowd_pleaser/music_reward.py b/scripts/object/tangible/item/quest/crowd_pleaser/music_reward.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/crowd_pleaser/music_reward.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/bacta_tank.py b/scripts/object/tangible/item/quest/force_sensitive/bacta_tank.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/bacta_tank.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_buff_item.py b/scripts/object/tangible/item/quest/force_sensitive/fs_buff_item.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_buff_item.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_analyzer.py b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_analyzer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_analyzer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_calibrator.py b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_calibrator.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_calibrator.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_config_processor.py b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_config_processor.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_config_processor.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_decryption_chip.py b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_decryption_chip.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_decryption_chip.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_gyro_receiver.py b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_gyro_receiver.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_gyro_receiver.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_signal_amp.py b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_signal_amp.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_signal_amp.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_solid_state_array.py b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_solid_state_array.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_solid_state_array.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_terminal.py b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_craft_puzzle_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_crafting4_computer_core.py b/scripts/object/tangible/item/quest/force_sensitive/fs_crafting4_computer_core.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_crafting4_computer_core.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_crafting4_downed_satellite.py b/scripts/object/tangible/item/quest/force_sensitive/fs_crafting4_downed_satellite.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_crafting4_downed_satellite.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_crystal_force.py b/scripts/object/tangible/item/quest/force_sensitive/fs_crystal_force.py
new file mode 100644
index 00000000..0e442157
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_crystal_force.py
@@ -0,0 +1,9 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_force_crystal_04_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_force_crystal_04_02')
+ object.setAttachment('radial_filename', 'item/item')
+ return
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_crystal_health.py b/scripts/object/tangible/item/quest/force_sensitive/fs_crystal_health.py
new file mode 100644
index 00000000..fd74930e
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_crystal_health.py
@@ -0,0 +1,9 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_force_crystal_04_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_force_crystal_04_01')
+ object.setAttachment('radial_filename', 'item/item')
+ return
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_medic_puzzle_heal_pack.py b/scripts/object/tangible/item/quest/force_sensitive/fs_medic_puzzle_heal_pack.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_medic_puzzle_heal_pack.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_mellichae_cyborg_arm.py b/scripts/object/tangible/item/quest/force_sensitive/fs_mellichae_cyborg_arm.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_mellichae_cyborg_arm.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_reflex_supply_crate.py b/scripts/object/tangible/item/quest/force_sensitive/fs_reflex_supply_crate.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_reflex_supply_crate.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_sculpture_1.py b/scripts/object/tangible/item/quest/force_sensitive/fs_sculpture_1.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_sculpture_1.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_sculpture_2.py b/scripts/object/tangible/item/quest/force_sensitive/fs_sculpture_2.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_sculpture_2.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_sculpture_3.py b/scripts/object/tangible/item/quest/force_sensitive/fs_sculpture_3.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_sculpture_3.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_sculpture_4.py b/scripts/object/tangible/item/quest/force_sensitive/fs_sculpture_4.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_sculpture_4.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/force_sensitive/fs_village_bannerpole_s01.py b/scripts/object/tangible/item/quest/force_sensitive/fs_village_bannerpole_s01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/force_sensitive/fs_village_bannerpole_s01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/hero_of_tatooine/explosives.py b/scripts/object/tangible/item/quest/hero_of_tatooine/explosives.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/hero_of_tatooine/explosives.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/quest/hero_of_tatooine/explosives_crate.py b/scripts/object/tangible/item/quest/hero_of_tatooine/explosives_crate.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/item/quest/hero_of_tatooine/explosives_crate.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/rare_loot_chest_1.py b/scripts/object/tangible/item/rare_loot_chest_1.py
index ccad8904..4b7795de 100644
--- a/scripts/object/tangible/item/rare_loot_chest_1.py
+++ b/scripts/object/tangible/item/rare_loot_chest_1.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'item/lootchest')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/rare_loot_chest_2.py b/scripts/object/tangible/item/rare_loot_chest_2.py
index ccad8904..4b7795de 100644
--- a/scripts/object/tangible/item/rare_loot_chest_2.py
+++ b/scripts/object/tangible/item/rare_loot_chest_2.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'item/lootchest')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/item/rare_loot_chest_3.py b/scripts/object/tangible/item/rare_loot_chest_3.py
index ccad8904..4b7795de 100644
--- a/scripts/object/tangible/item/rare_loot_chest_3.py
+++ b/scripts/object/tangible/item/rare_loot_chest_3.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'item/lootchest')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/creature_loot/collections/item_lifeday_gift_other_01_01.py b/scripts/object/tangible/loot/creature_loot/collections/item_lifeday_gift_other_01_01.py
new file mode 100644
index 00000000..6f7c8887
--- /dev/null
+++ b/scripts/object/tangible/loot/creature_loot/collections/item_lifeday_gift_other_01_01.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, object):
+ object.setStfName('item_lifeday_gift_other_01_01')
+ object.setDetailName('item_lifeday_gift_other_01_01')
+ object.setCustomName('Life Day Gift Box For A Friend')
+ object.setIntAttribute('volume', 1)
+ object.setIntAttribute('tier', 2)
+ object.setAttachment('radial_filename', 'holidays/lifeday/lifeday_gift')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/creature_loot/collections/item_lifeday_gift_self_01_01.py b/scripts/object/tangible/loot/creature_loot/collections/item_lifeday_gift_self_01_01.py
new file mode 100644
index 00000000..273b89dc
--- /dev/null
+++ b/scripts/object/tangible/loot/creature_loot/collections/item_lifeday_gift_self_01_01.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, object):
+ object.setStfName('item_lifeday_gift_self_01_01')
+ object.setDetailName('item_lifeday_gift_self_01_01')
+ object.setCustomName('Life Day Gift Box')
+ object.setIntAttribute('volume', 1)
+ object.setIntAttribute('no_trade', 1)
+ object.setIntAttribute('tier', 2)
+ object.setAttachment('radial_filename', 'holidays/lifeday/lifeday_gift')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/generic_usable/item_bounty_hunter_clicky_01_02.py b/scripts/object/tangible/loot/generic_usable/item_bounty_hunter_clicky_01_02.py
new file mode 100644
index 00000000..22d032c5
--- /dev/null
+++ b/scripts/object/tangible/loot/generic_usable/item_bounty_hunter_clicky_01_02.py
@@ -0,0 +1,9 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bounty_hunter_clicky_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bounty_hunter_clicky_01_02')
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ return
diff --git a/scripts/object/tangible/loot/generic_usable/item_commando_clicky_01_02.py b/scripts/object/tangible/loot/generic_usable/item_commando_clicky_01_02.py
new file mode 100644
index 00000000..5041ee3b
--- /dev/null
+++ b/scripts/object/tangible/loot/generic_usable/item_commando_clicky_01_02.py
@@ -0,0 +1,9 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_commando_clicky_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_commando_clicky_01_02')
+ object.setStringAttribute('class_required', 'Commando')
+ return
diff --git a/scripts/object/tangible/loot/generic_usable/item_force_sensitive_clicky_01_02.py b/scripts/object/tangible/loot/generic_usable/item_force_sensitive_clicky_01_02.py
new file mode 100644
index 00000000..e6745838
--- /dev/null
+++ b/scripts/object/tangible/loot/generic_usable/item_force_sensitive_clicky_01_02.py
@@ -0,0 +1,9 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_force_sensitive_clicky_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_force_sensitive_clicky_01_02')
+ object.setStringAttribute('class_required', 'Jedi')
+ return
diff --git a/scripts/object/tangible/loot/generic_usable/item_medic_clicky_01_02.py b/scripts/object/tangible/loot/generic_usable/item_medic_clicky_01_02.py
new file mode 100644
index 00000000..a9a7e24b
--- /dev/null
+++ b/scripts/object/tangible/loot/generic_usable/item_medic_clicky_01_02.py
@@ -0,0 +1,9 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_medic_clicky_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_medic_clicky_01_02')
+ object.setStringAttribute('class_required', 'Medic')
+ return
diff --git a/scripts/object/tangible/loot/generic_usable/item_officer_clicky_01_02.py b/scripts/object/tangible/loot/generic_usable/item_officer_clicky_01_02.py
new file mode 100644
index 00000000..b5797a7d
--- /dev/null
+++ b/scripts/object/tangible/loot/generic_usable/item_officer_clicky_01_02.py
@@ -0,0 +1,9 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_officer_clicky_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_officer_clicky_01_02')
+ object.setStringAttribute('class_required', 'Officer')
+ return
diff --git a/scripts/object/tangible/loot/generic_usable/item_smuggler_clicky_01_02.py b/scripts/object/tangible/loot/generic_usable/item_smuggler_clicky_01_02.py
new file mode 100644
index 00000000..65b88834
--- /dev/null
+++ b/scripts/object/tangible/loot/generic_usable/item_smuggler_clicky_01_02.py
@@ -0,0 +1,9 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_smuggler_clicky_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_smuggler_clicky_01_02')
+ object.setStringAttribute('class_required', 'Smuggler')
+ return
diff --git a/scripts/object/tangible/loot/generic_usable/item_spy_clicky_01_02.p b/scripts/object/tangible/loot/generic_usable/item_spy_clicky_01_02.p
new file mode 100644
index 00000000..dd1385a7
--- /dev/null
+++ b/scripts/object/tangible/loot/generic_usable/item_spy_clicky_01_02.p
@@ -0,0 +1,9 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_spy_clicky_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_spy_clicky_01_02')
+ object.setStringAttribute('class_required', 'Spy')
+ return
diff --git a/scripts/object/tangible/loot/generic_usable/stim_syringe_generic.py b/scripts/object/tangible/loot/generic_usable/stim_syringe_generic.py
index ccad8904..786a488c 100644
--- a/scripts/object/tangible/loot/generic_usable/stim_syringe_generic.py
+++ b/scripts/object/tangible/loot/generic_usable/stim_syringe_generic.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/usable')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/mustafar/must_painting_04.py b/scripts/object/tangible/loot/mustafar/must_painting_04.py
index ccad8904..cefff8bc 100644
--- a/scripts/object/tangible/loot/mustafar/must_painting_04.py
+++ b/scripts/object/tangible/loot/mustafar/must_painting_04.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+#Resource, RLS name Living Canals
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/mustafar/old_republic_tech_02.py b/scripts/object/tangible/loot/mustafar/old_republic_tech_02.py
index ccad8904..753fa78b 100644
--- a/scripts/object/tangible/loot/mustafar/old_republic_tech_02.py
+++ b/scripts/object/tangible/loot/mustafar/old_republic_tech_02.py
@@ -1,4 +1,13 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/usable')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_tow_proc_generic_03_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_tow_proc_generic_03_01')
+ return
+
+def use(core, actor, object):
+ core.buffService.addBuffToCreature(actor, 'towPoisonResistAbsorb_3', actor)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/2h_sword_scythe_schematic.py b/scripts/object/tangible/loot/quest/2h_sword_scythe_schematic.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/2h_sword_scythe_schematic.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/anakin_helmet.py b/scripts/object/tangible/loot/quest/anakin_helmet.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/anakin_helmet.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/ardanium_ii.py b/scripts/object/tangible/loot/quest/ardanium_ii.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/ardanium_ii.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/bantha_doll.py b/scripts/object/tangible/loot/quest/bantha_doll.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/bantha_doll.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/broken_bottle.py b/scripts/object/tangible/loot/quest/broken_bottle.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/broken_bottle.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/carved_stone.py b/scripts/object/tangible/loot/quest/carved_stone.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/carved_stone.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/corellia_meatlumps_act1_story.py b/scripts/object/tangible/loot/quest/corellia_meatlumps_act1_story.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/corellia_meatlumps_act1_story.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/crude_stone.py b/scripts/object/tangible/loot/quest/crude_stone.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/crude_stone.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/decomposed_foot.py b/scripts/object/tangible/loot/quest/decomposed_foot.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/decomposed_foot.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/decomposed_hand.py b/scripts/object/tangible/loot/quest/decomposed_hand.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/decomposed_hand.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/decomposed_skull.py b/scripts/object/tangible/loot/quest/decomposed_skull.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/decomposed_skull.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/droid_brain_anakin.py b/scripts/object/tangible/loot/quest/droid_brain_anakin.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/droid_brain_anakin.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/edb_quest_heirloom_bowl.py b/scripts/object/tangible/loot/quest/edb_quest_heirloom_bowl.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/edb_quest_heirloom_bowl.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/endrine.py b/scripts/object/tangible/loot/quest/endrine.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/endrine.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/ep3/varactyl_egg.py b/scripts/object/tangible/loot/quest/ep3/varactyl_egg.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/ep3/varactyl_egg.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/ep3_forest_cure.py b/scripts/object/tangible/loot/quest/ep3_forest_cure.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/ep3_forest_cure.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/ep3_healing_resin.py b/scripts/object/tangible/loot/quest/ep3_healing_resin.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/ep3_healing_resin.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/force_sensitive/camp_frequency_datapad.py b/scripts/object/tangible/loot/quest/force_sensitive/camp_frequency_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/force_sensitive/camp_frequency_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/force_sensitive/camp_remote.py b/scripts/object/tangible/loot/quest/force_sensitive/camp_remote.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/force_sensitive/camp_remote.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/force_sensitive/camp_waypoint_datapad.py b/scripts/object/tangible/loot/quest/force_sensitive/camp_waypoint_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/force_sensitive/camp_waypoint_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/force_sensitive/sharred_force_crystal.py b/scripts/object/tangible/loot/quest/force_sensitive/sharred_force_crystal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/force_sensitive/sharred_force_crystal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/force_sensitive/sharred_waypoint_datapad.py b/scripts/object/tangible/loot/quest/force_sensitive/sharred_waypoint_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/force_sensitive/sharred_waypoint_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/force_sensitive/theater_datapad.py b/scripts/object/tangible/loot/quest/force_sensitive/theater_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/force_sensitive/theater_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/frn_quest_dant_skull_bol_01.py b/scripts/object/tangible/loot/quest/frn_quest_dant_skull_bol_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/frn_quest_dant_skull_bol_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/frn_quest_krayt_skull_01.py b/scripts/object/tangible/loot/quest/frn_quest_krayt_skull_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/frn_quest_krayt_skull_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/hero_of_tatooine/mark_altruism.py b/scripts/object/tangible/loot/quest/hero_of_tatooine/mark_altruism.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/hero_of_tatooine/mark_altruism.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/hero_of_tatooine/mark_courage.py b/scripts/object/tangible/loot/quest/hero_of_tatooine/mark_courage.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/hero_of_tatooine/mark_courage.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/hero_of_tatooine/mark_honor.py b/scripts/object/tangible/loot/quest/hero_of_tatooine/mark_honor.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/hero_of_tatooine/mark_honor.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/hero_of_tatooine/mark_intellect.py b/scripts/object/tangible/loot/quest/hero_of_tatooine/mark_intellect.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/hero_of_tatooine/mark_intellect.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/hero_of_tatooine/squill_skull.py b/scripts/object/tangible/loot/quest/hero_of_tatooine/squill_skull.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/hero_of_tatooine/squill_skull.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/hero_of_tatooine/squill_skull_pile.py b/scripts/object/tangible/loot/quest/hero_of_tatooine/squill_skull_pile.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/hero_of_tatooine/squill_skull_pile.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/huff_quest_borvos_money.py b/scripts/object/tangible/loot/quest/huff_quest_borvos_money.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/huff_quest_borvos_money.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/huff_quest_corsec_badge.py b/scripts/object/tangible/loot/quest/huff_quest_corsec_badge.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/huff_quest_corsec_badge.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/huff_quest_top_secret_documents.py b/scripts/object/tangible/loot/quest/huff_quest_top_secret_documents.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/huff_quest_top_secret_documents.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/hvy_disruptor_cannon_broken.py b/scripts/object/tangible/loot/quest/hvy_disruptor_cannon_broken.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/hvy_disruptor_cannon_broken.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/lance_nightsister_schematic.py b/scripts/object/tangible/loot/quest/lance_nightsister_schematic.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/lance_nightsister_schematic.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/levelup_lifeday_orb.py b/scripts/object/tangible/loot/quest/levelup_lifeday_orb.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/levelup_lifeday_orb.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/lifeday_orb.py b/scripts/object/tangible/loot/quest/lifeday_orb.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/lifeday_orb.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/lost_squadron_core_1.py b/scripts/object/tangible/loot/quest/lost_squadron_core_1.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/lost_squadron_core_1.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/lost_squadron_core_2.py b/scripts/object/tangible/loot/quest/lost_squadron_core_2.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/lost_squadron_core_2.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/lost_squadron_core_3.py b/scripts/object/tangible/loot/quest/lost_squadron_core_3.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/lost_squadron_core_3.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/lost_squadron_core_4.py b/scripts/object/tangible/loot/quest/lost_squadron_core_4.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/lost_squadron_core_4.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/lost_squadron_core_5.py b/scripts/object/tangible/loot/quest/lost_squadron_core_5.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/lost_squadron_core_5.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/lost_squadron_core_6.py b/scripts/object/tangible/loot/quest/lost_squadron_core_6.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/lost_squadron_core_6.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/mind_pod_blood.py b/scripts/object/tangible/loot/quest/mind_pod_blood.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/mind_pod_blood.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/mind_pod_brain.py b/scripts/object/tangible/loot/quest/mind_pod_brain.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/mind_pod_brain.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/mind_pod_eye.py b/scripts/object/tangible/loot/quest/mind_pod_eye.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/mind_pod_eye.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/mind_pod_guts.py b/scripts/object/tangible/loot/quest/mind_pod_guts.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/mind_pod_guts.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/mind_pod_parasites.py b/scripts/object/tangible/loot/quest/mind_pod_parasites.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/mind_pod_parasites.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/mind_pod_sac.py b/scripts/object/tangible/loot/quest/mind_pod_sac.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/mind_pod_sac.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/mind_pod_slime.py b/scripts/object/tangible/loot/quest/mind_pod_slime.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/mind_pod_slime.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/mind_pod_stomach.py b/scripts/object/tangible/loot/quest/mind_pod_stomach.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/mind_pod_stomach.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/myyydril_sword_quest_01.py b/scripts/object/tangible/loot/quest/myyydril_sword_quest_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/myyydril_sword_quest_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/naktra_crystal.py b/scripts/object/tangible/loot/quest/naktra_crystal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/naktra_crystal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/nova_orion/stuffed_star_destroyer.py b/scripts/object/tangible/loot/quest/nova_orion/stuffed_star_destroyer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/nova_orion/stuffed_star_destroyer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/nova_orion/stuffed_star_destroyer_quest_item.py b/scripts/object/tangible/loot/quest/nova_orion/stuffed_star_destroyer_quest_item.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/nova_orion/stuffed_star_destroyer_quest_item.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/npe/npe_artisan_metal_plate.py b/scripts/object/tangible/loot/quest/npe/npe_artisan_metal_plate.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/npe/npe_artisan_metal_plate.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/npe_journal.py b/scripts/object/tangible/loot/quest/npe_journal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/npe_journal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/nym_droid_memory_chip.py b/scripts/object/tangible/loot/quest/nym_droid_memory_chip.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/nym_droid_memory_chip.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/nym_filtered_gas.py b/scripts/object/tangible/loot/quest/nym_filtered_gas.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/nym_filtered_gas.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/nym_hard_drive.py b/scripts/object/tangible/loot/quest/nym_hard_drive.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/nym_hard_drive.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/nym_imggc.py b/scripts/object/tangible/loot/quest/nym_imggc.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/nym_imggc.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/ostrine.py b/scripts/object/tangible/loot/quest/ostrine.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/ostrine.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/poi_tree_spawner.py b/scripts/object/tangible/loot/quest/poi_tree_spawner.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/poi_tree_spawner.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/prolog_content_science_datapad.py b/scripts/object/tangible/loot/quest/prolog_content_science_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/prolog_content_science_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/quest_item_goru_calling_card.py b/scripts/object/tangible/loot/quest/quest_item_goru_calling_card.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/quest_item_goru_calling_card.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/quest_item_sarlacc_bile_jar.py b/scripts/object/tangible/loot/quest/quest_item_sarlacc_bile_jar.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/quest_item_sarlacc_bile_jar.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/quest_item_spice_jar.py b/scripts/object/tangible/loot/quest/quest_item_spice_jar.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/quest_item_spice_jar.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/quest_item_zicx_bug_jar.py b/scripts/object/tangible/loot/quest/quest_item_zicx_bug_jar.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/quest_item_zicx_bug_jar.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/quest_satchel_charge.py b/scripts/object/tangible/loot/quest/quest_satchel_charge.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/quest_satchel_charge.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/quest_stimpack_a_schematic.py b/scripts/object/tangible/loot/quest/quest_stimpack_a_schematic.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/quest_stimpack_a_schematic.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/rifle_quest_tusken.py b/scripts/object/tangible/loot/quest/rifle_quest_tusken.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/rifle_quest_tusken.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/rudic.py b/scripts/object/tangible/loot/quest/rudic.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/rudic.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/runestone.py b/scripts/object/tangible/loot/quest/runestone.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/runestone.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/schematic_apron_s01_quest.py b/scripts/object/tangible/loot/quest/schematic_apron_s01_quest.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/schematic_apron_s01_quest.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/schematic_backpack_s03_quest.py b/scripts/object/tangible/loot/quest/schematic_backpack_s03_quest.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/schematic_backpack_s03_quest.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/schematic_backpack_s06_quest.py b/scripts/object/tangible/loot/quest/schematic_backpack_s06_quest.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/schematic_backpack_s06_quest.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/schematic_bandolier_s02_quest.py b/scripts/object/tangible/loot/quest/schematic_bandolier_s02_quest.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/schematic_bandolier_s02_quest.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/schematic_bandolier_s04_quest.py b/scripts/object/tangible/loot/quest/schematic_bandolier_s04_quest.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/schematic_bandolier_s04_quest.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/schematic_belt_s05_quest.py b/scripts/object/tangible/loot/quest/schematic_belt_s05_quest.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/schematic_belt_s05_quest.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/schematic_carbine_e11_quest.py b/scripts/object/tangible/loot/quest/schematic_carbine_e11_quest.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/schematic_carbine_e11_quest.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/schematic_dress_s08_quest.py b/scripts/object/tangible/loot/quest/schematic_dress_s08_quest.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/schematic_dress_s08_quest.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/schematic_pistol_fwg5_quest.py b/scripts/object/tangible/loot/quest/schematic_pistol_fwg5_quest.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/schematic_pistol_fwg5_quest.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/schematic_republic_blaster_quest.py b/scripts/object/tangible/loot/quest/schematic_republic_blaster_quest.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/schematic_republic_blaster_quest.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/sean_campaign_disk.py b/scripts/object/tangible/loot/quest/sean_campaign_disk.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/sean_campaign_disk.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/sean_history_disk.py b/scripts/object/tangible/loot/quest/sean_history_disk.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/sean_history_disk.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/sean_questn_alog.py b/scripts/object/tangible/loot/quest/sean_questn_alog.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/sean_questn_alog.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/sean_questn_gpapers.py b/scripts/object/tangible/loot/quest/sean_questn_gpapers.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/sean_questn_gpapers.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/sean_questn_tdisk.py b/scripts/object/tangible/loot/quest/sean_questn_tdisk.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/sean_questn_tdisk.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/sean_questp_ctestimony.py b/scripts/object/tangible/loot/quest/sean_questp_ctestimony.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/sean_questp_ctestimony.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/sean_questp_htestimony.py b/scripts/object/tangible/loot/quest/sean_questp_htestimony.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/sean_questp_htestimony.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/sean_questp_mdisk.py b/scripts/object/tangible/loot/quest/sean_questp_mdisk.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/sean_questp_mdisk.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/shellfish_harvester_schematic.py b/scripts/object/tangible/loot/quest/shellfish_harvester_schematic.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/shellfish_harvester_schematic.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/shield_generator_personal_imperial_test_schematic.py b/scripts/object/tangible/loot/quest/shield_generator_personal_imperial_test_schematic.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/shield_generator_personal_imperial_test_schematic.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/smooth_stone.py b/scripts/object/tangible/loot/quest/smooth_stone.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/smooth_stone.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/treasure_map_hedon.py b/scripts/object/tangible/loot/quest/treasure_map_hedon.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/treasure_map_hedon.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/tusken_head.py b/scripts/object/tangible/loot/quest/tusken_head.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/tusken_head.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/valarian_dagger.py b/scripts/object/tangible/loot/quest/valarian_dagger.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/valarian_dagger.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/victor_campaign_disk.py b/scripts/object/tangible/loot/quest/victor_campaign_disk.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/victor_campaign_disk.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/victor_questn_dseal.py b/scripts/object/tangible/loot/quest/victor_questn_dseal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/victor_questn_dseal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/victor_questn_hlist.py b/scripts/object/tangible/loot/quest/victor_questn_hlist.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/victor_questn_hlist.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/victor_questn_journal.py b/scripts/object/tangible/loot/quest/victor_questn_journal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/victor_questn_journal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/victor_questp_jregistry.py b/scripts/object/tangible/loot/quest/victor_questp_jregistry.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/victor_questp_jregistry.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/victor_questp_receipt.py b/scripts/object/tangible/loot/quest/victor_questp_receipt.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/victor_questp_receipt.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/victor_questp_testimony.py b/scripts/object/tangible/loot/quest/victor_questp_testimony.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/victor_questp_testimony.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/loot/quest/wind_crystal.py b/scripts/object/tangible/loot/quest/wind_crystal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/loot/quest/wind_crystal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/mission/mission_bounty_droid_probot.py b/scripts/object/tangible/mission/mission_bounty_droid_probot.py
index ccad8904..4b30916a 100644
--- a/scripts/object/tangible/mission/mission_bounty_droid_probot.py
+++ b/scripts/object/tangible/mission/mission_bounty_droid_probot.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'npc/bounty_probot')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/mission/mission_bounty_droid_seeker.py b/scripts/object/tangible/mission/mission_bounty_droid_seeker.py
index ccad8904..516734c3 100644
--- a/scripts/object/tangible/mission/mission_bounty_droid_seeker.py
+++ b/scripts/object/tangible/mission/mission_bounty_droid_seeker.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'npc/bounty_seeker')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/bestine_quest_painting.py b/scripts/object/tangible/painting/bestine_quest_painting.py
index ccad8904..0cc5dde7 100644
--- a/scripts/object/tangible/painting/bestine_quest_painting.py
+++ b/scripts/object/tangible/painting/bestine_quest_painting.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #rare painting (Dath Prison)
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_agrilat_s01.py b/scripts/object/tangible/painting/painting_agrilat_s01.py
index ccad8904..15216761 100644
--- a/scripts/object/tangible/painting/painting_agrilat_s01.py
+++ b/scripts/object/tangible/painting/painting_agrilat_s01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Landscape of the Agrilat Swamp
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_armor_blueprint.py b/scripts/object/tangible/painting/painting_armor_blueprint.py
index ccad8904..3a03b8f4 100644
--- a/scripts/object/tangible/painting/painting_armor_blueprint.py
+++ b/scripts/object/tangible/painting/painting_armor_blueprint.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #RIS-one Sheet
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bestine_blueleaf_temple.py b/scripts/object/tangible/painting/painting_bestine_blueleaf_temple.py
index ccad8904..2656a516 100644
--- a/scripts/object/tangible/painting/painting_bestine_blueleaf_temple.py
+++ b/scripts/object/tangible/painting/painting_bestine_blueleaf_temple.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Painting of the Blue Leaf Temple
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bestine_blumbush.py b/scripts/object/tangible/painting/painting_bestine_blumbush.py
index ccad8904..07b60db5 100644
--- a/scripts/object/tangible/painting/painting_bestine_blumbush.py
+++ b/scripts/object/tangible/painting/painting_bestine_blumbush.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Painting of a Blumbush
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bestine_boffa.py b/scripts/object/tangible/painting/painting_bestine_boffa.py
index ccad8904..f7c9da0d 100644
--- a/scripts/object/tangible/painting/painting_bestine_boffa.py
+++ b/scripts/object/tangible/painting/painting_bestine_boffa.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Painting of a Boffa Plant
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bestine_golden_flower_01.py b/scripts/object/tangible/painting/painting_bestine_golden_flower_01.py
index ccad8904..d434b0cc 100644
--- a/scripts/object/tangible/painting/painting_bestine_golden_flower_01.py
+++ b/scripts/object/tangible/painting/painting_bestine_golden_flower_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Abstract Painting of Golden Petals 1
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bestine_golden_flower_02.py b/scripts/object/tangible/painting/painting_bestine_golden_flower_02.py
index ccad8904..4e6014c1 100644
--- a/scripts/object/tangible/painting/painting_bestine_golden_flower_02.py
+++ b/scripts/object/tangible/painting/painting_bestine_golden_flower_02.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Abstract Painting of Golden Petals 2
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bestine_golden_flower_03.py b/scripts/object/tangible/painting/painting_bestine_golden_flower_03.py
index ccad8904..3cfb6fb7 100644
--- a/scripts/object/tangible/painting/painting_bestine_golden_flower_03.py
+++ b/scripts/object/tangible/painting/painting_bestine_golden_flower_03.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Abstract Painting of Golden Petals 3
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bestine_house.py b/scripts/object/tangible/painting/painting_bestine_house.py
index ccad8904..78d4a484 100644
--- a/scripts/object/tangible/painting/painting_bestine_house.py
+++ b/scripts/object/tangible/painting/painting_bestine_house.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Painting of a Residential House
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bestine_krayt_skeleton.py b/scripts/object/tangible/painting/painting_bestine_krayt_skeleton.py
index ccad8904..a766be30 100644
--- a/scripts/object/tangible/painting/painting_bestine_krayt_skeleton.py
+++ b/scripts/object/tangible/painting/painting_bestine_krayt_skeleton.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Painting of a Krayt Dragon Skeleton
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bestine_lucky_despot.py b/scripts/object/tangible/painting/painting_bestine_lucky_despot.py
index ccad8904..826cf6ba 100644
--- a/scripts/object/tangible/painting/painting_bestine_lucky_despot.py
+++ b/scripts/object/tangible/painting/painting_bestine_lucky_despot.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Painting of the Lucky Despot Wreckage
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bestine_mattberry.py b/scripts/object/tangible/painting/painting_bestine_mattberry.py
index ccad8904..3263118d 100644
--- a/scripts/object/tangible/painting/painting_bestine_mattberry.py
+++ b/scripts/object/tangible/painting/painting_bestine_mattberry.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Painting of a Mattberry Plant
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bestine_moncal_eye_01.py b/scripts/object/tangible/painting/painting_bestine_moncal_eye_01.py
index ccad8904..57e13209 100644
--- a/scripts/object/tangible/painting/painting_bestine_moncal_eye_01.py
+++ b/scripts/object/tangible/painting/painting_bestine_moncal_eye_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Painting of a Moncal eye 1
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bestine_moncal_eye_02.py b/scripts/object/tangible/painting/painting_bestine_moncal_eye_02.py
index ccad8904..bfff1499 100644
--- a/scripts/object/tangible/painting/painting_bestine_moncal_eye_02.py
+++ b/scripts/object/tangible/painting/painting_bestine_moncal_eye_02.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Painting of a moncal eye 2
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bestine_rainbow_berry_bush.py b/scripts/object/tangible/painting/painting_bestine_rainbow_berry_bush.py
index ccad8904..d832a864 100644
--- a/scripts/object/tangible/painting/painting_bestine_rainbow_berry_bush.py
+++ b/scripts/object/tangible/painting/painting_bestine_rainbow_berry_bush.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Painting of a Ranbow Berry Bush
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bestine_raventhorn.py b/scripts/object/tangible/painting/painting_bestine_raventhorn.py
index ccad8904..f9cd757f 100644
--- a/scripts/object/tangible/painting/painting_bestine_raventhorn.py
+++ b/scripts/object/tangible/painting/painting_bestine_raventhorn.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Painting of a Raventhorn Plant
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bestine_ronka.py b/scripts/object/tangible/painting/painting_bestine_ronka.py
index ccad8904..45c9bf5e 100644
--- a/scripts/object/tangible/painting/painting_bestine_ronka.py
+++ b/scripts/object/tangible/painting/painting_bestine_ronka.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Painting of a Ronka Plant
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bioengineer_orange.py b/scripts/object/tangible/painting/painting_bioengineer_orange.py
index ccad8904..2835c34b 100644
--- a/scripts/object/tangible/painting/painting_bioengineer_orange.py
+++ b/scripts/object/tangible/painting/painting_bioengineer_orange.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Bio-Engineer Poster
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bothan_f.py b/scripts/object/tangible/painting/painting_bothan_f.py
index ccad8904..da748f3c 100644
--- a/scripts/object/tangible/painting/painting_bothan_f.py
+++ b/scripts/object/tangible/painting/painting_bothan_f.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Bothan Beauty
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bothan_m.py b/scripts/object/tangible/painting/painting_bothan_m.py
index ccad8904..f73400e8 100644
--- a/scripts/object/tangible/painting/painting_bothan_m.py
+++ b/scripts/object/tangible/painting/painting_bothan_m.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Bothan Buff
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_bw_stormtrooper.py b/scripts/object/tangible/painting/painting_bw_stormtrooper.py
index ccad8904..66324644 100644
--- a/scripts/object/tangible/painting/painting_bw_stormtrooper.py
+++ b/scripts/object/tangible/painting/painting_bw_stormtrooper.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #No Division
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_cargoport.py b/scripts/object/tangible/painting/painting_cargoport.py
index ccad8904..29430a79 100644
--- a/scripts/object/tangible/painting/painting_cargoport.py
+++ b/scripts/object/tangible/painting/painting_cargoport.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Cargoport Blueprint
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_chp5.py b/scripts/object/tangible/painting/painting_chp5.py
index ccad8904..25ca8ace 100644
--- a/scripts/object/tangible/painting/painting_chp5.py
+++ b/scripts/object/tangible/painting/painting_chp5.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ # A painting (Around the Campfire)
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_clone_trooper_01.py b/scripts/object/tangible/painting/painting_clone_trooper_01.py
index ccad8904..53b8f5e5 100644
--- a/scripts/object/tangible/painting/painting_clone_trooper_01.py
+++ b/scripts/object/tangible/painting/painting_clone_trooper_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Clone Wars Painting
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_corl_01.py b/scripts/object/tangible/painting/painting_corl_01.py
index ccad8904..c6bad819 100644
--- a/scripts/object/tangible/painting/painting_corl_01.py
+++ b/scripts/object/tangible/painting/painting_corl_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #No name Corellia Fields
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_corl_02.py b/scripts/object/tangible/painting/painting_corl_02.py
index ccad8904..26bddda6 100644
--- a/scripts/object/tangible/painting/painting_corl_02.py
+++ b/scripts/object/tangible/painting/painting_corl_02.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #No name Corellia Beach
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_dance_party.py b/scripts/object/tangible/painting/painting_dance_party.py
index ccad8904..12016a86 100644
--- a/scripts/object/tangible/painting/painting_dance_party.py
+++ b/scripts/object/tangible/painting/painting_dance_party.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Party Poster / Dance Party
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_double_helix.py b/scripts/object/tangible/painting/painting_double_helix.py
index ccad8904..cca6b071 100644
--- a/scripts/object/tangible/painting/painting_double_helix.py
+++ b/scripts/object/tangible/painting/painting_double_helix.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Double Helix
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_droid_bright.py b/scripts/object/tangible/painting/painting_droid_bright.py
index ccad8904..04e8bc64 100644
--- a/scripts/object/tangible/painting/painting_droid_bright.py
+++ b/scripts/object/tangible/painting/painting_droid_bright.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Droid in Contrast
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_endor_style_01.py b/scripts/object/tangible/painting/painting_endor_style_01.py
index ccad8904..038c4d3f 100644
--- a/scripts/object/tangible/painting/painting_endor_style_01.py
+++ b/scripts/object/tangible/painting/painting_endor_style_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Painting (Endor Landscape)
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_fighter_pilot_human_01.py b/scripts/object/tangible/painting/painting_fighter_pilot_human_01.py
index ccad8904..f2ddba2c 100644
--- a/scripts/object/tangible/painting/painting_fighter_pilot_human_01.py
+++ b/scripts/object/tangible/painting/painting_fighter_pilot_human_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Star Pilot
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_food_baking_s01.py b/scripts/object/tangible/painting/painting_food_baking_s01.py
index ccad8904..704b3a4f 100644
--- a/scripts/object/tangible/painting/painting_food_baking_s01.py
+++ b/scripts/object/tangible/painting/painting_food_baking_s01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Poster of Food Preperation
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_food_baking_s02.py b/scripts/object/tangible/painting/painting_food_baking_s02.py
index ccad8904..704b3a4f 100644
--- a/scripts/object/tangible/painting/painting_food_baking_s02.py
+++ b/scripts/object/tangible/painting/painting_food_baking_s02.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Poster of Food Preperation
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_freedom.py b/scripts/object/tangible/painting/painting_freedom.py
index ccad8904..2bcfc31c 100644
--- a/scripts/object/tangible/painting/painting_freedom.py
+++ b/scripts/object/tangible/painting/painting_freedom.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ # Freedom (Glorious Scrifice)
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_grievous_01.py b/scripts/object/tangible/painting/painting_grievous_01.py
index ccad8904..53b8f5e5 100644
--- a/scripts/object/tangible/painting/painting_grievous_01.py
+++ b/scripts/object/tangible/painting/painting_grievous_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Clone Wars Painting
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_han_wanted.py b/scripts/object/tangible/painting/painting_han_wanted.py
index ccad8904..fbee5cde 100644
--- a/scripts/object/tangible/painting/painting_han_wanted.py
+++ b/scripts/object/tangible/painting/painting_han_wanted.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Han Solo Wanted Poster
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_heroic_exar_kun_ultra_rare.py b/scripts/object/tangible/painting/painting_heroic_exar_kun_ultra_rare.py
index ccad8904..c1b12e4a 100644
--- a/scripts/object/tangible/painting/painting_heroic_exar_kun_ultra_rare.py
+++ b/scripts/object/tangible/painting/painting_heroic_exar_kun_ultra_rare.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Exar Kun Mural
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_house_cleanup_imperial.py b/scripts/object/tangible/painting/painting_house_cleanup_imperial.py
index ccad8904..9b068b30 100644
--- a/scripts/object/tangible/painting/painting_house_cleanup_imperial.py
+++ b/scripts/object/tangible/painting/painting_house_cleanup_imperial.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Birth of a Death Star
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_house_cleanup_rebel.py b/scripts/object/tangible/painting/painting_house_cleanup_rebel.py
index ccad8904..0662a93a 100644
--- a/scripts/object/tangible/painting/painting_house_cleanup_rebel.py
+++ b/scripts/object/tangible/painting/painting_house_cleanup_rebel.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #The War Pheonix
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_human_f.py b/scripts/object/tangible/painting/painting_human_f.py
index ccad8904..b4e398ba 100644
--- a/scripts/object/tangible/painting/painting_human_f.py
+++ b/scripts/object/tangible/painting/painting_human_f.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Despair's Lady
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_kite_plant.py b/scripts/object/tangible/painting/painting_kite_plant.py
index ccad8904..292481ec 100644
--- a/scripts/object/tangible/painting/painting_kite_plant.py
+++ b/scripts/object/tangible/painting/painting_kite_plant.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Still-Life Kite Plant
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_leia_wanted.py b/scripts/object/tangible/painting/painting_leia_wanted.py
index ccad8904..2999ebc9 100644
--- a/scripts/object/tangible/painting/painting_leia_wanted.py
+++ b/scripts/object/tangible/painting/painting_leia_wanted.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Leia Wanted Poster
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_loot_heroic_exar_kun.py b/scripts/object/tangible/painting/painting_loot_heroic_exar_kun.py
index ccad8904..75ee42fb 100644
--- a/scripts/object/tangible/painting/painting_loot_heroic_exar_kun.py
+++ b/scripts/object/tangible/painting/painting_loot_heroic_exar_kun.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #An Exar Kun Fresco
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_luke_wanted.py b/scripts/object/tangible/painting/painting_luke_wanted.py
index ccad8904..b08d64c1 100644
--- a/scripts/object/tangible/painting/painting_luke_wanted.py
+++ b/scripts/object/tangible/painting/painting_luke_wanted.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Luke Wanted Poster
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_nebula_flower.py b/scripts/object/tangible/painting/painting_nebula_flower.py
index ccad8904..25efc1c1 100644
--- a/scripts/object/tangible/painting/painting_nebula_flower.py
+++ b/scripts/object/tangible/painting/painting_nebula_flower.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #painting of the Blue Leaf Temple (Flower)
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_outbreak_biohazard_01.py b/scripts/object/tangible/painting/painting_outbreak_biohazard_01.py
index ccad8904..0221f0d4 100644
--- a/scripts/object/tangible/painting/painting_outbreak_biohazard_01.py
+++ b/scripts/object/tangible/painting/painting_outbreak_biohazard_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Caution
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_outbreak_biohazard_02.py b/scripts/object/tangible/painting/painting_outbreak_biohazard_02.py
index ccad8904..88b386ce 100644
--- a/scripts/object/tangible/painting/painting_outbreak_biohazard_02.py
+++ b/scripts/object/tangible/painting/painting_outbreak_biohazard_02.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #No name Biohazard Sign
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_outbreak_biohazard_03.py b/scripts/object/tangible/painting/painting_outbreak_biohazard_03.py
index ccad8904..d883ae49 100644
--- a/scripts/object/tangible/painting/painting_outbreak_biohazard_03.py
+++ b/scripts/object/tangible/painting/painting_outbreak_biohazard_03.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Biohazard
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_palowick_ad_s01.py b/scripts/object/tangible/painting/painting_palowick_ad_s01.py
index ccad8904..2e3f2658 100644
--- a/scripts/object/tangible/painting/painting_palowick_ad_s01.py
+++ b/scripts/object/tangible/painting/painting_palowick_ad_s01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Advertisement (laying down in the sun)
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_palowick_ad_s02.py b/scripts/object/tangible/painting/painting_palowick_ad_s02.py
index ccad8904..822108e5 100644
--- a/scripts/object/tangible/painting/painting_palowick_ad_s02.py
+++ b/scripts/object/tangible/painting/painting_palowick_ad_s02.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Advertisement (laying down in the sun)
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_palowick_ad_s03.py b/scripts/object/tangible/painting/painting_palowick_ad_s03.py
index ccad8904..822108e5 100644
--- a/scripts/object/tangible/painting/painting_palowick_ad_s03.py
+++ b/scripts/object/tangible/painting/painting_palowick_ad_s03.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Advertisement (laying down in the sun)
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_palowick_ad_s04.py b/scripts/object/tangible/painting/painting_palowick_ad_s04.py
index ccad8904..822108e5 100644
--- a/scripts/object/tangible/painting/painting_palowick_ad_s04.py
+++ b/scripts/object/tangible/painting/painting_palowick_ad_s04.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Advertisement (laying down in the sun)
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_planet_s01.py b/scripts/object/tangible/painting/painting_planet_s01.py
index ccad8904..e894505e 100644
--- a/scripts/object/tangible/painting/painting_planet_s01.py
+++ b/scripts/object/tangible/painting/painting_planet_s01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Space Painting Sunrise
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_pvp_reward_imperial.py b/scripts/object/tangible/painting/painting_pvp_reward_imperial.py
index ccad8904..1914d9c0 100644
--- a/scripts/object/tangible/painting/painting_pvp_reward_imperial.py
+++ b/scripts/object/tangible/painting/painting_pvp_reward_imperial.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #No name (Palpatine and Star Destroyers)
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_pvp_reward_rebel.py b/scripts/object/tangible/painting/painting_pvp_reward_rebel.py
index ccad8904..2113f9c2 100644
--- a/scripts/object/tangible/painting/painting_pvp_reward_rebel.py
+++ b/scripts/object/tangible/painting/painting_pvp_reward_rebel.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #No name (Cruiser Escort)
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_rodian_f.py b/scripts/object/tangible/painting/painting_rodian_f.py
index ccad8904..ca3f0dab 100644
--- a/scripts/object/tangible/painting/painting_rodian_f.py
+++ b/scripts/object/tangible/painting/painting_rodian_f.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Feared
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_rodian_f_ad_01.py b/scripts/object/tangible/painting/painting_rodian_f_ad_01.py
index ccad8904..e09fa82d 100644
--- a/scripts/object/tangible/painting/painting_rodian_f_ad_01.py
+++ b/scripts/object/tangible/painting/painting_rodian_f_ad_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Advertisement (Where the Fun's at.)
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_rodian_m.py b/scripts/object/tangible/painting/painting_rodian_m.py
index ccad8904..c178074f 100644
--- a/scripts/object/tangible/painting/painting_rodian_m.py
+++ b/scripts/object/tangible/painting/painting_rodian_m.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Fighter
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_schematic_droid.py b/scripts/object/tangible/painting/painting_schematic_droid.py
index ccad8904..d1368619 100644
--- a/scripts/object/tangible/painting/painting_schematic_droid.py
+++ b/scripts/object/tangible/painting/painting_schematic_droid.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Poster of a Mouse Droid Schematic
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_schematic_transport_ship.py b/scripts/object/tangible/painting/painting_schematic_transport_ship.py
index ccad8904..9d3cb116 100644
--- a/scripts/object/tangible/painting/painting_schematic_transport_ship.py
+++ b/scripts/object/tangible/painting/painting_schematic_transport_ship.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Poster of a Ship Schematic
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_schematic_weapon.py b/scripts/object/tangible/painting/painting_schematic_weapon.py
index ccad8904..3993679b 100644
--- a/scripts/object/tangible/painting/painting_schematic_weapon.py
+++ b/scripts/object/tangible/painting/painting_schematic_weapon.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Poster of a Turret Schematic
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_schematic_weapon_s03.py b/scripts/object/tangible/painting/painting_schematic_weapon_s03.py
index ccad8904..397737fc 100644
--- a/scripts/object/tangible/painting/painting_schematic_weapon_s03.py
+++ b/scripts/object/tangible/painting/painting_schematic_weapon_s03.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Poster of a Block Turret Schematic
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_skyscraper.py b/scripts/object/tangible/painting/painting_skyscraper.py
index ccad8904..fdc4b355 100644
--- a/scripts/object/tangible/painting/painting_skyscraper.py
+++ b/scripts/object/tangible/painting/painting_skyscraper.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Coronet Skyscraper Blueprint
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_smoking_ad.py b/scripts/object/tangible/painting/painting_smoking_ad.py
index ccad8904..76edcdc9 100644
--- a/scripts/object/tangible/painting/painting_smoking_ad.py
+++ b/scripts/object/tangible/painting/painting_smoking_ad.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Advertisement (appears to be unfinished)
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_starmap.py b/scripts/object/tangible/painting/painting_starmap.py
index ccad8904..c92f09d9 100644
--- a/scripts/object/tangible/painting/painting_starmap.py
+++ b/scripts/object/tangible/painting/painting_starmap.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Starmap Painting
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_tato_s03.py b/scripts/object/tangible/painting/painting_tato_s03.py
index ccad8904..00d94519 100644
--- a/scripts/object/tangible/painting/painting_tato_s03.py
+++ b/scripts/object/tangible/painting/painting_tato_s03.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Landscape-Tree
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_tato_s04.py b/scripts/object/tangible/painting/painting_tato_s04.py
index ccad8904..c8279d5b 100644
--- a/scripts/object/tangible/painting/painting_tato_s04.py
+++ b/scripts/object/tangible/painting/painting_tato_s04.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Travel Advertisement
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_teras_kasi.py b/scripts/object/tangible/painting/painting_teras_kasi.py
index ccad8904..f2824afd 100644
--- a/scripts/object/tangible/painting/painting_teras_kasi.py
+++ b/scripts/object/tangible/painting/painting_teras_kasi.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Spitting Rawl
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_teras_kasi_2.py b/scripts/object/tangible/painting/painting_teras_kasi_2.py
index ccad8904..b7fa7986 100644
--- a/scripts/object/tangible/painting/painting_teras_kasi_2.py
+++ b/scripts/object/tangible/painting/painting_teras_kasi_2.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Defensive Stance
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_trandoshan_m.py b/scripts/object/tangible/painting/painting_trandoshan_m.py
index ccad8904..6463ff4a 100644
--- a/scripts/object/tangible/painting/painting_trandoshan_m.py
+++ b/scripts/object/tangible/painting/painting_trandoshan_m.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Warriors Honor
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_trandoshan_m_01.py b/scripts/object/tangible/painting/painting_trandoshan_m_01.py
index ccad8904..69ecf5ec 100644
--- a/scripts/object/tangible/painting/painting_trandoshan_m_01.py
+++ b/scripts/object/tangible/painting/painting_trandoshan_m_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Fighters Courage
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_tree.py b/scripts/object/tangible/painting/painting_tree.py
index ccad8904..c79e437f 100644
--- a/scripts/object/tangible/painting/painting_tree.py
+++ b/scripts/object/tangible/painting/painting_tree.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #painting of the Blueleaf Temple (Big Tree)
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_trees_s01.py b/scripts/object/tangible/painting/painting_trees_s01.py
index ccad8904..3490135b 100644
--- a/scripts/object/tangible/painting/painting_trees_s01.py
+++ b/scripts/object/tangible/painting/painting_trees_s01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Life Day Kashyyyk Painting
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_vader_victory.py b/scripts/object/tangible/painting/painting_vader_victory.py
index ccad8904..d485eaa9 100644
--- a/scripts/object/tangible/painting/painting_vader_victory.py
+++ b/scripts/object/tangible/painting/painting_vader_victory.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #VICTORY
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_valley_view.py b/scripts/object/tangible/painting/painting_valley_view.py
index ccad8904..74f26426 100644
--- a/scripts/object/tangible/painting/painting_valley_view.py
+++ b/scripts/object/tangible/painting/painting_valley_view.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Valley View
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_victorious_reign.py b/scripts/object/tangible/painting/painting_victorious_reign.py
index ccad8904..52bc6525 100644
--- a/scripts/object/tangible/painting/painting_victorious_reign.py
+++ b/scripts/object/tangible/painting/painting_victorious_reign.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Victorious Reign
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_waterfall.py b/scripts/object/tangible/painting/painting_waterfall.py
index ccad8904..06913aff 100644
--- a/scripts/object/tangible/painting/painting_waterfall.py
+++ b/scripts/object/tangible/painting/painting_waterfall.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Waterfall
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_wod_ns_01.py b/scripts/object/tangible/painting/painting_wod_ns_01.py
index ccad8904..229cd9f7 100644
--- a/scripts/object/tangible/painting/painting_wod_ns_01.py
+++ b/scripts/object/tangible/painting/painting_wod_ns_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #No name, Fire Pit
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_wod_ns_02.py b/scripts/object/tangible/painting/painting_wod_ns_02.py
index ccad8904..888768e2 100644
--- a/scripts/object/tangible/painting/painting_wod_ns_02.py
+++ b/scripts/object/tangible/painting/painting_wod_ns_02.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #No name, NS Close-Up
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_wod_outcast.py b/scripts/object/tangible/painting/painting_wod_outcast.py
index ccad8904..e550f02c 100644
--- a/scripts/object/tangible/painting/painting_wod_outcast.py
+++ b/scripts/object/tangible/painting/painting_wod_outcast.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Outcast
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_wod_scene_01.py b/scripts/object/tangible/painting/painting_wod_scene_01.py
index ccad8904..f412873a 100644
--- a/scripts/object/tangible/painting/painting_wod_scene_01.py
+++ b/scripts/object/tangible/painting/painting_wod_scene_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #no name, Swamp
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_wod_scene_02.py b/scripts/object/tangible/painting/painting_wod_scene_02.py
index ccad8904..c0665552 100644
--- a/scripts/object/tangible/painting/painting_wod_scene_02.py
+++ b/scripts/object/tangible/painting/painting_wod_scene_02.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #no name, Trees
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_wod_scene_03.py b/scripts/object/tangible/painting/painting_wod_scene_03.py
index ccad8904..013a0b4b 100644
--- a/scripts/object/tangible/painting/painting_wod_scene_03.py
+++ b/scripts/object/tangible/painting/painting_wod_scene_03.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #no name, House Entrance
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_wod_scene_04.py b/scripts/object/tangible/painting/painting_wod_scene_04.py
index ccad8904..b7d37c0d 100644
--- a/scripts/object/tangible/painting/painting_wod_scene_04.py
+++ b/scripts/object/tangible/painting/painting_wod_scene_04.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #no name, Rock Formation
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_wod_sm_01.py b/scripts/object/tangible/painting/painting_wod_sm_01.py
index ccad8904..8efd8df2 100644
--- a/scripts/object/tangible/painting/painting_wod_sm_01.py
+++ b/scripts/object/tangible/painting/painting_wod_sm_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Singing Mountain Clan Tapestry
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_wod_sm_02.py b/scripts/object/tangible/painting/painting_wod_sm_02.py
index ccad8904..c3c749e8 100644
--- a/scripts/object/tangible/painting/painting_wod_sm_02.py
+++ b/scripts/object/tangible/painting/painting_wod_sm_02.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Singing Mountain Clan Tapestry (closeup_
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_wookiee_f.py b/scripts/object/tangible/painting/painting_wookiee_f.py
index ccad8904..b63f1322 100644
--- a/scripts/object/tangible/painting/painting_wookiee_f.py
+++ b/scripts/object/tangible/painting/painting_wookiee_f.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Life Day Matriarch
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_wookiee_m.py b/scripts/object/tangible/painting/painting_wookiee_m.py
index ccad8904..8d24228a 100644
--- a/scripts/object/tangible/painting/painting_wookiee_m.py
+++ b/scripts/object/tangible/painting/painting_wookiee_m.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Life Day Patriarch
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_zabrak_f.py b/scripts/object/tangible/painting/painting_zabrak_f.py
index ccad8904..4ce9f757 100644
--- a/scripts/object/tangible/painting/painting_zabrak_f.py
+++ b/scripts/object/tangible/painting/painting_zabrak_f.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Painting of Lady T'Iani
\ No newline at end of file
diff --git a/scripts/object/tangible/painting/painting_zabrak_m.py b/scripts/object/tangible/painting/painting_zabrak_m.py
index ccad8904..f991f709 100644
--- a/scripts/object/tangible/painting/painting_zabrak_m.py
+++ b/scripts/object/tangible/painting/painting_zabrak_m.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #painting of High Commander T'Inia
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/ac_quest_loc3_bacta_tank.py b/scripts/object/tangible/quest/ac_quest_loc3_bacta_tank.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/ac_quest_loc3_bacta_tank.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/ac_quest_loc4_supervisors_desk.py b/scripts/object/tangible/quest/ac_quest_loc4_supervisors_desk.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/ac_quest_loc4_supervisors_desk.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/ac_quest_loc5_memorial.py b/scripts/object/tangible/quest/ac_quest_loc5_memorial.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/ac_quest_loc5_memorial.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/ac_quest_loc6_emberlene_essence.py b/scripts/object/tangible/quest/ac_quest_loc6_emberlene_essence.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/ac_quest_loc6_emberlene_essence.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/ac_rotting_dune_bramble.py b/scripts/object/tangible/quest/ac_rotting_dune_bramble.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/ac_rotting_dune_bramble.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/ac_terminal_loc1_01.py b/scripts/object/tangible/quest/ac_terminal_loc1_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/ac_terminal_loc1_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/ac_terminal_loc1_02.py b/scripts/object/tangible/quest/ac_terminal_loc1_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/ac_terminal_loc1_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/ac_terminal_loc2_01.py b/scripts/object/tangible/quest/ac_terminal_loc2_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/ac_terminal_loc2_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/ac_terminal_loc2_02.py b/scripts/object/tangible/quest/ac_terminal_loc2_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/ac_terminal_loc2_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/ac_terminal_loc3_03.py b/scripts/object/tangible/quest/ac_terminal_loc3_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/ac_terminal_loc3_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/ac_terminal_loc4_04.py b/scripts/object/tangible/quest/ac_terminal_loc4_04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/ac_terminal_loc4_04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/ac_terminal_loc5_05.py b/scripts/object/tangible/quest/ac_terminal_loc5_05.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/ac_terminal_loc5_05.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/ac_terminal_loc6_01.py b/scripts/object/tangible/quest/ac_terminal_loc6_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/ac_terminal_loc6_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/avatar_cold_storage.py b/scripts/object/tangible/quest/avatar_cold_storage.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/avatar_cold_storage.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/avatar_foot_locker.py b/scripts/object/tangible/quest/avatar_foot_locker.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/avatar_foot_locker.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/avatar_locker_sr71.py b/scripts/object/tangible/quest/avatar_locker_sr71.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/avatar_locker_sr71.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/avatar_medical_records.py b/scripts/object/tangible/quest/avatar_medical_records.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/avatar_medical_records.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/avatar_safety_01.py b/scripts/object/tangible/quest/avatar_safety_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/avatar_safety_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/avatar_safety_02.py b/scripts/object/tangible/quest/avatar_safety_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/avatar_safety_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/avatar_storage_case.py b/scripts/object/tangible/quest/avatar_storage_case.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/avatar_storage_case.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/avatar_warm_storage.py b/scripts/object/tangible/quest/avatar_warm_storage.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/avatar_warm_storage.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/azure_cabal_proptis_necklace.py b/scripts/object/tangible/quest/azure_cabal_proptis_necklace.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/azure_cabal_proptis_necklace.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/azure_cabal_proptis_purse.py b/scripts/object/tangible/quest/azure_cabal_proptis_purse.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/azure_cabal_proptis_purse.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/blooming_sapflower.py b/scripts/object/tangible/quest/blooming_sapflower.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/blooming_sapflower.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/bounty_hunter_1_death.py b/scripts/object/tangible/quest/bounty_hunter_1_death.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/bounty_hunter_1_death.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/bounty_hunter_1_drugs.py b/scripts/object/tangible/quest/bounty_hunter_1_drugs.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/bounty_hunter_1_drugs.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/bounty_hunter_1_flower.py b/scripts/object/tangible/quest/bounty_hunter_1_flower.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/bounty_hunter_1_flower.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/bounty_hunter_2_datapad.py b/scripts/object/tangible/quest/bounty_hunter_2_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/bounty_hunter_2_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/bounty_hunter_2_death.py b/scripts/object/tangible/quest/bounty_hunter_2_death.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/bounty_hunter_2_death.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/box_large.py b/scripts/object/tangible/quest/box_large.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/box_large.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/box_magseal.py b/scripts/object/tangible/quest/box_magseal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/box_magseal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/camp_crate.py b/scripts/object/tangible/quest/camp_crate.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/camp_crate.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/cb_1_deflarian_communication_terminal.py b/scripts/object/tangible/quest/cb_1_deflarian_communication_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/cb_1_deflarian_communication_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/cb_1_medical_equipment.py b/scripts/object/tangible/quest/cb_1_medical_equipment.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/cb_1_medical_equipment.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/cb_3_weapon_container.py b/scripts/object/tangible/quest/cb_3_weapon_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/cb_3_weapon_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/clone_relics_box_large.py b/scripts/object/tangible/quest/clone_relics_box_large.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/clone_relics_box_large.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/clone_relics_box_magseal.py b/scripts/object/tangible/quest/clone_relics_box_magseal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/clone_relics_box_magseal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/clone_relics_computer_terminal.py b/scripts/object/tangible/quest/clone_relics_computer_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/clone_relics_computer_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/clone_relics_skeleton_human.py b/scripts/object/tangible/quest/clone_relics_skeleton_human.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/clone_relics_skeleton_human.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/clone_relics_starmap_box.py b/scripts/object/tangible/quest/clone_relics_starmap_box.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/clone_relics_starmap_box.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/col_jedi_robi_dark_jedi_controller.py b/scripts/object/tangible/quest/col_jedi_robi_dark_jedi_controller.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/col_jedi_robi_dark_jedi_controller.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/col_jedi_robi_light_jedi_controller.py b/scripts/object/tangible/quest/col_jedi_robi_light_jedi_controller.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/col_jedi_robi_light_jedi_controller.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/computer_console.py b/scripts/object/tangible/quest/computer_console.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/computer_console.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/computer_databank.py b/scripts/object/tangible/quest/computer_databank.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/computer_databank.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/computer_terminal.py b/scripts/object/tangible/quest/computer_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/computer_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/content/holiday_loveday_barrel.py b/scripts/object/tangible/quest/content/holiday_loveday_barrel.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/content/holiday_loveday_barrel.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/content/holiday_loveday_disillusion_crossbow.py b/scripts/object/tangible/quest/content/holiday_loveday_disillusion_crossbow.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/content/holiday_loveday_disillusion_crossbow.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/coreliian_slaver_narlissas_datapad.py b/scripts/object/tangible/quest/coreliian_slaver_narlissas_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/coreliian_slaver_narlissas_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_braggan_corpse.py b/scripts/object/tangible/quest/corellia/corellia_38_braggan_corpse.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_braggan_corpse.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_braggan_datapad.py b/scripts/object/tangible/quest/corellia/corellia_38_braggan_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_braggan_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_braggan_journal.py b/scripts/object/tangible/quest/corellia/corellia_38_braggan_journal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_braggan_journal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_crate_ryll.py b/scripts/object/tangible/quest/corellia/corellia_38_crate_ryll.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_crate_ryll.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_crate_unrefined_ryll.py b/scripts/object/tangible/quest/corellia/corellia_38_crate_unrefined_ryll.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_crate_unrefined_ryll.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_hershel_blaster.py b/scripts/object/tangible/quest/corellia/corellia_38_hershel_blaster.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_hershel_blaster.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_hershel_corpse.py b/scripts/object/tangible/quest/corellia/corellia_38_hershel_corpse.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_hershel_corpse.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_mayor_package.py b/scripts/object/tangible/quest/corellia/corellia_38_mayor_package.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_mayor_package.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_mayor_terminal.py b/scripts/object/tangible/quest/corellia/corellia_38_mayor_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_mayor_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_meatlump_armor.py b/scripts/object/tangible/quest/corellia/corellia_38_meatlump_armor.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_meatlump_armor.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_meatlump_food.py b/scripts/object/tangible/quest/corellia/corellia_38_meatlump_food.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_meatlump_food.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_meatlump_weapons.py b/scripts/object/tangible/quest/corellia/corellia_38_meatlump_weapons.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_meatlump_weapons.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_paper_scrap.py b/scripts/object/tangible/quest/corellia/corellia_38_paper_scrap.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_paper_scrap.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_pech_seki_bag.py b/scripts/object/tangible/quest/corellia/corellia_38_pech_seki_bag.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_pech_seki_bag.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_pech_seki_strongbox.py b/scripts/object/tangible/quest/corellia/corellia_38_pech_seki_strongbox.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_pech_seki_strongbox.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_red_circle_mainframe.py b/scripts/object/tangible/quest/corellia/corellia_38_red_circle_mainframe.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_red_circle_mainframe.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_ryll_seller_database.py b/scripts/object/tangible/quest/corellia/corellia_38_ryll_seller_database.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_ryll_seller_database.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_ryll_smuggler_mainframe.py b/scripts/object/tangible/quest/corellia/corellia_38_ryll_smuggler_mainframe.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_ryll_smuggler_mainframe.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_stolen_goods.py b/scripts/object/tangible/quest/corellia/corellia_38_stolen_goods.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_stolen_goods.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_transmitter.py b/scripts/object/tangible/quest/corellia/corellia_38_transmitter.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_transmitter.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_38_wilfred_medal.py b/scripts/object/tangible/quest/corellia/corellia_38_wilfred_medal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_38_wilfred_medal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_bio_weapons_database.py b/scripts/object/tangible/quest/corellia/corellia_39_bio_weapons_database.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_bio_weapons_database.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_camera.py b/scripts/object/tangible/quest/corellia/corellia_39_camera.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_camera.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_corsec_termimal.py b/scripts/object/tangible/quest/corellia/corellia_39_corsec_termimal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_corsec_termimal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_crate_spice.py b/scripts/object/tangible/quest/corellia/corellia_39_crate_spice.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_crate_spice.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_drall_patriot_terminal.py b/scripts/object/tangible/quest/corellia/corellia_39_drall_patriot_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_drall_patriot_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_durni_cage.py b/scripts/object/tangible/quest/corellia/corellia_39_durni_cage.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_durni_cage.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_experimental_weapon_01.py b/scripts/object/tangible/quest/corellia/corellia_39_experimental_weapon_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_experimental_weapon_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_experimental_weapon_02.py b/scripts/object/tangible/quest/corellia/corellia_39_experimental_weapon_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_experimental_weapon_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_experimental_weapon_03.py b/scripts/object/tangible/quest/corellia/corellia_39_experimental_weapon_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_experimental_weapon_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_genovin_seyda_mainframe.py b/scripts/object/tangible/quest/corellia/corellia_39_genovin_seyda_mainframe.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_genovin_seyda_mainframe.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_jzoro_mainframe.py b/scripts/object/tangible/quest/corellia/corellia_39_jzoro_mainframe.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_jzoro_mainframe.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_kazic_datapad.py b/scripts/object/tangible/quest/corellia/corellia_39_kazic_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_kazic_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_shobbo_terminal.py b/scripts/object/tangible/quest/corellia/corellia_39_shobbo_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_shobbo_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_trins_evnar_answering.py b/scripts/object/tangible/quest/corellia/corellia_39_trins_evnar_answering.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_trins_evnar_answering.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_trins_evnar_datapad.py b/scripts/object/tangible/quest/corellia/corellia_39_trins_evnar_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_trins_evnar_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_trins_evnar_terminal.py b/scripts/object/tangible/quest/corellia/corellia_39_trins_evnar_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_trins_evnar_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_39_vryim_raeth_corpse.py b/scripts/object/tangible/quest/corellia/corellia_39_vryim_raeth_corpse.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_39_vryim_raeth_corpse.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_droid_factory_antenna_control.py b/scripts/object/tangible/quest/corellia/corellia_droid_factory_antenna_control.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_droid_factory_antenna_control.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_droid_factory_control_1.py b/scripts/object/tangible/quest/corellia/corellia_droid_factory_control_1.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_droid_factory_control_1.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_droid_factory_power_terminal.py b/scripts/object/tangible/quest/corellia/corellia_droid_factory_power_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_droid_factory_power_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_droid_factory_terminal_1.py b/scripts/object/tangible/quest/corellia/corellia_droid_factory_terminal_1.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_droid_factory_terminal_1.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_droid_factory_terminal_2.py b/scripts/object/tangible/quest/corellia/corellia_droid_factory_terminal_2.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_droid_factory_terminal_2.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_droid_factory_terminal_3.py b/scripts/object/tangible/quest/corellia/corellia_droid_factory_terminal_3.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_droid_factory_terminal_3.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia/corellia_droid_factory_terminal_4.py b/scripts/object/tangible/quest/corellia/corellia_droid_factory_terminal_4.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia/corellia_droid_factory_terminal_4.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_coronet_diktat_search_desk.py b/scripts/object/tangible/quest/corellia_coronet_diktat_search_desk.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_coronet_diktat_search_desk.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_coronet_diktat_search_terminal.py b/scripts/object/tangible/quest/corellia_coronet_diktat_search_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_coronet_diktat_search_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_coronet_farm_aid_stolen_grain.py b/scripts/object/tangible/quest/corellia_coronet_farm_aid_stolen_grain.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_coronet_farm_aid_stolen_grain.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_coronet_government_work_courier.py b/scripts/object/tangible/quest/corellia_coronet_government_work_courier.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_coronet_government_work_courier.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_coronet_government_work_dropbox.py b/scripts/object/tangible/quest/corellia_coronet_government_work_dropbox.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_coronet_government_work_dropbox.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_coronet_lt_jasper_datapad.py b/scripts/object/tangible/quest/corellia_coronet_lt_jasper_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_coronet_lt_jasper_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_coronet_meatlump_act1_radio.py b/scripts/object/tangible/quest/corellia_coronet_meatlump_act1_radio.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_coronet_meatlump_act1_radio.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_coronet_meatlump_act1_shipment.py b/scripts/object/tangible/quest/corellia_coronet_meatlump_act1_shipment.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_coronet_meatlump_act1_shipment.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_coronet_rogue_corsec_base_computer.py b/scripts/object/tangible/quest/corellia_coronet_rogue_corsec_base_computer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_coronet_rogue_corsec_base_computer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_coronet_rogue_corsec_base_computer_fake.py b/scripts/object/tangible/quest/corellia_coronet_rogue_corsec_base_computer_fake.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_coronet_rogue_corsec_base_computer_fake.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_coronet_the_informant_hidden_stash.py b/scripts/object/tangible/quest/corellia_coronet_the_informant_hidden_stash.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_coronet_the_informant_hidden_stash.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_coronet_the_meeting_data_terminal.py b/scripts/object/tangible/quest/corellia_coronet_the_meeting_data_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_coronet_the_meeting_data_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_dark_spirit_device.py b/scripts/object/tangible/quest/corellia_dark_spirit_device.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_dark_spirit_device.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_disappearances_1_first_stop.py b/scripts/object/tangible/quest/corellia_disappearances_1_first_stop.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_disappearances_1_first_stop.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_disappearances_1_second_stop.py b/scripts/object/tangible/quest/corellia_disappearances_1_second_stop.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_disappearances_1_second_stop.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_disappearances_1_third_stop.py b/scripts/object/tangible/quest/corellia_disappearances_1_third_stop.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_disappearances_1_third_stop.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_disappearances_2_object_1.py b/scripts/object/tangible/quest/corellia_disappearances_2_object_1.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_disappearances_2_object_1.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_disappearances_2_object_2.py b/scripts/object/tangible/quest/corellia_disappearances_2_object_2.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_disappearances_2_object_2.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_disappearances_2_object_3.py b/scripts/object/tangible/quest/corellia_disappearances_2_object_3.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_disappearances_2_object_3.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_disappearances_2_object_4.py b/scripts/object/tangible/quest/corellia_disappearances_2_object_4.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_disappearances_2_object_4.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_disappearances_4_first_antenna.py b/scripts/object/tangible/quest/corellia_disappearances_4_first_antenna.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_disappearances_4_first_antenna.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_disappearances_4_second_antenna.py b/scripts/object/tangible/quest/corellia_disappearances_4_second_antenna.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_disappearances_4_second_antenna.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_disappearances_4_third_antenna.py b/scripts/object/tangible/quest/corellia_disappearances_4_third_antenna.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_disappearances_4_third_antenna.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_disappearances_5_cage_1.py b/scripts/object/tangible/quest/corellia_disappearances_5_cage_1.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_disappearances_5_cage_1.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_disappearances_5_cage_2.py b/scripts/object/tangible/quest/corellia_disappearances_5_cage_2.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_disappearances_5_cage_2.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_disappearances_5_cage_3.py b/scripts/object/tangible/quest/corellia_disappearances_5_cage_3.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_disappearances_5_cage_3.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_disappearances_6_journal.py b/scripts/object/tangible/quest/corellia_disappearances_6_journal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_disappearances_6_journal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_greck_bomb.py b/scripts/object/tangible/quest/corellia_greck_bomb.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_greck_bomb.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_greck_dossier.py b/scripts/object/tangible/quest/corellia_greck_dossier.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_greck_dossier.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_meatlump_hideout_detonator.py b/scripts/object/tangible/quest/corellia_meatlump_hideout_detonator.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_meatlump_hideout_detonator.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_meatlump_hideout_explosives.py b/scripts/object/tangible/quest/corellia_meatlump_hideout_explosives.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_meatlump_hideout_explosives.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_meatlump_hideout_wire_spool.py b/scripts/object/tangible/quest/corellia_meatlump_hideout_wire_spool.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_meatlump_hideout_wire_spool.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_murmur_chemicals.py b/scripts/object/tangible/quest/corellia_murmur_chemicals.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_murmur_chemicals.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_murmur_elevator_down_1.py b/scripts/object/tangible/quest/corellia_murmur_elevator_down_1.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_murmur_elevator_down_1.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_murmur_elevator_down_2.py b/scripts/object/tangible/quest/corellia_murmur_elevator_down_2.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_murmur_elevator_down_2.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_murmur_feed.py b/scripts/object/tangible/quest/corellia_murmur_feed.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_murmur_feed.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_murmur_mainframe.py b/scripts/object/tangible/quest/corellia_murmur_mainframe.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_murmur_mainframe.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_murmur_medical_cabinet.py b/scripts/object/tangible/quest/corellia_murmur_medical_cabinet.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_murmur_medical_cabinet.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_murmur_shipment_datapad.py b/scripts/object/tangible/quest/corellia_murmur_shipment_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_murmur_shipment_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_murmur_side_missing_brother.py b/scripts/object/tangible/quest/corellia_murmur_side_missing_brother.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_murmur_side_missing_brother.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_murmur_tranquilizer.py b/scripts/object/tangible/quest/corellia_murmur_tranquilizer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_murmur_tranquilizer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_slaver_elevator_down_1.py b/scripts/object/tangible/quest/corellia_slaver_elevator_down_1.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_slaver_elevator_down_1.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_slaver_elevator_down_2.py b/scripts/object/tangible/quest/corellia_slaver_elevator_down_2.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_slaver_elevator_down_2.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_slaver_elevator_down_3.py b/scripts/object/tangible/quest/corellia_slaver_elevator_down_3.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_slaver_elevator_down_3.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_slaver_elevator_down_4.py b/scripts/object/tangible/quest/corellia_slaver_elevator_down_4.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_slaver_elevator_down_4.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_slaver_narlissa_datapad.py b/scripts/object/tangible/quest/corellia_slaver_narlissa_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_slaver_narlissa_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellia_tyrena_faye_datapad.py b/scripts/object/tangible/quest/corellia_tyrena_faye_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellia_tyrena_faye_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellian_slaver_access_terminal_01.py b/scripts/object/tangible/quest/corellian_slaver_access_terminal_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellian_slaver_access_terminal_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellian_slaver_access_terminal_02.py b/scripts/object/tangible/quest/corellian_slaver_access_terminal_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellian_slaver_access_terminal_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellian_slaver_access_terminal_03.py b/scripts/object/tangible/quest/corellian_slaver_access_terminal_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellian_slaver_access_terminal_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellian_slaver_access_terminal_04.py b/scripts/object/tangible/quest/corellian_slaver_access_terminal_04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellian_slaver_access_terminal_04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellian_slaver_access_terminal_05.py b/scripts/object/tangible/quest/corellian_slaver_access_terminal_05.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellian_slaver_access_terminal_05.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellian_slaver_access_terminal_06.py b/scripts/object/tangible/quest/corellian_slaver_access_terminal_06.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellian_slaver_access_terminal_06.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellian_slaver_access_terminal_07.py b/scripts/object/tangible/quest/corellian_slaver_access_terminal_07.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellian_slaver_access_terminal_07.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellian_slaver_clerk_datapad.py b/scripts/object/tangible/quest/corellian_slaver_clerk_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellian_slaver_clerk_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/corellian_slaver_medical_computer.py b/scripts/object/tangible/quest/corellian_slaver_medical_computer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/corellian_slaver_medical_computer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/crate_large.py b/scripts/object/tangible/quest/crate_large.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/crate_large.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/crate_magseal.py b/scripts/object/tangible/quest/crate_magseal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/crate_magseal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/database_terminal.py b/scripts/object/tangible/quest/database_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/database_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/dead_forest_stump.py b/scripts/object/tangible/quest/dead_forest_stump.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/dead_forest_stump.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/elder_robe_ex_relic_dantooine.py b/scripts/object/tangible/quest/elder_robe_ex_relic_dantooine.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/elder_robe_ex_relic_dantooine.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/elder_robe_ex_relic_endor.py b/scripts/object/tangible/quest/elder_robe_ex_relic_endor.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/elder_robe_ex_relic_endor.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/elder_robe_ex_relic_lok.py b/scripts/object/tangible/quest/elder_robe_ex_relic_lok.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/elder_robe_ex_relic_lok.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/elder_robe_ex_relic_talus.py b/scripts/object/tangible/quest/elder_robe_ex_relic_talus.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/elder_robe_ex_relic_talus.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/elder_robe_ex_relic_tatooine.py b/scripts/object/tangible/quest/elder_robe_ex_relic_tatooine.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/elder_robe_ex_relic_tatooine.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/elder_robe_ex_relic_yavin4.py b/scripts/object/tangible/quest/elder_robe_ex_relic_yavin4.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/elder_robe_ex_relic_yavin4.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_02_crate_01_container.py b/scripts/object/tangible/quest/empire_day/crash_site_02_crate_01_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_02_crate_01_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_02_crate_02_container.py b/scripts/object/tangible/quest/empire_day/crash_site_02_crate_02_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_02_crate_02_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_02_crate_03_container.py b/scripts/object/tangible/quest/empire_day/crash_site_02_crate_03_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_02_crate_03_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_02_crate_04_container.py b/scripts/object/tangible/quest/empire_day/crash_site_02_crate_04_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_02_crate_04_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_02_requisition_container.py b/scripts/object/tangible/quest/empire_day/crash_site_02_requisition_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_02_requisition_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_03_crate_01_container.py b/scripts/object/tangible/quest/empire_day/crash_site_03_crate_01_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_03_crate_01_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_03_crate_02_container.py b/scripts/object/tangible/quest/empire_day/crash_site_03_crate_02_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_03_crate_02_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_03_crate_03_container.py b/scripts/object/tangible/quest/empire_day/crash_site_03_crate_03_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_03_crate_03_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_03_crate_04_container.py b/scripts/object/tangible/quest/empire_day/crash_site_03_crate_04_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_03_crate_04_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_03_requisition_container.py b/scripts/object/tangible/quest/empire_day/crash_site_03_requisition_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_03_requisition_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_04_crate_01_container.py b/scripts/object/tangible/quest/empire_day/crash_site_04_crate_01_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_04_crate_01_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_04_crate_02_container.py b/scripts/object/tangible/quest/empire_day/crash_site_04_crate_02_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_04_crate_02_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_04_crate_03_container.py b/scripts/object/tangible/quest/empire_day/crash_site_04_crate_03_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_04_crate_03_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_04_crate_04_container.py b/scripts/object/tangible/quest/empire_day/crash_site_04_crate_04_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_04_crate_04_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_04_requisition_container.py b/scripts/object/tangible/quest/empire_day/crash_site_04_requisition_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_04_requisition_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_05_crate_01_container.py b/scripts/object/tangible/quest/empire_day/crash_site_05_crate_01_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_05_crate_01_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_05_crate_02_container.py b/scripts/object/tangible/quest/empire_day/crash_site_05_crate_02_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_05_crate_02_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_05_crate_03_container.py b/scripts/object/tangible/quest/empire_day/crash_site_05_crate_03_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_05_crate_03_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_05_crate_04_container.py b/scripts/object/tangible/quest/empire_day/crash_site_05_crate_04_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_05_crate_04_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_05_requisition_container.py b/scripts/object/tangible/quest/empire_day/crash_site_05_requisition_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_05_requisition_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_06_crate_01_container.py b/scripts/object/tangible/quest/empire_day/crash_site_06_crate_01_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_06_crate_01_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_06_crate_02_container.py b/scripts/object/tangible/quest/empire_day/crash_site_06_crate_02_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_06_crate_02_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_06_crate_03_container.py b/scripts/object/tangible/quest/empire_day/crash_site_06_crate_03_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_06_crate_03_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_06_crate_04_container.py b/scripts/object/tangible/quest/empire_day/crash_site_06_crate_04_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_06_crate_04_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_06_requisition_container.py b/scripts/object/tangible/quest/empire_day/crash_site_06_requisition_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_06_requisition_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_crate_01_container.py b/scripts/object/tangible/quest/empire_day/crash_site_crate_01_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_crate_01_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_crate_02_container.py b/scripts/object/tangible/quest/empire_day/crash_site_crate_02_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_crate_02_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_crate_03_container.py b/scripts/object/tangible/quest/empire_day/crash_site_crate_03_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_crate_03_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_crate_04_container.py b/scripts/object/tangible/quest/empire_day/crash_site_crate_04_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_crate_04_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/empire_day/crash_site_requisition_container.py b/scripts/object/tangible/quest/empire_day/crash_site_requisition_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/empire_day/crash_site_requisition_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/etyyy_brody_campsite_corpse.py b/scripts/object/tangible/quest/etyyy_brody_campsite_corpse.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/etyyy_brody_campsite_corpse.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/etyyy_chiss_poached_goods.py b/scripts/object/tangible/quest/etyyy_chiss_poached_goods.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/etyyy_chiss_poached_goods.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/etyyy_ryoos_salt.py b/scripts/object/tangible/quest/etyyy_ryoos_salt.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/etyyy_ryoos_salt.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/flora_plant_jawa_juice.py b/scripts/object/tangible/quest/flora_plant_jawa_juice.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/flora_plant_jawa_juice.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/forest_smooth_rocks.py b/scripts/object/tangible/quest/forest_smooth_rocks.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/forest_smooth_rocks.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/frn_all_security_terminal_wall_01.py b/scripts/object/tangible/quest/frn_all_security_terminal_wall_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/frn_all_security_terminal_wall_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/frn_all_security_terminal_wall_02.py b/scripts/object/tangible/quest/frn_all_security_terminal_wall_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/frn_all_security_terminal_wall_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/frn_all_security_terminal_wall_03.py b/scripts/object/tangible/quest/frn_all_security_terminal_wall_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/frn_all_security_terminal_wall_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/frn_all_security_terminal_wall_04.py b/scripts/object/tangible/quest/frn_all_security_terminal_wall_04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/frn_all_security_terminal_wall_04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/gravestone.py b/scripts/object/tangible/quest/gravestone.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/gravestone.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/gravestone_shmi.py b/scripts/object/tangible/quest/gravestone_shmi.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/gravestone_shmi.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/heroic/heroic_echo_base_tower_hatch.py b/scripts/object/tangible/quest/heroic/heroic_echo_base_tower_hatch.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/heroic/heroic_echo_base_tower_hatch.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/heroic/heroic_echo_base_wampa_fun_entrance.py b/scripts/object/tangible/quest/heroic/heroic_echo_base_wampa_fun_entrance.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/heroic/heroic_echo_base_wampa_fun_entrance.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/heroic/heroic_echo_base_wampa_fun_exit.py b/scripts/object/tangible/quest/heroic/heroic_echo_base_wampa_fun_exit.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/heroic/heroic_echo_base_wampa_fun_exit.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/heroic/heroic_exar_kun_entrance.py b/scripts/object/tangible/quest/heroic/heroic_exar_kun_entrance.py
new file mode 100644
index 00000000..7ca08004
--- /dev/null
+++ b/scripts/object/tangible/quest/heroic/heroic_exar_kun_entrance.py
@@ -0,0 +1,9 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'instances/exar_kun/exar_kun_brazier')
+ return
+
+def use(core, actor, object):
+ if actor:
+ core.instanceService.queue('heroic_exar_kun', actor)
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_emperor_altered_datadisk.py b/scripts/object/tangible/quest/imperial/itp_emperor_altered_datadisk.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_emperor_altered_datadisk.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_emperor_datadisk.py b/scripts/object/tangible/quest/imperial/itp_emperor_datadisk.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_emperor_datadisk.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_emperor_security_terminal.py b/scripts/object/tangible/quest/imperial/itp_emperor_security_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_emperor_security_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_kaja_communication_array.py b/scripts/object/tangible/quest/imperial/itp_kaja_communication_array.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_kaja_communication_array.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_kaja_rebel_intel_disk.py b/scripts/object/tangible/quest/imperial/itp_kaja_rebel_intel_disk.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_kaja_rebel_intel_disk.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_kaja_requisition_terminal.py b/scripts/object/tangible/quest/imperial/itp_kaja_requisition_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_kaja_requisition_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_kaja_spy_data_terminal.py b/scripts/object/tangible/quest/imperial/itp_kaja_spy_data_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_kaja_spy_data_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_kaja_tower_access_terminal.py b/scripts/object/tangible/quest/imperial/itp_kaja_tower_access_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_kaja_tower_access_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_loam_datapad.py b/scripts/object/tangible/quest/imperial/itp_loam_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_loam_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_loam_rebel_supply.py b/scripts/object/tangible/quest/imperial/itp_loam_rebel_supply.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_loam_rebel_supply.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_thrawn_database.py b/scripts/object/tangible/quest/imperial/itp_thrawn_database.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_thrawn_database.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_thrawn_datapad.py b/scripts/object/tangible/quest/imperial/itp_thrawn_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_thrawn_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_thrawn_starship.py b/scripts/object/tangible/quest/imperial/itp_thrawn_starship.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_thrawn_starship.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_thrawn_transponder.py b/scripts/object/tangible/quest/imperial/itp_thrawn_transponder.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_thrawn_transponder.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_vader_debris.py b/scripts/object/tangible/quest/imperial/itp_vader_debris.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_vader_debris.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_vader_force_crystal.py b/scripts/object/tangible/quest/imperial/itp_vader_force_crystal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_vader_force_crystal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/imperial/itp_veers_rebel_server.py b/scripts/object/tangible/quest/imperial/itp_veers_rebel_server.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/imperial/itp_veers_rebel_server.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/item_qst_bantha_gland.py b/scripts/object/tangible/quest/item_qst_bantha_gland.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/item_qst_bantha_gland.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/item_qst_bauble_bag_sm_hal.py b/scripts/object/tangible/quest/item_qst_bauble_bag_sm_hal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/item_qst_bauble_bag_sm_hal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/item_qst_dominant_bantha_heart.py b/scripts/object/tangible/quest/item_qst_dominant_bantha_heart.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/item_qst_dominant_bantha_heart.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/jawa_droid_r4_powerdown.py b/scripts/object/tangible/quest/jawa_droid_r4_powerdown.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/jawa_droid_r4_powerdown.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/jedi_gifts_1_wardrobe.py b/scripts/object/tangible/quest/jedi_gifts_1_wardrobe.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/jedi_gifts_1_wardrobe.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/jedi_gifts_2_chest.py b/scripts/object/tangible/quest/jedi_gifts_2_chest.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/jedi_gifts_2_chest.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/kachirho_destroyed_camp.py b/scripts/object/tangible/quest/kachirho_destroyed_camp.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/kachirho_destroyed_camp.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/kachirho_qst_bag.py b/scripts/object/tangible/quest/kachirho_qst_bag.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/kachirho_qst_bag.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/kachirho_varactyl_egg.py b/scripts/object/tangible/quest/kachirho_varactyl_egg.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/kachirho_varactyl_egg.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/kines_equipment.py b/scripts/object/tangible/quest/kines_equipment.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/kines_equipment.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/knives_thrust_datapad.py b/scripts/object/tangible/quest/knives_thrust_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/knives_thrust_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_darklighter_pallet1_datapad.py b/scripts/object/tangible/quest/legacy_darklighter_pallet1_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_darklighter_pallet1_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_darklighter_pallet2_datapad.py b/scripts/object/tangible/quest/legacy_darklighter_pallet2_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_darklighter_pallet2_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_darklighter_pallet3_datapad.py b/scripts/object/tangible/quest/legacy_darklighter_pallet3_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_darklighter_pallet3_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_darklighter_pallet4_datapad.py b/scripts/object/tangible/quest/legacy_darklighter_pallet4_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_darklighter_pallet4_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_darklighter_pallet5_datapad.py b/scripts/object/tangible/quest/legacy_darklighter_pallet5_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_darklighter_pallet5_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_droid_leg.py b/scripts/object/tangible/quest/legacy_droid_leg.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_droid_leg.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_droid_motivator.py b/scripts/object/tangible/quest/legacy_droid_motivator.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_droid_motivator.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_droid_torso.py b/scripts/object/tangible/quest/legacy_droid_torso.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_droid_torso.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_droid_utility.py b/scripts/object/tangible/quest/legacy_droid_utility.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_droid_utility.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_head_bag.py b/scripts/object/tangible/quest/legacy_head_bag.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_head_bag.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_head_cargo.py b/scripts/object/tangible/quest/legacy_head_cargo.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_head_cargo.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_head_chip.py b/scripts/object/tangible/quest/legacy_head_chip.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_head_chip.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_head_dragon.py b/scripts/object/tangible/quest/legacy_head_dragon.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_head_dragon.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_head_pain1.py b/scripts/object/tangible/quest/legacy_head_pain1.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_head_pain1.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_head_pain2.py b/scripts/object/tangible/quest/legacy_head_pain2.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_head_pain2.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_head_pain3.py b/scripts/object/tangible/quest/legacy_head_pain3.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_head_pain3.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_head_shuttle.py b/scripts/object/tangible/quest/legacy_head_shuttle.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_head_shuttle.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_jawatracks_harvester.py b/scripts/object/tangible/quest/legacy_jawatracks_harvester.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_jawatracks_harvester.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_speeder.py b/scripts/object/tangible/quest/legacy_speeder.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_speeder.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_speeder_plans.py b/scripts/object/tangible/quest/legacy_speeder_plans.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_speeder_plans.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_tracks_cuan_datapad.py b/scripts/object/tangible/quest/legacy_tracks_cuan_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_tracks_cuan_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_tracks_jawa_datapad.py b/scripts/object/tangible/quest/legacy_tracks_jawa_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_tracks_jawa_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_tracks_zef_datapad.py b/scripts/object/tangible/quest/legacy_tracks_zef_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_tracks_zef_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_valarian_pallet1_datapad.py b/scripts/object/tangible/quest/legacy_valarian_pallet1_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_valarian_pallet1_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_valarian_pallet2_datapad.py b/scripts/object/tangible/quest/legacy_valarian_pallet2_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_valarian_pallet2_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_valarian_pallet3_datapad.py b/scripts/object/tangible/quest/legacy_valarian_pallet3_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_valarian_pallet3_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_valarian_pallet4_datapad.py b/scripts/object/tangible/quest/legacy_valarian_pallet4_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_valarian_pallet4_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/legacy_valarian_pallet5_datapad.py b/scripts/object/tangible/quest/legacy_valarian_pallet5_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/legacy_valarian_pallet5_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/lost_squadron_tie_bomber.py b/scripts/object/tangible/quest/lost_squadron_tie_bomber.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/lost_squadron_tie_bomber.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/lost_squadron_xwing.py b/scripts/object/tangible/quest/lost_squadron_xwing.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/lost_squadron_xwing.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/luilris_mushrooms.py b/scripts/object/tangible/quest/luilris_mushrooms.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/luilris_mushrooms.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/mauler_stronghold_terminal.py b/scripts/object/tangible/quest/mauler_stronghold_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/mauler_stronghold_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/meatlump/mtp_hideout_quest01_crated_bomb.py b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest01_crated_bomb.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest01_crated_bomb.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/meatlump/mtp_hideout_quest01_datapad.py b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest01_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest01_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/meatlump/mtp_hideout_quest02_droid01.py b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest02_droid01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest02_droid01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/meatlump/mtp_hideout_quest02_droid02.py b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest02_droid02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest02_droid02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/meatlump/mtp_hideout_quest02_droid03.py b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest02_droid03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest02_droid03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/meatlump/mtp_hideout_quest02_droid04.py b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest02_droid04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest02_droid04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/meatlump/mtp_hideout_quest03_radio.py b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest03_radio.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest03_radio.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/meatlump/mtp_hideout_quest04_stash.py b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest04_stash.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest04_stash.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/meatlump/mtp_hideout_quest07_databank.py b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest07_databank.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest07_databank.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/meatlump/mtp_hideout_quest07_plans.py b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest07_plans.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/meatlump/mtp_hideout_quest07_plans.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/medical_boxes.py b/scripts/object/tangible/quest/medical_boxes.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/medical_boxes.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/medical_desk.py b/scripts/object/tangible/quest/medical_desk.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/medical_desk.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_01.py b/scripts/object/tangible/quest/menagerie_terminal_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_02.py b/scripts/object/tangible/quest/menagerie_terminal_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_03.py b/scripts/object/tangible/quest/menagerie_terminal_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_04.py b/scripts/object/tangible/quest/menagerie_terminal_04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_05.py b/scripts/object/tangible/quest/menagerie_terminal_05.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_05.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_06.py b/scripts/object/tangible/quest/menagerie_terminal_06.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_06.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_07.py b/scripts/object/tangible/quest/menagerie_terminal_07.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_07.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_08.py b/scripts/object/tangible/quest/menagerie_terminal_08.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_08.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_09.py b/scripts/object/tangible/quest/menagerie_terminal_09.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_09.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_10.py b/scripts/object/tangible/quest/menagerie_terminal_10.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_10.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_11.py b/scripts/object/tangible/quest/menagerie_terminal_11.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_11.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_12.py b/scripts/object/tangible/quest/menagerie_terminal_12.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_12.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_13.py b/scripts/object/tangible/quest/menagerie_terminal_13.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_13.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_14.py b/scripts/object/tangible/quest/menagerie_terminal_14.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_14.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_15.py b/scripts/object/tangible/quest/menagerie_terminal_15.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_15.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_16.py b/scripts/object/tangible/quest/menagerie_terminal_16.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_16.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_17.py b/scripts/object/tangible/quest/menagerie_terminal_17.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_17.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_18.py b/scripts/object/tangible/quest/menagerie_terminal_18.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_18.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_19.py b/scripts/object/tangible/quest/menagerie_terminal_19.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_19.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_20.py b/scripts/object/tangible/quest/menagerie_terminal_20.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_20.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_21.py b/scripts/object/tangible/quest/menagerie_terminal_21.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_21.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_22.py b/scripts/object/tangible/quest/menagerie_terminal_22.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_22.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_23.py b/scripts/object/tangible/quest/menagerie_terminal_23.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_23.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_24.py b/scripts/object/tangible/quest/menagerie_terminal_24.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_24.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_25.py b/scripts/object/tangible/quest/menagerie_terminal_25.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_25.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_26.py b/scripts/object/tangible/quest/menagerie_terminal_26.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_26.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_27.py b/scripts/object/tangible/quest/menagerie_terminal_27.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_27.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_28.py b/scripts/object/tangible/quest/menagerie_terminal_28.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_28.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_29.py b/scripts/object/tangible/quest/menagerie_terminal_29.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_29.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_30.py b/scripts/object/tangible/quest/menagerie_terminal_30.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_30.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_31.py b/scripts/object/tangible/quest/menagerie_terminal_31.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_31.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_32.py b/scripts/object/tangible/quest/menagerie_terminal_32.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_32.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_33.py b/scripts/object/tangible/quest/menagerie_terminal_33.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_33.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_34.py b/scripts/object/tangible/quest/menagerie_terminal_34.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_34.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_35.py b/scripts/object/tangible/quest/menagerie_terminal_35.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_35.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_36.py b/scripts/object/tangible/quest/menagerie_terminal_36.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_36.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_37.py b/scripts/object/tangible/quest/menagerie_terminal_37.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_37.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_38.py b/scripts/object/tangible/quest/menagerie_terminal_38.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_38.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_39.py b/scripts/object/tangible/quest/menagerie_terminal_39.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_39.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_40.py b/scripts/object/tangible/quest/menagerie_terminal_40.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_40.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_41.py b/scripts/object/tangible/quest/menagerie_terminal_41.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_41.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_42.py b/scripts/object/tangible/quest/menagerie_terminal_42.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_42.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_43.py b/scripts/object/tangible/quest/menagerie_terminal_43.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_43.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_44.py b/scripts/object/tangible/quest/menagerie_terminal_44.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_44.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_45.py b/scripts/object/tangible/quest/menagerie_terminal_45.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_45.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_46.py b/scripts/object/tangible/quest/menagerie_terminal_46.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_46.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_47.py b/scripts/object/tangible/quest/menagerie_terminal_47.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_47.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_48.py b/scripts/object/tangible/quest/menagerie_terminal_48.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_48.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_49.py b/scripts/object/tangible/quest/menagerie_terminal_49.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_49.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_50.py b/scripts/object/tangible/quest/menagerie_terminal_50.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_50.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_51.py b/scripts/object/tangible/quest/menagerie_terminal_51.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_51.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_52.py b/scripts/object/tangible/quest/menagerie_terminal_52.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_52.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_53.py b/scripts/object/tangible/quest/menagerie_terminal_53.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_53.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_54.py b/scripts/object/tangible/quest/menagerie_terminal_54.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_54.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_55.py b/scripts/object/tangible/quest/menagerie_terminal_55.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_55.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_56.py b/scripts/object/tangible/quest/menagerie_terminal_56.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_56.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/menagerie_terminal_test.py b/scripts/object/tangible/quest/menagerie_terminal_test.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/menagerie_terminal_test.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/murmur_1_exec1_personal_console.py b/scripts/object/tangible/quest/murmur_1_exec1_personal_console.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/murmur_1_exec1_personal_console.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/murmur_1_exec2_personal_console.py b/scripts/object/tangible/quest/murmur_1_exec2_personal_console.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/murmur_1_exec2_personal_console.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/murmur_1_exec3_personal_console.py b/scripts/object/tangible/quest/murmur_1_exec3_personal_console.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/murmur_1_exec3_personal_console.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/murmur_2_admin_personal_console.py b/scripts/object/tangible/quest/murmur_2_admin_personal_console.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/murmur_2_admin_personal_console.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/murmur_4_gas_console.py b/scripts/object/tangible/quest/murmur_4_gas_console.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/murmur_4_gas_console.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/murmur_4_security_console.py b/scripts/object/tangible/quest/murmur_4_security_console.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/murmur_4_security_console.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/murmur_5_doc_personal_console.py b/scripts/object/tangible/quest/murmur_5_doc_personal_console.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/murmur_5_doc_personal_console.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/murmur_5_research_console.py b/scripts/object/tangible/quest/murmur_5_research_console.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/murmur_5_research_console.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/must_chem_locker.py b/scripts/object/tangible/quest/must_chem_locker.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/must_chem_locker.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/must_control_computer.py b/scripts/object/tangible/quest/must_control_computer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/must_control_computer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/must_coolant_system.py b/scripts/object/tangible/quest/must_coolant_system.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/must_coolant_system.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/must_crash_site_destroyed_terminal.py b/scripts/object/tangible/quest/must_crash_site_destroyed_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/must_crash_site_destroyed_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/must_debris_door.py b/scripts/object/tangible/quest/must_debris_door.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/must_debris_door.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/must_main_reactor.py b/scripts/object/tangible/quest/must_main_reactor.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/must_main_reactor.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/must_motor_harness.py b/scripts/object/tangible/quest/must_motor_harness.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/must_motor_harness.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/must_orc_computer.py b/scripts/object/tangible/quest/must_orc_computer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/must_orc_computer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/must_power_rod.py b/scripts/object/tangible/quest/must_power_rod.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/must_power_rod.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/must_supply_locker.py b/scripts/object/tangible/quest/must_supply_locker.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/must_supply_locker.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/must_ventilation_station.py b/scripts/object/tangible/quest/must_ventilation_station.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/must_ventilation_station.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/mysess_blossom.py b/scripts/object/tangible/quest/mysess_blossom.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/mysess_blossom.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_boss_nass_droidtech_tools.py b/scripts/object/tangible/quest/naboo_boss_nass_droidtech_tools.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_boss_nass_droidtech_tools.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_hidden.py b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_hidden.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_hidden.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_mauler.py b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_mauler.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_mauler.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece.py b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece_2.py b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece_2.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece_2.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece_3.py b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece_3.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece_3.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece_4.py b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece_4.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece_4.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece_5.py b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece_5.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece_5.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece_6.py b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece_6.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_boss_nass_gungan_artifact_piece_6.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_boss_nass_ultragungan_battle_droid.py b/scripts/object/tangible/quest/naboo_boss_nass_ultragungan_battle_droid.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_boss_nass_ultragungan_battle_droid.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_deeja_peak_junked_terminal.py b/scripts/object/tangible/quest/naboo_deeja_peak_junked_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_deeja_peak_junked_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_deeja_peak_research_equipment.py b/scripts/object/tangible/quest/naboo_deeja_peak_research_equipment.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_deeja_peak_research_equipment.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_deeja_peak_security_beacon.py b/scripts/object/tangible/quest/naboo_deeja_peak_security_beacon.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_deeja_peak_security_beacon.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_deeja_peak_shipping_terminal.py b/scripts/object/tangible/quest/naboo_deeja_peak_shipping_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_deeja_peak_shipping_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_gungan_courier_pouch.py b/scripts/object/tangible/quest/naboo_gungan_courier_pouch.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_gungan_courier_pouch.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_kadaara_jonni_gravestone.py b/scripts/object/tangible/quest/naboo_kadaara_jonni_gravestone.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_kadaara_jonni_gravestone.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_kadaara_jonni_smuggled_goods.py b/scripts/object/tangible/quest/naboo_kadaara_jonni_smuggled_goods.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_kadaara_jonni_smuggled_goods.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_kadaara_tipping_rsf_comm_array.py b/scripts/object/tangible/quest/naboo_kadaara_tipping_rsf_comm_array.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_kadaara_tipping_rsf_comm_array.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_kadaara_tipping_skaak_radio.py b/scripts/object/tangible/quest/naboo_kadaara_tipping_skaak_radio.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_kadaara_tipping_skaak_radio.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_bio_chemical_bomb.py b/scripts/object/tangible/quest/naboo_theed_bio_chemical_bomb.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_bio_chemical_bomb.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_borvo_antenna.py b/scripts/object/tangible/quest/naboo_theed_borvo_antenna.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_borvo_antenna.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_borvo_database.py b/scripts/object/tangible/quest/naboo_theed_borvo_database.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_borvo_database.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_case_corellian_ale.py b/scripts/object/tangible/quest/naboo_theed_case_corellian_ale.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_case_corellian_ale.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_crate_droid_parts.py b/scripts/object/tangible/quest/naboo_theed_crate_droid_parts.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_crate_droid_parts.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_darkwalker_antenna.py b/scripts/object/tangible/quest/naboo_theed_darkwalker_antenna.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_darkwalker_antenna.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_darkwalker_network_terminal.py b/scripts/object/tangible/quest/naboo_theed_darkwalker_network_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_darkwalker_network_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_fenrol_ledger.py b/scripts/object/tangible/quest/naboo_theed_fenrol_ledger.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_fenrol_ledger.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_foul_earthen_mound.py b/scripts/object/tangible/quest/naboo_theed_foul_earthen_mound.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_foul_earthen_mound.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_mummer_antenna.py b/scripts/object/tangible/quest/naboo_theed_mummer_antenna.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_mummer_antenna.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_prisoner_control_panel.py b/scripts/object/tangible/quest/naboo_theed_prisoner_control_panel.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_prisoner_control_panel.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_refining_station.py b/scripts/object/tangible/quest/naboo_theed_refining_station.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_refining_station.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_skaak_antenna.py b/scripts/object/tangible/quest/naboo_theed_skaak_antenna.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_skaak_antenna.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_skaak_database.py b/scripts/object/tangible/quest/naboo_theed_skaak_database.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_skaak_database.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_stash_peddler_goods.py b/scripts/object/tangible/quest/naboo_theed_stash_peddler_goods.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_stash_peddler_goods.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_terrorist_bomb.py b/scripts/object/tangible/quest/naboo_theed_terrorist_bomb.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_terrorist_bomb.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_terrorist_medical_droid.py b/scripts/object/tangible/quest/naboo_theed_terrorist_medical_droid.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_terrorist_medical_droid.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_terrorist_medical_supplies.py b/scripts/object/tangible/quest/naboo_theed_terrorist_medical_supplies.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_terrorist_medical_supplies.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naboo_theed_xharnoh_plant.py b/scripts/object/tangible/quest/naboo_theed_xharnoh_plant.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naboo_theed_xharnoh_plant.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naktra_crystals.py b/scripts/object/tangible/quest/naktra_crystals.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naktra_crystals.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/naktra_weapons.py b/scripts/object/tangible/quest/naktra_weapons.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/naktra_weapons.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/nawika_jewel_box.py b/scripts/object/tangible/quest/nawika_jewel_box.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/nawika_jewel_box.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/nova_orion/nova_orion_katiara_grave_node.py b/scripts/object/tangible/quest/nova_orion/nova_orion_katiara_grave_node.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/nova_orion/nova_orion_katiara_grave_node.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/nova_orion/nova_orion_katiara_gravestone.py b/scripts/object/tangible/quest/nova_orion/nova_orion_katiara_gravestone.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/nova_orion/nova_orion_katiara_gravestone.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/nova_orion/nova_orion_katiara_gravestone_display.py b/scripts/object/tangible/quest/nova_orion/nova_orion_katiara_gravestone_display.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/nova_orion/nova_orion_katiara_gravestone_display.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/npe_medic_cabinet.py b/scripts/object/tangible/quest/npe_medic_cabinet.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/npe_medic_cabinet.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/npe_officer_computer.py b/scripts/object/tangible/quest/npe_officer_computer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/npe_officer_computer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/npe_receptacle.py b/scripts/object/tangible/quest/npe_receptacle.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/npe_receptacle.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/npe_rune.py b/scripts/object/tangible/quest/npe_rune.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/npe_rune.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/npe_skeleton.py b/scripts/object/tangible/quest/npe_skeleton.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/npe_skeleton.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/npe_spice_plant.py b/scripts/object/tangible/quest/npe_spice_plant.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/npe_spice_plant.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/nym_grenade_container.py b/scripts/object/tangible/quest/nym_grenade_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/nym_grenade_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/blackwing_canister_01.py b/scripts/object/tangible/quest/outbreak/blackwing_canister_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/blackwing_canister_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/camp_epsilon_shuttle.py b/scripts/object/tangible/quest/outbreak/camp_epsilon_shuttle.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/camp_epsilon_shuttle.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/communications_control_computer.py b/scripts/object/tangible/quest/outbreak/communications_control_computer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/communications_control_computer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/crashed_shuttle_core_memory.py b/scripts/object/tangible/quest/outbreak/crashed_shuttle_core_memory.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/crashed_shuttle_core_memory.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/crashed_shuttle_fuel_cells.py b/scripts/object/tangible/quest/outbreak/crashed_shuttle_fuel_cells.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/crashed_shuttle_fuel_cells.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/crashed_shuttle_power_converters.py b/scripts/object/tangible/quest/outbreak/crashed_shuttle_power_converters.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/crashed_shuttle_power_converters.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/crashed_shuttle_spinal_trunk.py b/scripts/object/tangible/quest/outbreak/crashed_shuttle_spinal_trunk.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/crashed_shuttle_spinal_trunk.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/cryogenics_storage_unit.py b/scripts/object/tangible/quest/outbreak/cryogenics_storage_unit.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/cryogenics_storage_unit.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/damage_control_computer.py b/scripts/object/tangible/quest/outbreak/damage_control_computer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/damage_control_computer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/damage_control_module.py b/scripts/object/tangible/quest/outbreak/damage_control_module.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/damage_control_module.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/doctors_office_command_console.py b/scripts/object/tangible/quest/outbreak/doctors_office_command_console.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/doctors_office_command_console.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/doctors_office_console.py b/scripts/object/tangible/quest/outbreak/doctors_office_console.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/doctors_office_console.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/facility_damage_report_console.py b/scripts/object/tangible/quest/outbreak/facility_damage_report_console.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/facility_damage_report_console.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/facility_ladder.py b/scripts/object/tangible/quest/outbreak/facility_ladder.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/facility_ladder.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/group_boss_fight_terminal.py b/scripts/object/tangible/quest/outbreak/group_boss_fight_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/group_boss_fight_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/lower_level_command_console.py b/scripts/object/tangible/quest/outbreak/lower_level_command_console.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/lower_level_command_console.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/outbreak_facility_vent.py b/scripts/object/tangible/quest/outbreak/outbreak_facility_vent.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/outbreak_facility_vent.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/outbreak_facility_vent_02.py b/scripts/object/tangible/quest/outbreak/outbreak_facility_vent_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/outbreak_facility_vent_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/outbreak_facility_vent_03.py b/scripts/object/tangible/quest/outbreak/outbreak_facility_vent_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/outbreak_facility_vent_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/outbreak_facility_vent_04.py b/scripts/object/tangible/quest/outbreak/outbreak_facility_vent_04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/outbreak_facility_vent_04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/outbreak_facility_vent_05.py b/scripts/object/tangible/quest/outbreak/outbreak_facility_vent_05.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/outbreak_facility_vent_05.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/outbreak/outbreak_facility_vent_06.py b/scripts/object/tangible/quest/outbreak/outbreak_facility_vent_06.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/outbreak/outbreak_facility_vent_06.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/pile_trash.py b/scripts/object/tangible/quest/pile_trash.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/pile_trash.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/pod_egg_sacs.py b/scripts/object/tangible/quest/pod_egg_sacs.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/pod_egg_sacs.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/poison_miner_tracking_computer.py b/scripts/object/tangible/quest/poison_miner_tracking_computer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/poison_miner_tracking_computer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/prof_commando_11_reactor.py b/scripts/object/tangible/quest/prof_commando_11_reactor.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/prof_commando_11_reactor.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/prof_commando_21_terminal.py b/scripts/object/tangible/quest/prof_commando_21_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/prof_commando_21_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/prof_force_sensitive_crystal.py b/scripts/object/tangible/quest/prof_force_sensitive_crystal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/prof_force_sensitive_crystal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/prof_spy_21_incom_plans.py b/scripts/object/tangible/quest/prof_spy_21_incom_plans.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/prof_spy_21_incom_plans.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/prolog_content_science_datapad.py b/scripts/object/tangible/quest/prolog_content_science_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/prolog_content_science_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/borvo_acklay_armor.py b/scripts/object/tangible/quest/quest_start/borvo_acklay_armor.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/borvo_acklay_armor.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/chapter7_publish_gift_collection_token.py b/scripts/object/tangible/quest/quest_start/chapter7_publish_gift_collection_token.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/chapter7_publish_gift_collection_token.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/chapter8_publish_gift_collection_token.py b/scripts/object/tangible/quest/quest_start/chapter8_publish_gift_collection_token.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/chapter8_publish_gift_collection_token.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/corellia_coronet_meatlump_act1_viewscreen.py b/scripts/object/tangible/quest/quest_start/corellia_coronet_meatlump_act1_viewscreen.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/corellia_coronet_meatlump_act1_viewscreen.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/ep3_clone_relics_jedi_starfighter.py b/scripts/object/tangible/quest/quest_start/ep3_clone_relics_jedi_starfighter.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/ep3_clone_relics_jedi_starfighter.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/ep3_clone_relics_jedi_starfighter_container.py b/scripts/object/tangible/quest/quest_start/ep3_clone_relics_jedi_starfighter_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/ep3_clone_relics_jedi_starfighter_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/ep3_clone_relics_nym_starmap.py b/scripts/object/tangible/quest/quest_start/ep3_clone_relics_nym_starmap.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/ep3_clone_relics_nym_starmap.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/ep3_clone_relics_nym_starmap_container.py b/scripts/object/tangible/quest/quest_start/ep3_clone_relics_nym_starmap_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/ep3_clone_relics_nym_starmap_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_brightclaw_jaw.py b/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_brightclaw_jaw.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_brightclaw_jaw.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_greyclimber_eye.py b/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_greyclimber_eye.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_greyclimber_eye.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_paleclaw_jaw.py b/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_paleclaw_jaw.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_paleclaw_jaw.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_silkthrower_fang.py b/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_silkthrower_fang.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_silkthrower_fang.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_spiketop_horn.py b/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_spiketop_horn.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_spiketop_horn.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_stoneleg_heart.py b/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_stoneleg_heart.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/ep3_hunt_loot_stoneleg_heart.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/naboo_kadaara_jonni_skaak_journal.py b/scripts/object/tangible/quest/quest_start/naboo_kadaara_jonni_skaak_journal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/naboo_kadaara_jonni_skaak_journal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_bounty_hunter_10.py b/scripts/object/tangible/quest/quest_start/profession_bounty_hunter_10.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_bounty_hunter_10.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_bounty_hunter_20.py b/scripts/object/tangible/quest/quest_start/profession_bounty_hunter_20.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_bounty_hunter_20.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_bounty_hunter_30.py b/scripts/object/tangible/quest/quest_start/profession_bounty_hunter_30.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_bounty_hunter_30.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_commando_10.py b/scripts/object/tangible/quest/quest_start/profession_commando_10.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_commando_10.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_commando_20.py b/scripts/object/tangible/quest/quest_start/profession_commando_20.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_commando_20.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_commando_30.py b/scripts/object/tangible/quest/quest_start/profession_commando_30.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_commando_30.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_entertainer_10.py b/scripts/object/tangible/quest/quest_start/profession_entertainer_10.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_entertainer_10.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_entertainer_20.py b/scripts/object/tangible/quest/quest_start/profession_entertainer_20.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_entertainer_20.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_entertainer_30.py b/scripts/object/tangible/quest/quest_start/profession_entertainer_30.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_entertainer_30.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_force_sensitive_10.py b/scripts/object/tangible/quest/quest_start/profession_force_sensitive_10.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_force_sensitive_10.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_force_sensitive_20.py b/scripts/object/tangible/quest/quest_start/profession_force_sensitive_20.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_force_sensitive_20.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_force_sensitive_30.py b/scripts/object/tangible/quest/quest_start/profession_force_sensitive_30.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_force_sensitive_30.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_medic_10.py b/scripts/object/tangible/quest/quest_start/profession_medic_10.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_medic_10.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_medic_20.py b/scripts/object/tangible/quest/quest_start/profession_medic_20.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_medic_20.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_medic_30.py b/scripts/object/tangible/quest/quest_start/profession_medic_30.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_medic_30.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_officer_10.py b/scripts/object/tangible/quest/quest_start/profession_officer_10.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_officer_10.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_officer_20.py b/scripts/object/tangible/quest/quest_start/profession_officer_20.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_officer_20.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_officer_30.py b/scripts/object/tangible/quest/quest_start/profession_officer_30.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_officer_30.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_smuggler_10.py b/scripts/object/tangible/quest/quest_start/profession_smuggler_10.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_smuggler_10.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_smuggler_20.py b/scripts/object/tangible/quest/quest_start/profession_smuggler_20.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_smuggler_20.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_smuggler_30.py b/scripts/object/tangible/quest/quest_start/profession_smuggler_30.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_smuggler_30.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_spy_10.py b/scripts/object/tangible/quest/quest_start/profession_spy_10.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_spy_10.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_spy_20.py b/scripts/object/tangible/quest/quest_start/profession_spy_20.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_spy_20.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_spy_30.py b/scripts/object/tangible/quest/quest_start/profession_spy_30.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_spy_30.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_trader_10.py b/scripts/object/tangible/quest/quest_start/profession_trader_10.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_trader_10.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_trader_20.py b/scripts/object/tangible/quest/quest_start/profession_trader_20.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_trader_20.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/profession_trader_30.py b/scripts/object/tangible/quest/quest_start/profession_trader_30.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/profession_trader_30.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/som_kenobi_hidden_treasure_plaque.py b/scripts/object/tangible/quest/quest_start/som_kenobi_hidden_treasure_plaque.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/som_kenobi_hidden_treasure_plaque.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/som_kenobi_reunite_shard.py b/scripts/object/tangible/quest/quest_start/som_kenobi_reunite_shard.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/som_kenobi_reunite_shard.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/som_kenobi_symbiosis_fluid_container.py b/scripts/object/tangible/quest/quest_start/som_kenobi_symbiosis_fluid_container.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/som_kenobi_symbiosis_fluid_container.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_start/update_14_quest_comlink.py b/scripts/object/tangible/quest/quest_start/update_14_quest_comlink.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_start/update_14_quest_comlink.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/quest_u10_helper_droid_parts.py b/scripts/object/tangible/quest/quest_u10_helper_droid_parts.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/quest_u10_helper_droid_parts.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/r_naktra_crystals.py b/scripts/object/tangible/quest/r_naktra_crystals.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/r_naktra_crystals.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/radio_s1.py b/scripts/object/tangible/quest/radio_s1.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/radio_s1.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_ackbar_wave_communication_array.py b/scripts/object/tangible/quest/rebel/rtp_ackbar_wave_communication_array.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_ackbar_wave_communication_array.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_ackbar_wave_sympathizer_signal.py b/scripts/object/tangible/quest/rebel/rtp_ackbar_wave_sympathizer_signal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_ackbar_wave_sympathizer_signal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_c3po_contact_list.py b/scripts/object/tangible/quest/rebel/rtp_c3po_contact_list.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_c3po_contact_list.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_c3po_medical_supply_chest.py b/scripts/object/tangible/quest/rebel/rtp_c3po_medical_supply_chest.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_c3po_medical_supply_chest.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_c3po_medical_supply_chest_02.py b/scripts/object/tangible/quest/rebel/rtp_c3po_medical_supply_chest_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_c3po_medical_supply_chest_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_c3po_medical_supply_chest_03.py b/scripts/object/tangible/quest/rebel/rtp_c3po_medical_supply_chest_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_c3po_medical_supply_chest_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_c3po_medical_supply_source.py b/scripts/object/tangible/quest/rebel/rtp_c3po_medical_supply_source.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_c3po_medical_supply_source.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_dodonna_wave_atst.py b/scripts/object/tangible/quest/rebel/rtp_dodonna_wave_atst.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_dodonna_wave_atst.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_dodonna_wave_xwing.py b/scripts/object/tangible/quest/rebel/rtp_dodonna_wave_xwing.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_dodonna_wave_xwing.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_hansolo_imperial_banner.py b/scripts/object/tangible/quest/rebel/rtp_hansolo_imperial_banner.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_hansolo_imperial_banner.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_hansolo_imperial_generator.py b/scripts/object/tangible/quest/rebel/rtp_hansolo_imperial_generator.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_hansolo_imperial_generator.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_hansolo_rebel_banner.py b/scripts/object/tangible/quest/rebel/rtp_hansolo_rebel_banner.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_hansolo_rebel_banner.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_hansolo_stolen_munitions.py b/scripts/object/tangible/quest/rebel/rtp_hansolo_stolen_munitions.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_hansolo_stolen_munitions.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_hansolo_wave_henchman_signal.py b/scripts/object/tangible/quest/rebel/rtp_hansolo_wave_henchman_signal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_hansolo_wave_henchman_signal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_leia_communication_array.py b/scripts/object/tangible/quest/rebel/rtp_leia_communication_array.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_leia_communication_array.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_leia_e11_rifle.py b/scripts/object/tangible/quest/rebel/rtp_leia_e11_rifle.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_leia_e11_rifle.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_leia_imperial_database.py b/scripts/object/tangible/quest/rebel/rtp_leia_imperial_database.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_leia_imperial_database.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_leia_lambda_shuttle.py b/scripts/object/tangible/quest/rebel/rtp_leia_lambda_shuttle.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_leia_lambda_shuttle.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_leia_rebel_helmet.py b/scripts/object/tangible/quest/rebel/rtp_leia_rebel_helmet.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_leia_rebel_helmet.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_leia_stormtrooper_helmet.py b/scripts/object/tangible/quest/rebel/rtp_leia_stormtrooper_helmet.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_leia_stormtrooper_helmet.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_leia_wave_summon_leia.py b/scripts/object/tangible/quest/rebel/rtp_leia_wave_summon_leia.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_leia_wave_summon_leia.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_luke_altar_force_crystal.py b/scripts/object/tangible/quest/rebel/rtp_luke_altar_force_crystal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_luke_altar_force_crystal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_luke_dying_plant.py b/scripts/object/tangible/quest/rebel/rtp_luke_dying_plant.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_luke_dying_plant.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_luke_healed_plant.py b/scripts/object/tangible/quest/rebel/rtp_luke_healed_plant.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_luke_healed_plant.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_luke_wave_altar.py b/scripts/object/tangible/quest/rebel/rtp_luke_wave_altar.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_luke_wave_altar.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_luke_wave_force_crystal.py b/scripts/object/tangible/quest/rebel/rtp_luke_wave_force_crystal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_luke_wave_force_crystal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_mon_mothma_droid.py b/scripts/object/tangible/quest/rebel/rtp_mon_mothma_droid.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_mon_mothma_droid.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_qualdo_compound_sample.py b/scripts/object/tangible/quest/rebel/rtp_qualdo_compound_sample.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_qualdo_compound_sample.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_qualdo_design_overview.py b/scripts/object/tangible/quest/rebel/rtp_qualdo_design_overview.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_qualdo_design_overview.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_qualdo_dev_notes.py b/scripts/object/tangible/quest/rebel/rtp_qualdo_dev_notes.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_qualdo_dev_notes.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rebel/rtp_wedge_security_terminal.py b/scripts/object/tangible/quest/rebel/rtp_wedge_security_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rebel/rtp_wedge_security_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/restuss_comm_array.py b/scripts/object/tangible/quest/restuss_comm_array.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/restuss_comm_array.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/restuss_imperial_token.py b/scripts/object/tangible/quest/restuss_imperial_token.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/restuss_imperial_token.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/restuss_rebel_token.py b/scripts/object/tangible/quest/restuss_rebel_token.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/restuss_rebel_token.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rodian_body_bag.py b/scripts/object/tangible/quest/rodian_body_bag.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rodian_body_bag.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rotting_sapflower.py b/scripts/object/tangible/quest/rotting_sapflower.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rotting_sapflower.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rrwii_root.py b/scripts/object/tangible/quest/rrwii_root.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rrwii_root.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/rsf_computer.py b/scripts/object/tangible/quest/rsf_computer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/rsf_computer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/seismic_charge_stations.py b/scripts/object/tangible/quest/seismic_charge_stations.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/seismic_charge_stations.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/sennex_hq_computer_terminal.py b/scripts/object/tangible/quest/sennex_hq_computer_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/sennex_hq_computer_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/sennex_hq_databank.py b/scripts/object/tangible/quest/sennex_hq_databank.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/sennex_hq_databank.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/skeleton_bith.py b/scripts/object/tangible/quest/skeleton_bith.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/skeleton_bith.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/skeleton_human.py b/scripts/object/tangible/quest/skeleton_human.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/skeleton_human.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/skeleton_ithorian.py b/scripts/object/tangible/quest/skeleton_ithorian.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/skeleton_ithorian.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/sliced_weapons.py b/scripts/object/tangible/quest/sliced_weapons.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/sliced_weapons.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/smuggler_11_profession_recipe.py b/scripts/object/tangible/quest/smuggler_11_profession_recipe.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/smuggler_11_profession_recipe.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/smuggler_11_profession_sample.py b/scripts/object/tangible/quest/smuggler_11_profession_sample.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/smuggler_11_profession_sample.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_berken_marker_01.py b/scripts/object/tangible/quest/som_berken_marker_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_berken_marker_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_berken_marker_02.py b/scripts/object/tangible/quest/som_berken_marker_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_berken_marker_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_berken_marker_03.py b/scripts/object/tangible/quest/som_berken_marker_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_berken_marker_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_berken_marker_04.py b/scripts/object/tangible/quest/som_berken_marker_04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_berken_marker_04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_berken_marker_05.py b/scripts/object/tangible/quest/som_berken_marker_05.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_berken_marker_05.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_burning_marker_01.py b/scripts/object/tangible/quest/som_burning_marker_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_burning_marker_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_burning_marker_02.py b/scripts/object/tangible/quest/som_burning_marker_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_burning_marker_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_burning_marker_03.py b/scripts/object/tangible/quest/som_burning_marker_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_burning_marker_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_burning_marker_04.py b/scripts/object/tangible/quest/som_burning_marker_04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_burning_marker_04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_burning_marker_05.py b/scripts/object/tangible/quest/som_burning_marker_05.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_burning_marker_05.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_crystal_marker_01.py b/scripts/object/tangible/quest/som_crystal_marker_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_crystal_marker_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_crystal_marker_02.py b/scripts/object/tangible/quest/som_crystal_marker_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_crystal_marker_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_crystal_marker_03.py b/scripts/object/tangible/quest/som_crystal_marker_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_crystal_marker_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_crystal_marker_04.py b/scripts/object/tangible/quest/som_crystal_marker_04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_crystal_marker_04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_crystal_marker_05.py b/scripts/object/tangible/quest/som_crystal_marker_05.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_crystal_marker_05.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_cube_rune_tablet.py b/scripts/object/tangible/quest/som_cube_rune_tablet.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_cube_rune_tablet.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_jedi_two_glyph_01.py b/scripts/object/tangible/quest/som_jedi_two_glyph_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_jedi_two_glyph_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_jedi_two_glyph_02.py b/scripts/object/tangible/quest/som_jedi_two_glyph_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_jedi_two_glyph_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_jedi_two_glyph_03.py b/scripts/object/tangible/quest/som_jedi_two_glyph_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_jedi_two_glyph_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_broken_droid_1.py b/scripts/object/tangible/quest/som_kenobi_broken_droid_1.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_broken_droid_1.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_final_chamber_entrance_item.py b/scripts/object/tangible/quest/som_kenobi_final_chamber_entrance_item.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_final_chamber_entrance_item.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_final_crystal_pedestal.py b/scripts/object/tangible/quest/som_kenobi_final_crystal_pedestal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_final_crystal_pedestal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_final_force_crystal.py b/scripts/object/tangible/quest/som_kenobi_final_force_crystal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_final_force_crystal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_fusion_machine.py b/scripts/object/tangible/quest/som_kenobi_fusion_machine.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_fusion_machine.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_historian_corpse.py b/scripts/object/tangible/quest/som_kenobi_historian_corpse.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_historian_corpse.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_historian_rubble.py b/scripts/object/tangible/quest/som_kenobi_historian_rubble.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_historian_rubble.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_jedi_conduit_e.py b/scripts/object/tangible/quest/som_kenobi_jedi_conduit_e.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_jedi_conduit_e.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_jedi_conduit_nw.py b/scripts/object/tangible/quest/som_kenobi_jedi_conduit_nw.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_jedi_conduit_nw.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_jedi_conduit_w.py b/scripts/object/tangible/quest/som_kenobi_jedi_conduit_w.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_jedi_conduit_w.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_mining_computer.py b/scripts/object/tangible/quest/som_kenobi_mining_computer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_mining_computer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_network_computer.py b/scripts/object/tangible/quest/som_kenobi_network_computer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_network_computer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_orf_computer.py b/scripts/object/tangible/quest/som_kenobi_orf_computer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_orf_computer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_power_generator.py b/scripts/object/tangible/quest/som_kenobi_power_generator.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_power_generator.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_recall_holocron.py b/scripts/object/tangible/quest/som_kenobi_recall_holocron.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_recall_holocron.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_reunite_shard_splinters_1.py b/scripts/object/tangible/quest/som_kenobi_reunite_shard_splinters_1.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_reunite_shard_splinters_1.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_reunite_shard_splinters_2.py b/scripts/object/tangible/quest/som_kenobi_reunite_shard_splinters_2.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_reunite_shard_splinters_2.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_rubble_1.py b/scripts/object/tangible/quest/som_kenobi_rubble_1.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_rubble_1.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_rubble_2.py b/scripts/object/tangible/quest/som_kenobi_rubble_2.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_rubble_2.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_kenobi_sith_altar.py b/scripts/object/tangible/quest/som_kenobi_sith_altar.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_kenobi_sith_altar.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_mining_marker_01.py b/scripts/object/tangible/quest/som_mining_marker_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_mining_marker_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_mining_marker_02.py b/scripts/object/tangible/quest/som_mining_marker_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_mining_marker_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_mining_marker_03.py b/scripts/object/tangible/quest/som_mining_marker_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_mining_marker_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_mining_marker_04.py b/scripts/object/tangible/quest/som_mining_marker_04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_mining_marker_04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_mining_marker_05.py b/scripts/object/tangible/quest/som_mining_marker_05.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_mining_marker_05.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_smoking_marker_01.py b/scripts/object/tangible/quest/som_smoking_marker_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_smoking_marker_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_smoking_marker_02.py b/scripts/object/tangible/quest/som_smoking_marker_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_smoking_marker_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_smoking_marker_03.py b/scripts/object/tangible/quest/som_smoking_marker_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_smoking_marker_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_smoking_marker_04.py b/scripts/object/tangible/quest/som_smoking_marker_04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_smoking_marker_04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_smoking_marker_05.py b/scripts/object/tangible/quest/som_smoking_marker_05.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_smoking_marker_05.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_tulrus_marker_01.py b/scripts/object/tangible/quest/som_tulrus_marker_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_tulrus_marker_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_tulrus_marker_02.py b/scripts/object/tangible/quest/som_tulrus_marker_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_tulrus_marker_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_tulrus_marker_03.py b/scripts/object/tangible/quest/som_tulrus_marker_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_tulrus_marker_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_vault_dial.py b/scripts/object/tangible/quest/som_vault_dial.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_vault_dial.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_vault_holocron.py b/scripts/object/tangible/quest/som_vault_holocron.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_vault_holocron.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_vault_lever.py b/scripts/object/tangible/quest/som_vault_lever.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_vault_lever.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_vault_lever_2.py b/scripts/object/tangible/quest/som_vault_lever_2.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_vault_lever_2.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_volcano_marker_01.py b/scripts/object/tangible/quest/som_volcano_marker_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_volcano_marker_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_volcano_marker_02.py b/scripts/object/tangible/quest/som_volcano_marker_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_volcano_marker_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/som_volcano_marker_03.py b/scripts/object/tangible/quest/som_volcano_marker_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/som_volcano_marker_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/speeder_debris_wiring.py b/scripts/object/tangible/quest/speeder_debris_wiring.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/speeder_debris_wiring.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/speeder_junk_engine.py b/scripts/object/tangible/quest/speeder_junk_engine.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/speeder_junk_engine.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/speeder_junk_power.py b/scripts/object/tangible/quest/speeder_junk_power.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/speeder_junk_power.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/speeder_junk_steering.py b/scripts/object/tangible/quest/speeder_junk_steering.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/speeder_junk_steering.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/spice_crate.py b/scripts/object/tangible/quest/spice_crate.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/spice_crate.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/story_loot/som_kenobi_historian_data_disk.py b/scripts/object/tangible/quest/story_loot/som_kenobi_historian_data_disk.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/story_loot/som_kenobi_historian_data_disk.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/story_loot/som_kenobi_historian_data_disk_2.py b/scripts/object/tangible/quest/story_loot/som_kenobi_historian_data_disk_2.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/story_loot/som_kenobi_historian_data_disk_2.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/supply_box.py b/scripts/object/tangible/quest/supply_box.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/supply_box.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/survey_data.py b/scripts/object/tangible/quest/survey_data.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/survey_data.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/survey_data_02.py b/scripts/object/tangible/quest/survey_data_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/survey_data_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/survey_data_03.py b/scripts/object/tangible/quest/survey_data_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/survey_data_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/survey_data_04.py b/scripts/object/tangible/quest/survey_data_04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/survey_data_04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/survey_data_05.py b/scripts/object/tangible/quest/survey_data_05.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/survey_data_05.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/syren_3_computer_terminal.py b/scripts/object/tangible/quest/syren_3_computer_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/syren_3_computer_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_brood_egg_single.py b/scripts/object/tangible/quest/talus_brood_egg_single.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_brood_egg_single.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_brood_egg_single_01.py b/scripts/object/tangible/quest/talus_brood_egg_single_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_brood_egg_single_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_brood_egg_single_02.py b/scripts/object/tangible/quest/talus_brood_egg_single_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_brood_egg_single_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_brood_egg_single_03.py b/scripts/object/tangible/quest/talus_brood_egg_single_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_brood_egg_single_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_brood_egg_single_04.py b/scripts/object/tangible/quest/talus_brood_egg_single_04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_brood_egg_single_04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_brood_egg_single_05.py b/scripts/object/tangible/quest/talus_brood_egg_single_05.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_brood_egg_single_05.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_dearic_aclo_equipment_manifest_comp.py b/scripts/object/tangible/quest/talus_dearic_aclo_equipment_manifest_comp.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_dearic_aclo_equipment_manifest_comp.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_dearic_aclo_medical_comp.py b/scripts/object/tangible/quest/talus_dearic_aclo_medical_comp.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_dearic_aclo_medical_comp.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_dearic_aclo_operations_comp.py b/scripts/object/tangible/quest/talus_dearic_aclo_operations_comp.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_dearic_aclo_operations_comp.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_dearic_aclo_personnel_comp.py b/scripts/object/tangible/quest/talus_dearic_aclo_personnel_comp.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_dearic_aclo_personnel_comp.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_dearic_biochemists_terminal.py b/scripts/object/tangible/quest/talus_dearic_biochemists_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_dearic_biochemists_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_dearic_electronic_toolkit.py b/scripts/object/tangible/quest/talus_dearic_electronic_toolkit.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_dearic_electronic_toolkit.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_dearic_engineers_terminal.py b/scripts/object/tangible/quest/talus_dearic_engineers_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_dearic_engineers_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_dearic_lag_mainframe.py b/scripts/object/tangible/quest/talus_dearic_lag_mainframe.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_dearic_lag_mainframe.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_dearic_lag_medical_droid.py b/scripts/object/tangible/quest/talus_dearic_lag_medical_droid.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_dearic_lag_medical_droid.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_dearic_lag_storage_crate.py b/scripts/object/tangible/quest/talus_dearic_lag_storage_crate.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_dearic_lag_storage_crate.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_dearic_managers_terminal.py b/scripts/object/tangible/quest/talus_dearic_managers_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_dearic_managers_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_dearic_researchers_terminal.py b/scripts/object/tangible/quest/talus_dearic_researchers_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_dearic_researchers_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_dearic_scientists_terminal.py b/scripts/object/tangible/quest/talus_dearic_scientists_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_dearic_scientists_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_dearic_supply_cabinet.py b/scripts/object/tangible/quest/talus_dearic_supply_cabinet.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_dearic_supply_cabinet.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_genetic_potential_datapad_01.py b/scripts/object/tangible/quest/talus_genetic_potential_datapad_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_genetic_potential_datapad_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_genetic_potential_datapad_02.py b/scripts/object/tangible/quest/talus_genetic_potential_datapad_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_genetic_potential_datapad_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_genetic_potential_datapad_03.py b/scripts/object/tangible/quest/talus_genetic_potential_datapad_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_genetic_potential_datapad_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_genetic_potential_datapad_05.py b/scripts/object/tangible/quest/talus_genetic_potential_datapad_05.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_genetic_potential_datapad_05.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_genetic_potential_datapad_06.py b/scripts/object/tangible/quest/talus_genetic_potential_datapad_06.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_genetic_potential_datapad_06.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_genetic_potential_datapad_07.py b/scripts/object/tangible/quest/talus_genetic_potential_datapad_07.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_genetic_potential_datapad_07.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_genetic_potential_datapad_08.py b/scripts/object/tangible/quest/talus_genetic_potential_datapad_08.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_genetic_potential_datapad_08.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_genetic_potential_datapad_09.py b/scripts/object/tangible/quest/talus_genetic_potential_datapad_09.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_genetic_potential_datapad_09.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_genetic_potential_tracking_device_04.py b/scripts/object/tangible/quest/talus_genetic_potential_tracking_device_04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_genetic_potential_tracking_device_04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_grave_robbers_box_large.py b/scripts/object/tangible/quest/talus_grave_robbers_box_large.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_grave_robbers_box_large.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_grave_robbers_box_magseal.py b/scripts/object/tangible/quest/talus_grave_robbers_box_magseal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_grave_robbers_box_magseal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_nashal_directory_terminal.py b/scripts/object/tangible/quest/talus_nashal_directory_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_nashal_directory_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_nashal_droid_head.py b/scripts/object/tangible/quest/talus_nashal_droid_head.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_nashal_droid_head.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_quest_reward_egg_hang.py b/scripts/object/tangible/quest/talus_quest_reward_egg_hang.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_quest_reward_egg_hang.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_quest_reward_egg_single.py b/scripts/object/tangible/quest/talus_quest_reward_egg_single.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_quest_reward_egg_single.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_selonian_electronics_01.py b/scripts/object/tangible/quest/talus_selonian_electronics_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_selonian_electronics_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_selonian_electronics_02.py b/scripts/object/tangible/quest/talus_selonian_electronics_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_selonian_electronics_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_selonian_food_container_01.py b/scripts/object/tangible/quest/talus_selonian_food_container_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_selonian_food_container_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_selonian_food_container_02.py b/scripts/object/tangible/quest/talus_selonian_food_container_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_selonian_food_container_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_selonian_food_container_03.py b/scripts/object/tangible/quest/talus_selonian_food_container_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_selonian_food_container_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_selonian_food_container_04.py b/scripts/object/tangible/quest/talus_selonian_food_container_04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_selonian_food_container_04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_selonian_hide_container_01.py b/scripts/object/tangible/quest/talus_selonian_hide_container_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_selonian_hide_container_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_selonian_hide_container_02.py b/scripts/object/tangible/quest/talus_selonian_hide_container_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_selonian_hide_container_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_selonian_hide_container_03.py b/scripts/object/tangible/quest/talus_selonian_hide_container_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_selonian_hide_container_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_selonian_smuggler_cargo_computer.py b/scripts/object/tangible/quest/talus_selonian_smuggler_cargo_computer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_selonian_smuggler_cargo_computer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_selonian_smuggler_flight_terminal.py b/scripts/object/tangible/quest/talus_selonian_smuggler_flight_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_selonian_smuggler_flight_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_selonian_smuggler_main_computer.py b/scripts/object/tangible/quest/talus_selonian_smuggler_main_computer.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_selonian_smuggler_main_computer.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/talus_selonian_weapons_01.py b/scripts/object/tangible/quest/talus_selonian_weapons_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/talus_selonian_weapons_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/tatooine_ac_antenna_01.py b/scripts/object/tangible/quest/tatooine_ac_antenna_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/tatooine_ac_antenna_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/tatooine_ac_antenna_02.py b/scripts/object/tangible/quest/tatooine_ac_antenna_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/tatooine_ac_antenna_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/tatooine_ac_antenna_03.py b/scripts/object/tangible/quest/tatooine_ac_antenna_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/tatooine_ac_antenna_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/tatooine_anchorjobs_leg.py b/scripts/object/tangible/quest/tatooine_anchorjobs_leg.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/tatooine_anchorjobs_leg.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/tatooine_bestinejobs_xwing.py b/scripts/object/tangible/quest/tatooine_bestinejobs_xwing.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/tatooine_bestinejobs_xwing.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/tatooine_bib_fortuna_hacker_terminal.py b/scripts/object/tangible/quest/tatooine_bib_fortuna_hacker_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/tatooine_bib_fortuna_hacker_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/tatooine_eisley_durr_datapad.py b/scripts/object/tangible/quest/tatooine_eisley_durr_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/tatooine_eisley_durr_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/tatooine_reeyees_jabbas_ledger.py b/scripts/object/tangible/quest/tatooine_reeyees_jabbas_ledger.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/tatooine_reeyees_jabbas_ledger.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/tatooine_reeyees_warhead.py b/scripts/object/tangible/quest/tatooine_reeyees_warhead.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/tatooine_reeyees_warhead.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/axkva_dark_jedi_statue.py b/scripts/object/tangible/quest/township/axkva_dark_jedi_statue.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/axkva_dark_jedi_statue.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/axkva_min_key.py b/scripts/object/tangible/quest/township/axkva_min_key.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/axkva_min_key.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/axkva_nightsister_headdress.py b/scripts/object/tangible/quest/township/axkva_nightsister_headdress.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/axkva_nightsister_headdress.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/axkva_nightsister_scroll.py b/scripts/object/tangible/quest/township/axkva_nightsister_scroll.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/axkva_nightsister_scroll.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/axkva_nightsister_scroll_post.py b/scripts/object/tangible/quest/township/axkva_nightsister_scroll_post.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/axkva_nightsister_scroll_post.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/axkva_nightsister_shards.py b/scripts/object/tangible/quest/township/axkva_nightsister_shards.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/axkva_nightsister_shards.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/axkva_nightsister_skull.py b/scripts/object/tangible/quest/township/axkva_nightsister_skull.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/axkva_nightsister_skull.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/axkva_pedastal.py b/scripts/object/tangible/quest/township/axkva_pedastal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/axkva_pedastal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/axkva_shadow_torch.py b/scripts/object/tangible/quest/township/axkva_shadow_torch.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/axkva_shadow_torch.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/axkva_singing_mtn_gong.py b/scripts/object/tangible/quest/township/axkva_singing_mtn_gong.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/axkva_singing_mtn_gong.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/exar_kun_intro_communication_terminal.py b/scripts/object/tangible/quest/township/exar_kun_intro_communication_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/exar_kun_intro_communication_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/exar_kun_intro_corpse_datapad.py b/scripts/object/tangible/quest/township/exar_kun_intro_corpse_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/exar_kun_intro_corpse_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/exar_kun_intro_grenz_terminal.py b/scripts/object/tangible/quest/township/exar_kun_intro_grenz_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/exar_kun_intro_grenz_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/ig88_feeder_component_01.py b/scripts/object/tangible/quest/township/ig88_feeder_component_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/ig88_feeder_component_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/ig88_feeder_component_02.py b/scripts/object/tangible/quest/township/ig88_feeder_component_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/ig88_feeder_component_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/ig88_feeder_component_03.py b/scripts/object/tangible/quest/township/ig88_feeder_component_03.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/ig88_feeder_component_03.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/ig88_feeder_component_04.py b/scripts/object/tangible/quest/township/ig88_feeder_component_04.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/ig88_feeder_component_04.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/ig88_feeder_component_05.py b/scripts/object/tangible/quest/township/ig88_feeder_component_05.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/ig88_feeder_component_05.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/ig88_feeder_component_06.py b/scripts/object/tangible/quest/township/ig88_feeder_component_06.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/ig88_feeder_component_06.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/ig88_instance_exit.py b/scripts/object/tangible/quest/township/ig88_instance_exit.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/ig88_instance_exit.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/rohak_figurine.py b/scripts/object/tangible/quest/township/rohak_figurine.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/rohak_figurine.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/rohak_figurine_spawner.py b/scripts/object/tangible/quest/township/rohak_figurine_spawner.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/rohak_figurine_spawner.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/star_destroyer_intro_security_console.py b/scripts/object/tangible/quest/township/star_destroyer_intro_security_console.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/star_destroyer_intro_security_console.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/tusken_feeder_01.py b/scripts/object/tangible/quest/township/tusken_feeder_01.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/tusken_feeder_01.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/tusken_feeder_02.py b/scripts/object/tangible/quest/township/tusken_feeder_02.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/tusken_feeder_02.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/township/tusken_feeder_wave.py b/scripts/object/tangible/quest/township/tusken_feeder_wave.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/township/tusken_feeder_wave.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/tulrus_egg.py b/scripts/object/tangible/quest/tulrus_egg.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/tulrus_egg.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/typho_gravemarker.py b/scripts/object/tangible/quest/typho_gravemarker.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/typho_gravemarker.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/typho_mauler_weapons_cache.py b/scripts/object/tangible/quest/typho_mauler_weapons_cache.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/typho_mauler_weapons_cache.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/u13_gungan_statue.py b/scripts/object/tangible/quest/u13_gungan_statue.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/u13_gungan_statue.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/u13_ponda_lab_terminal.py b/scripts/object/tangible/quest/u13_ponda_lab_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/u13_ponda_lab_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/u13_vengeance_archive_terminal.py b/scripts/object/tangible/quest/u13_vengeance_archive_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/u13_vengeance_archive_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/u13_vengeance_datapad.py b/scripts/object/tangible/quest/u13_vengeance_datapad.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/u13_vengeance_datapad.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/u13_vengeance_security_terminal.py b/scripts/object/tangible/quest/u13_vengeance_security_terminal.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/u13_vengeance_security_terminal.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/warl_cave_plant.py b/scripts/object/tangible/quest/warl_cave_plant.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/warl_cave_plant.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/wave_event/aaa_wave_event_test_object.py b/scripts/object/tangible/quest/wave_event/aaa_wave_event_test_object.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/wave_event/aaa_wave_event_test_object.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/wod/wod_rancor_cage.py b/scripts/object/tangible/quest/wod/wod_rancor_cage.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/wod/wod_rancor_cage.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/quest/wod/wod_spider_eggs.py b/scripts/object/tangible/quest/wod/wod_spider_eggs.py
new file mode 100644
index 00000000..ccad8904
--- /dev/null
+++ b/scripts/object/tangible/quest/wod/wod_spider_eggs.py
@@ -0,0 +1,4 @@
+import sys
+
+def setup(core, object):
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/saga_system/rewards/structure_deed_player_house_sandcrawler.py b/scripts/object/tangible/saga_system/rewards/structure_deed_player_house_sandcrawler.py
index ccad8904..07ab9319 100644
--- a/scripts/object/tangible/saga_system/rewards/structure_deed_player_house_sandcrawler.py
+++ b/scripts/object/tangible/saga_system/rewards/structure_deed_player_house_sandcrawler.py
@@ -1,4 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
return
\ No newline at end of file
diff --git a/scripts/object/tangible/survey_tool/survey_tool_all.py b/scripts/object/tangible/survey_tool/survey_tool_all.py
index ccad8904..fa89b86c 100644
--- a/scripts/object/tangible/survey_tool/survey_tool_all.py
+++ b/scripts/object/tangible/survey_tool/survey_tool_all.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'item/survey_tool')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/survey_tool/survey_tool_gas.py b/scripts/object/tangible/survey_tool/survey_tool_gas.py
index ccad8904..fa89b86c 100644
--- a/scripts/object/tangible/survey_tool/survey_tool_gas.py
+++ b/scripts/object/tangible/survey_tool/survey_tool_gas.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'item/survey_tool')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/survey_tool/survey_tool_geo_thermal.py b/scripts/object/tangible/survey_tool/survey_tool_geo_thermal.py
index ccad8904..fa89b86c 100644
--- a/scripts/object/tangible/survey_tool/survey_tool_geo_thermal.py
+++ b/scripts/object/tangible/survey_tool/survey_tool_geo_thermal.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'item/survey_tool')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/survey_tool/survey_tool_inorganic.py b/scripts/object/tangible/survey_tool/survey_tool_inorganic.py
index ccad8904..fa89b86c 100644
--- a/scripts/object/tangible/survey_tool/survey_tool_inorganic.py
+++ b/scripts/object/tangible/survey_tool/survey_tool_inorganic.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'item/survey_tool')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/survey_tool/survey_tool_liquid.py b/scripts/object/tangible/survey_tool/survey_tool_liquid.py
index ccad8904..fa89b86c 100644
--- a/scripts/object/tangible/survey_tool/survey_tool_liquid.py
+++ b/scripts/object/tangible/survey_tool/survey_tool_liquid.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'item/survey_tool')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/survey_tool/survey_tool_lumber.py b/scripts/object/tangible/survey_tool/survey_tool_lumber.py
index ccad8904..fa89b86c 100644
--- a/scripts/object/tangible/survey_tool/survey_tool_lumber.py
+++ b/scripts/object/tangible/survey_tool/survey_tool_lumber.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'item/survey_tool')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/survey_tool/survey_tool_mineral.py b/scripts/object/tangible/survey_tool/survey_tool_mineral.py
index ccad8904..fa89b86c 100644
--- a/scripts/object/tangible/survey_tool/survey_tool_mineral.py
+++ b/scripts/object/tangible/survey_tool/survey_tool_mineral.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'item/survey_tool')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/survey_tool/survey_tool_moisture.py b/scripts/object/tangible/survey_tool/survey_tool_moisture.py
index ccad8904..fa89b86c 100644
--- a/scripts/object/tangible/survey_tool/survey_tool_moisture.py
+++ b/scripts/object/tangible/survey_tool/survey_tool_moisture.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'item/survey_tool')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/survey_tool/survey_tool_organic.py b/scripts/object/tangible/survey_tool/survey_tool_organic.py
index ccad8904..fa89b86c 100644
--- a/scripts/object/tangible/survey_tool/survey_tool_organic.py
+++ b/scripts/object/tangible/survey_tool/survey_tool_organic.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'item/survey_tool')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/survey_tool/survey_tool_solar.py b/scripts/object/tangible/survey_tool/survey_tool_solar.py
index ccad8904..fa89b86c 100644
--- a/scripts/object/tangible/survey_tool/survey_tool_solar.py
+++ b/scripts/object/tangible/survey_tool/survey_tool_solar.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'item/survey_tool')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/survey_tool/survey_tool_wind.py b/scripts/object/tangible/survey_tool/survey_tool_wind.py
index ccad8904..fa89b86c 100644
--- a/scripts/object/tangible/survey_tool/survey_tool_wind.py
+++ b/scripts/object/tangible/survey_tool/survey_tool_wind.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'item/survey_tool')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/tcg/series3/structure_deed_jedi_meditation_room_deed.py b/scripts/object/tangible/tcg/series3/structure_deed_jedi_meditation_room_deed.py
index ccad8904..01e3b335 100644
--- a/scripts/object/tangible/tcg/series3/structure_deed_jedi_meditation_room_deed.py
+++ b/scripts/object/tangible/tcg/series3/structure_deed_jedi_meditation_room_deed.py
@@ -1,4 +1,10 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
+ return
+
+
\ No newline at end of file
diff --git a/scripts/object/tangible/tcg/series3/structure_deed_sith_meditation_room_deed.py b/scripts/object/tangible/tcg/series3/structure_deed_sith_meditation_room_deed.py
index ccad8904..01e3b335 100644
--- a/scripts/object/tangible/tcg/series3/structure_deed_sith_meditation_room_deed.py
+++ b/scripts/object/tangible/tcg/series3/structure_deed_sith_meditation_room_deed.py
@@ -1,4 +1,10 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
+ return
+
+
\ No newline at end of file
diff --git a/scripts/object/tangible/tcg/series5/structure_deed_player_house_atat.py b/scripts/object/tangible/tcg/series5/structure_deed_player_house_atat.py
index ccad8904..af249f3e 100644
--- a/scripts/object/tangible/tcg/series5/structure_deed_player_house_atat.py
+++ b/scripts/object/tangible/tcg/series5/structure_deed_player_house_atat.py
@@ -1,4 +1,14 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ object.setConstructorTemplate('object/building/player/construction/shared_construction_player_house_atat.iff')
+ object.setStructureTemplate('object/tangible/tcg/series5/shared_structure_deed_player_house_atat.iff')
+ object.setLotRequirement(3)
+ object.setBMR(8)
+ return
+
+def use(core, actor, object):
+ return
+
+
\ No newline at end of file
diff --git a/scripts/object/tangible/tcg/series5/structure_deed_player_house_hangar.py b/scripts/object/tangible/tcg/series5/structure_deed_player_house_hangar.py
index ccad8904..01e3b335 100644
--- a/scripts/object/tangible/tcg/series5/structure_deed_player_house_hangar.py
+++ b/scripts/object/tangible/tcg/series5/structure_deed_player_house_hangar.py
@@ -1,4 +1,10 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setAttachment('radial_filename', 'deeds/structureDeed')
+ return
+
+def use(core, actor, object):
+ return
+
+
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_bank.py b/scripts/object/tangible/terminal/terminal_bank.py
index 4f068472..0a27868e 100644
--- a/scripts/object/tangible/terminal/terminal_bank.py
+++ b/scripts/object/tangible/terminal/terminal_bank.py
@@ -1,7 +1,7 @@
import sys
def setup(core, object):
- object.setAttachment('radial_filename', 'bank')
- core.mapService.addLocation(object.getPlanet(), 'Bank Terminal', object.getPosition().x, object.getPosition().z, 41, 42, 0)
+ object.setAttachment('radial_filename', 'terminal/bank')
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:terminal_bank', object.getPosition().x, object.getPosition().z, 2, 42, 0)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_bazaar.py b/scripts/object/tangible/terminal/terminal_bazaar.py
index e94866f0..967ff912 100644
--- a/scripts/object/tangible/terminal/terminal_bazaar.py
+++ b/scripts/object/tangible/terminal/terminal_bazaar.py
@@ -1,7 +1,6 @@
import sys
def setup(core, object):
-
- core.mapService.addLocation(object.getPlanet(), 'Bazaar Terminal', object.getPosition().x, object.getPosition().z, 41, 43, 0)
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:terminal_bazaar', object.getPosition().x, object.getPosition().z, 41, 43, 0)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_character_builder.py b/scripts/object/tangible/terminal/terminal_character_builder.py
index ccad8904..306a13df 100644
--- a/scripts/object/tangible/terminal/terminal_character_builder.py
+++ b/scripts/object/tangible/terminal/terminal_character_builder.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'object/usable')
+ return
+
+def use(core, owner, target):
+ core.devService.sendCharacterBuilderSUI(owner, 0);
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_city.py b/scripts/object/tangible/terminal/terminal_city.py
index ccad8904..f7302163 100644
--- a/scripts/object/tangible/terminal/terminal_city.py
+++ b/scripts/object/tangible/terminal/terminal_city.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'terminal/city_maintenance_terminal')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_city_junk_dealer.py b/scripts/object/tangible/terminal/terminal_city_junk_dealer.py
index ccad8904..f09f88cc 100644
--- a/scripts/object/tangible/terminal/terminal_city_junk_dealer.py
+++ b/scripts/object/tangible/terminal/terminal_city_junk_dealer.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:junk_dealer', object.getPosition().x, object.getPosition().z, 26, 81, 0)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_cloning.py b/scripts/object/tangible/terminal/terminal_cloning.py
index 91f80095..46138012 100644
--- a/scripts/object/tangible/terminal/terminal_cloning.py
+++ b/scripts/object/tangible/terminal/terminal_cloning.py
@@ -1,6 +1,7 @@
import sys
def setup(core, object):
- object.setAttachment('radial_filename', 'cloning_terminal')
+ object.setAttachment('radial_filename', 'terminal/cloning_terminal')
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_mission.py b/scripts/object/tangible/terminal/terminal_mission.py
index 4884aa67..10fe46c8 100644
--- a/scripts/object/tangible/terminal/terminal_mission.py
+++ b/scripts/object/tangible/terminal/terminal_mission.py
@@ -1,7 +1,7 @@
import sys
def setup(core, object):
-
- core.mapService.addLocation(object.getPlanet(), 'Mission Terminal', object.getPosition().x, object.getPosition().z, 41, 44, 0)
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:terminal_mission', object.getPosition().x, object.getPosition().z, 41, 44, 0)
+ object.setAttachment("terminalType", 1)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_mission_artisan.py b/scripts/object/tangible/terminal/terminal_mission_artisan.py
index 911010d8..7bbd42dd 100644
--- a/scripts/object/tangible/terminal/terminal_mission_artisan.py
+++ b/scripts/object/tangible/terminal/terminal_mission_artisan.py
@@ -1,7 +1,7 @@
import sys
def setup(core, object):
-
- core.mapService.addLocation(object.getPlanet(), 'Artisan Mission Terminal', object.getPosition().x, object.getPosition().z, 41, 21, 0)
+ object.setAttachment("terminalType", 4)
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:terminal_mission_artisan', object.getPosition().x, object.getPosition().z, 41, 76, 0)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_mission_bounty.py b/scripts/object/tangible/terminal/terminal_mission_bounty.py
index ccad8904..f97abb2a 100644
--- a/scripts/object/tangible/terminal/terminal_mission_bounty.py
+++ b/scripts/object/tangible/terminal/terminal_mission_bounty.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
+ object.setAttachment("terminalType", 2)
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:terminal_mission_bounty', object.getPosition().x, object.getPosition().z, 41, 78, 0)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_mission_entertainer.py b/scripts/object/tangible/terminal/terminal_mission_entertainer.py
index 433b5f91..31bc4a90 100644
--- a/scripts/object/tangible/terminal/terminal_mission_entertainer.py
+++ b/scripts/object/tangible/terminal/terminal_mission_entertainer.py
@@ -1,7 +1,6 @@
import sys
def setup(core, object):
-
- core.mapService.addLocation(object.getPlanet(), 'Entertainer Mission Terminal', object.getPosition().x, object.getPosition().z, 41, 24, 0)
- return
-
\ No newline at end of file
+ object.setAttachment("terminalType", 2)
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:terminal_mission_entertainer', object.getPosition().x, object.getPosition().z, 41, 75, 0)
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_mission_imperial.py b/scripts/object/tangible/terminal/terminal_mission_imperial.py
index 8e4773b5..216f3bfc 100644
--- a/scripts/object/tangible/terminal/terminal_mission_imperial.py
+++ b/scripts/object/tangible/terminal/terminal_mission_imperial.py
@@ -1,7 +1,6 @@
import sys
def setup(core, object):
-
- core.mapService.addLocation(object.getPlanet(), 'Imperial Mission Terminal', object.getPosition().x, object.getPosition().z, 41, 46, 0)
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:terminal_mission_imperial', object.getPosition().x, object.getPosition().z, 41, 80, 0)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_mission_rebel.py b/scripts/object/tangible/terminal/terminal_mission_rebel.py
index 0bb50bbe..f435f149 100644
--- a/scripts/object/tangible/terminal/terminal_mission_rebel.py
+++ b/scripts/object/tangible/terminal/terminal_mission_rebel.py
@@ -1,7 +1,6 @@
import sys
def setup(core, object):
-
- core.mapService.addLocation(object.getPlanet(), 'Rebel Mission Terminal', object.getPosition().x, object.getPosition().z, 41, 45, 0)
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:terminal_mission_rebel', object.getPosition().x, object.getPosition().z, 41, 79, 0)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_mission_scout.py b/scripts/object/tangible/terminal/terminal_mission_scout.py
index ccad8904..eb7c1e2a 100644
--- a/scripts/object/tangible/terminal/terminal_mission_scout.py
+++ b/scripts/object/tangible/terminal/terminal_mission_scout.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ core.mapService.addLocation(object.getPlanet(), '@map_loc_cat_n:terminal_mission_scout', object.getPosition().x, object.getPosition().z, 41, 77, 0)
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_player_structure.py b/scripts/object/tangible/terminal/terminal_player_structure.py
index ccad8904..dd5b18cd 100644
--- a/scripts/object/tangible/terminal/terminal_player_structure.py
+++ b/scripts/object/tangible/terminal/terminal_player_structure.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/structure_management_terminal')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_player_structure_new.py b/scripts/object/tangible/terminal/terminal_player_structure_new.py
index ccad8904..dd5b18cd 100644
--- a/scripts/object/tangible/terminal/terminal_player_structure_new.py
+++ b/scripts/object/tangible/terminal/terminal_player_structure_new.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/structure_management_terminal')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_player_structure_nosnap.py b/scripts/object/tangible/terminal/terminal_player_structure_nosnap.py
index ccad8904..dd5b18cd 100644
--- a/scripts/object/tangible/terminal/terminal_player_structure_nosnap.py
+++ b/scripts/object/tangible/terminal/terminal_player_structure_nosnap.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/structure_management_terminal')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_player_structure_nosnap_mini.py b/scripts/object/tangible/terminal/terminal_player_structure_nosnap_mini.py
index ccad8904..dd5b18cd 100644
--- a/scripts/object/tangible/terminal/terminal_player_structure_nosnap_mini.py
+++ b/scripts/object/tangible/terminal/terminal_player_structure_nosnap_mini.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'structure/structure_management_terminal')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/terminal/terminal_travel.py b/scripts/object/tangible/terminal/terminal_travel.py
index 160aac1c..07222fe6 100644
--- a/scripts/object/tangible/terminal/terminal_travel.py
+++ b/scripts/object/tangible/terminal/terminal_travel.py
@@ -1,5 +1,5 @@
import sys
def setup(core, object):
- object.setAttachment('radial_filename', 'travel_terminal')
+ object.setAttachment('radial_filename', 'terminal/travel_terminal')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/travel/ticket_collector/ticket_collector.py b/scripts/object/tangible/travel/ticket_collector/ticket_collector.py
index d243308d..a4dcc12f 100644
--- a/scripts/object/tangible/travel/ticket_collector/ticket_collector.py
+++ b/scripts/object/tangible/travel/ticket_collector/ticket_collector.py
@@ -1,5 +1,5 @@
import sys
def setup(core, object):
- object.setAttachment('radial_filename', 'npc_ticket_collector')
+ object.setAttachment('radial_filename', 'npc/npc_ticket_collector')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/travel/travel_ticket/base/base_travel_ticket.py b/scripts/object/tangible/travel/travel_ticket/base/base_travel_ticket.py
index ccad8904..446e9f9f 100644
--- a/scripts/object/tangible/travel/travel_ticket/base/base_travel_ticket.py
+++ b/scripts/object/tangible/travel/travel_ticket/base/base_travel_ticket.py
@@ -1,4 +1,5 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'item/travel_ticket')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_01.py b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_01.py
index ccad8904..341b98ac 100644
--- a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_01.py
+++ b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_01.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Cast Wing in Flight
\ No newline at end of file
diff --git a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_02.py b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_02.py
index ccad8904..dc88ba68 100644
--- a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_02.py
+++ b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_02.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #decimator
\ No newline at end of file
diff --git a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_03.py b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_03.py
index ccad8904..b37b2640 100644
--- a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_03.py
+++ b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_03.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Tatooine Dune Speeder
\ No newline at end of file
diff --git a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_04.py b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_04.py
index ccad8904..5cf9ae7d 100644
--- a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_04.py
+++ b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_04.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Weapon of War
\ No newline at end of file
diff --git a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_05.py b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_05.py
index ccad8904..df328c90 100644
--- a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_05.py
+++ b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_05.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Fighter Study
\ No newline at end of file
diff --git a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_06.py b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_06.py
index ccad8904..d4569602 100644
--- a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_06.py
+++ b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_06.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Hutt Greed
\ No newline at end of file
diff --git a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_07.py b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_07.py
index ccad8904..ba27db78 100644
--- a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_07.py
+++ b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_07.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Smugglers Run
\ No newline at end of file
diff --git a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_08.py b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_08.py
index ccad8904..4c392aef 100644
--- a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_08.py
+++ b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_08.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Imperial Oppression
\ No newline at end of file
diff --git a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_09.py b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_09.py
index ccad8904..206eadd9 100644
--- a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_09.py
+++ b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_09.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ Emporer's Eyes
\ No newline at end of file
diff --git a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_10.py b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_10.py
index ccad8904..4b4ed376 100644
--- a/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_10.py
+++ b/scripts/object/tangible/veteran_reward/one_year_anniversary/painting_10.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+ #Dusk in Kachiro
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/armor/appearance_invisible_bicep_l.py b/scripts/object/tangible/wearables/armor/appearance_invisible_bicep_l.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/armor/appearance_invisible_bicep_l.py
+++ b/scripts/object/tangible/wearables/armor/appearance_invisible_bicep_l.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/armor/appearance_invisible_bicep_r.py b/scripts/object/tangible/wearables/armor/appearance_invisible_bicep_r.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/armor/appearance_invisible_bicep_r.py
+++ b/scripts/object/tangible/wearables/armor/appearance_invisible_bicep_r.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/armor/appearance_invisible_bracer_l.py b/scripts/object/tangible/wearables/armor/appearance_invisible_bracer_l.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/armor/appearance_invisible_bracer_l.py
+++ b/scripts/object/tangible/wearables/armor/appearance_invisible_bracer_l.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/armor/appearance_invisible_bracer_r.py b/scripts/object/tangible/wearables/armor/appearance_invisible_bracer_r.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/armor/appearance_invisible_bracer_r.py
+++ b/scripts/object/tangible/wearables/armor/appearance_invisible_bracer_r.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bicep_l_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bicep_l_02_01.py
new file mode 100644
index 00000000..9fa443b7
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bicep_l_02_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_bounty_hunter_roadmap_bicep_l_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_bounty_hunter_roadmap_bicep_l_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bicep_r_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bicep_r_02_01.py
new file mode 100644
index 00000000..f8e88597
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bicep_r_02_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_bounty_hunter_roadmap_bicep_r_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_bounty_hunter_roadmap_bicep_r_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_boots_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_boots_02_01.py
new file mode 100644
index 00000000..dcbb349e
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_boots_02_01.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_bounty_hunter_roadmap_boots_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_bounty_hunter_roadmap_boots_02_01')
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bracer_l_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bracer_l_02_01.py
new file mode 100644
index 00000000..5ca4b024
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bracer_l_02_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_bounty_hunter_roadmap_bracer_l_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_bounty_hunter_roadmap_bracer_l_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bracer_r_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bracer_r_02_01.py
new file mode 100644
index 00000000..83bf330b
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_bracer_r_02_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_bounty_hunter_roadmap_bracer_r_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_bounty_hunter_roadmap_bracer_r_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_chest_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_chest_02_01.py
new file mode 100644
index 00000000..815a1640
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_chest_02_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_bounty_hunter_roadmap_chest_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_bounty_hunter_roadmap_chest_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_gloves_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_gloves_02_01.py
new file mode 100644
index 00000000..0edc69cc
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_gloves_02_01.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_bounty_hunter_roadmap_gloves_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_bounty_hunter_roadmap_gloves_02_01')
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_helmet_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_helmet_02_01.py
new file mode 100644
index 00000000..f798283c
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_helmet_02_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_bounty_hunter_roadmap_helmet_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_bounty_hunter_roadmap_helmet_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_leggings_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_leggings_02_01.py
new file mode 100644
index 00000000..6ad62c58
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_bounty_hunter_roadmap_leggings_02_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_bounty_hunter_roadmap_leggings_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_bounty_hunter_roadmap_leggings_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bicep_l_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bicep_l_02_01.py
new file mode 100644
index 00000000..725b9056
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bicep_l_02_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_commando_roadmap_bicep_l_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_commando_roadmap_bicep_l_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bicep_r_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bicep_r_02_01.py
new file mode 100644
index 00000000..a0c37a28
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bicep_r_02_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_commando_roadmap_bicep_r_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_commando_roadmap_bicep_r_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_boots_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_boots_02_01.py
new file mode 100644
index 00000000..16df82a0
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_boots_02_01.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_commando_roadmap_boots_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_commando_roadmap_boots_02_01')
+ object.setStringAttribute('class_required', 'Commando')
+ object.setStringAttribute('armor_category', 'Assault')
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bracer_l_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bracer_l_02_01.py
new file mode 100644
index 00000000..0cdc5e97
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bracer_l_02_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_commando_roadmap_bracer_l_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_commando_roadmap_bracer_l_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bracer_r_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bracer_r_02_01.py
new file mode 100644
index 00000000..c4e221c2
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_bracer_r_02_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_commando_roadmap_bracer_r_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_commando_roadmap_bracer_r_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_chest_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_chest_02_01.py
new file mode 100644
index 00000000..af0fa26f
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_chest_02_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_commando_roadmap_chest_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_commando_roadmap_chest_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_gloves_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_gloves_02_01.py
new file mode 100644
index 00000000..17ee0ecd
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_gloves_02_01.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_commando_roadmap_gloves_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_commando_roadmap_gloves_02_01')
+ object.setStringAttribute('class_required', 'Commando')
+ object.setStringAttribute('armor_category', 'Assault')
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_helmet_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_helmet_02_01.py
new file mode 100644
index 00000000..1d8a8c05
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_helmet_02_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_commando_roadmap_helmet_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_commando_roadmap_helmet_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_leggings_02_01.py b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_leggings_02_01.py
new file mode 100644
index 00000000..3ebce0ac
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/composite/armor_commando_roadmap_leggings_02_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_commando_roadmap_leggings_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_commando_roadmap_leggings_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bicep_l_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bicep_l_02_03.py
new file mode 100644
index 00000000..67da6ef4
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bicep_l_02_03.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_ithorian_roadmap_bicep_l_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_ithorian_roadmap_bicep_l_02_03')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bicep_r_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bicep_r_02_03.py
new file mode 100644
index 00000000..53f0fb21
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bicep_r_02_03.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_ithorian_roadmap_bicep_r_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_ithorian_roadmap_bicep_r_02_03')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_boots_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_boots_02_03.py
new file mode 100644
index 00000000..5822a2dc
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_boots_02_03.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_ithorian_roadmap_boots_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_ithorian_roadmap_boots_02_03')
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ return
diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bracer_l_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bracer_l_02_03.py
new file mode 100644
index 00000000..2c96e2dd
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bracer_l_02_03.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_ithorian_roadmap_bracer_l_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_ithorian_roadmap_bracer_l_02_03')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bracer_r_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bracer_r_02_03.py
new file mode 100644
index 00000000..1fee94a5
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_bracer_r_02_03.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_ithorian_roadmap_bracer_r_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_ithorian_roadmap_bracer_r_02_03')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_chest_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_chest_02_03.py
new file mode 100644
index 00000000..b17b98cc
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_chest_02_03.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_ithorian_roadmap_chest_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_ithorian_roadmap_chest_02_03')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_gloves_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_gloves_02_03.py
new file mode 100644
index 00000000..54aab0ca
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_gloves_02_03.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_ithorian_roadmap_gloves_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_ithorian_roadmap_gloves_02_03')
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ return
diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_helmet_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_helmet_02_03.py
new file mode 100644
index 00000000..91f77a60
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_helmet_02_03.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_ithorian_roadmap_helmet_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_ithorian_roadmap_helmet_02_03')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_leggings_02_03.py b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_leggings_02_03.py
new file mode 100644
index 00000000..e77eef3a
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/ithorian_sentinel/armor_ithorian_roadmap_leggings_02_03.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_ithorian_roadmap_leggings_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_ithorian_roadmap_leggings_02_03')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bicep_l_02_03.py b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bicep_l_02_03.py
new file mode 100644
index 00000000..765a3379
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bicep_l_02_03.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_wookiee_roadmap_bicep_l_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_wookiee_roadmap_bicep_l_02_03')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bicep_r_02_03.py b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bicep_r_02_03.py
new file mode 100644
index 00000000..f25225df
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bicep_r_02_03.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_wookiee_roadmap_bicep_r_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_wookiee_roadmap_bicep_r_02_03')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bracer_l_02_03.py b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bracer_l_02_03.py
new file mode 100644
index 00000000..808e135d
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bracer_l_02_03.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_wookiee_roadmap_bracer_l_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_wookiee_roadmap_bracer_l_02_03')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bracer_r_02_03.py b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bracer_r_02_03.py
new file mode 100644
index 00000000..a2b95572
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_bracer_r_02_03.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_wookiee_roadmap_bracer_r_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_wookiee_roadmap_bracer_r_02_03')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_chest_02_03.py b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_chest_02_03.py
new file mode 100644
index 00000000..15500015
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_chest_02_03.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_wookiee_roadmap_chest_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_wookiee_roadmap_chest_02_03')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_leggings_02_03.py b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_leggings_02_03.py
new file mode 100644
index 00000000..ca4b2cfa
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/kashyyykian_hunting/armor_wookiee_roadmap_leggings_02_03.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('armor_wookiee_roadmap_leggings_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('armor_wookiee_roadmap_leggings_02_03')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 3)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setStringAttribute('armor_category', 'Assault')
+ object.setIntAttribute('cat_armor_standard_protection.kinetic', 2640)
+ object.setIntAttribute('cat_armor_standard_protection.energy', 640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_heat', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_cold', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_acid', 1640)
+ object.setIntAttribute('cat_armor_special_protection.special_protection_type_electricity', 1640)
+ return
diff --git a/scripts/object/tangible/wearables/armor/nightsister/armor_nightsister_bicep_r_s01.py b/scripts/object/tangible/wearables/armor/nightsister/armor_nightsister_bicep_r_s01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/armor/nightsister/armor_nightsister_bicep_r_s01.py
+++ b/scripts/object/tangible/wearables/armor/nightsister/armor_nightsister_bicep_r_s01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_bounty_hunter_01_02.py b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_bounty_hunter_01_02.py
new file mode 100644
index 00000000..c845f9fb
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_bounty_hunter_01_02.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_roadmap_belt_bounty_hunter_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_roadmap_belt_bounty_hunter_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 15)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('required_combat_level', 90)
+ return
diff --git a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_commando_01_02.py b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_commando_01_02.py
new file mode 100644
index 00000000..03d3b4ae
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_commando_01_02.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_roadmap_belt_commando_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_roadmap_belt_commando_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 15)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('required_combat_level', 90)
+ return
diff --git a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_force_sensitive_01_02.py b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_force_sensitive_01_02.py
new file mode 100644
index 00000000..e383382b
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_force_sensitive_01_02.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_roadmap_belt_force_sensitive_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_roadmap_belt_force_sensitive_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 15)
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 90)
+ return
diff --git a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_spy_01_02.py b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_spy_01_02.py
new file mode 100644
index 00000000..71012ad3
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_spy_01_02.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_roadmap_belt_spy_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_roadmap_belt_spy_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 15)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('required_combat_level', 90)
+ return
diff --git a/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_trader_01_02.py b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_trader_01_02.py
new file mode 100644
index 00000000..353407c0
--- /dev/null
+++ b/scripts/object/tangible/wearables/armor/zam/item_roadmap_belt_trader_01_02.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_roadmap_belt_trader_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_roadmap_belt_trader_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 15)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 15)
+ object.setStringAttribute('class_required', 'Trader')
+ object.setIntAttribute('required_combat_level', 90)
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/backpack/back_gmf_wings.py b/scripts/object/tangible/wearables/backpack/back_gmf_wings.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/backpack/back_gmf_wings.py
+++ b/scripts/object/tangible/wearables/backpack/back_gmf_wings.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/backpack/back_love_day_10_blue_wings.py b/scripts/object/tangible/wearables/backpack/back_love_day_10_blue_wings.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/backpack/back_love_day_10_blue_wings.py
+++ b/scripts/object/tangible/wearables/backpack/back_love_day_10_blue_wings.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/backpack/back_love_day_10_golden_wings.py b/scripts/object/tangible/wearables/backpack/back_love_day_10_golden_wings.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/backpack/back_love_day_10_golden_wings.py
+++ b/scripts/object/tangible/wearables/backpack/back_love_day_10_golden_wings.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/backpack/back_love_day_10_pink_wings.py b/scripts/object/tangible/wearables/backpack/back_love_day_10_pink_wings.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/backpack/back_love_day_10_pink_wings.py
+++ b/scripts/object/tangible/wearables/backpack/back_love_day_10_pink_wings.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/backpack/back_love_day_11_hue_wings.py b/scripts/object/tangible/wearables/backpack/back_love_day_11_hue_wings.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/backpack/back_love_day_11_hue_wings.py
+++ b/scripts/object/tangible/wearables/backpack/back_love_day_11_hue_wings.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/backpack/back_love_day_wings.py b/scripts/object/tangible/wearables/backpack/back_love_day_wings.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/backpack/back_love_day_wings.py
+++ b/scripts/object/tangible/wearables/backpack/back_love_day_wings.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/backpack/backpack_gmf_01.py b/scripts/object/tangible/wearables/backpack/backpack_gmf_01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/backpack/backpack_gmf_01.py
+++ b/scripts/object/tangible/wearables/backpack/backpack_gmf_01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/backpack/empireday_rebel_endor_backpack.py b/scripts/object/tangible/wearables/backpack/empireday_rebel_endor_backpack.py
index ccad8904..fa0152e7 100644
--- a/scripts/object/tangible/wearables/backpack/empireday_rebel_endor_backpack.py
+++ b/scripts/object/tangible/wearables/backpack/empireday_rebel_endor_backpack.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+ object.setStringAttribute('cost', '[15] Remembrance Day Token')
+ object.setStringAttribute('faction_restriction', 'Rebel Alliance')
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/backpack/empireday_sandtrooper_backpack.py b/scripts/object/tangible/wearables/backpack/empireday_sandtrooper_backpack.py
index ccad8904..c86c4ed5 100644
--- a/scripts/object/tangible/wearables/backpack/empireday_sandtrooper_backpack.py
+++ b/scripts/object/tangible/wearables/backpack/empireday_sandtrooper_backpack.py
@@ -1,4 +1,9 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+ object.setStringAttribute('cost', '[15] Empire Day Token')
+ object.setStringAttribute('faction_restriction', 'Imperial')
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/backpack/fannypack_s01.py b/scripts/object/tangible/wearables/backpack/fannypack_s01.py
index ccad8904..b0e3e3ee 100644
--- a/scripts/object/tangible/wearables/backpack/fannypack_s01.py
+++ b/scripts/object/tangible/wearables/backpack/fannypack_s01.py
@@ -1,4 +1,16 @@
import sys
def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_fannypack_04_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_fannypack_04_01')
+
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 50)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 50)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 50)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 50)
+
+ object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1')
+ object.setAttachment('setBonus', 'set_bonus_jedi_robe')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/backpack/item_bounty_hunter_backpack_01_02.py b/scripts/object/tangible/wearables/backpack/item_bounty_hunter_backpack_01_02.py
new file mode 100644
index 00000000..b1bdc206
--- /dev/null
+++ b/scripts/object/tangible/wearables/backpack/item_bounty_hunter_backpack_01_02.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bounty_hunter_backpack_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bounty_hunter_backpack_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 5)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ return
diff --git a/scripts/object/tangible/wearables/backpack/item_commando_backpack_01_02.py b/scripts/object/tangible/wearables/backpack/item_commando_backpack_01_02.py
new file mode 100644
index 00000000..ffc76111
--- /dev/null
+++ b/scripts/object/tangible/wearables/backpack/item_commando_backpack_01_02.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_commando_backpack_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_commando_backpack_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 5)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5)
+ object.setStringAttribute('class_required', 'Commando')
+ return
diff --git a/scripts/object/tangible/wearables/backpack/item_spy_backpack_01_02.py b/scripts/object/tangible/wearables/backpack/item_spy_backpack_01_02.py
new file mode 100644
index 00000000..f6412dee
--- /dev/null
+++ b/scripts/object/tangible/wearables/backpack/item_spy_backpack_01_02.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_spy_backpack_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_spy_backpack_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 5)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5)
+ object.setStringAttribute('class_required', 'Spy')
+ return
diff --git a/scripts/object/tangible/wearables/backpack/item_trader_backpack_01_02.py b/scripts/object/tangible/wearables/backpack/item_trader_backpack_01_02.py
new file mode 100644
index 00000000..9eb23a37
--- /dev/null
+++ b/scripts/object/tangible/wearables/backpack/item_trader_backpack_01_02.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_trader_backpack_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_trader_backpack_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:expertise_assembly_increase_artisan', 5)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:hiring', 3)
+ object.setStringAttribute('class_required', 'Trader')
+ return
diff --git a/scripts/object/tangible/wearables/bandolier/bandolier_tusken_raider_s01.py b/scripts/object/tangible/wearables/bandolier/bandolier_tusken_raider_s01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/bandolier/bandolier_tusken_raider_s01.py
+++ b/scripts/object/tangible/wearables/bandolier/bandolier_tusken_raider_s01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bandolier/bandolier_tusken_raider_s02.py b/scripts/object/tangible/wearables/bandolier/bandolier_tusken_raider_s02.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/bandolier/bandolier_tusken_raider_s02.py
+++ b/scripts/object/tangible/wearables/bandolier/bandolier_tusken_raider_s02.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bandolier/bandolier_tusken_raider_s03.py b/scripts/object/tangible/wearables/bandolier/bandolier_tusken_raider_s03.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/bandolier/bandolier_tusken_raider_s03.py
+++ b/scripts/object/tangible/wearables/bandolier/bandolier_tusken_raider_s03.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/belt/appearance_invisible_s01.py b/scripts/object/tangible/wearables/belt/appearance_invisible_s01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/belt/appearance_invisible_s01.py
+++ b/scripts/object/tangible/wearables/belt/appearance_invisible_s01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/belt/belt_whip_s01.py b/scripts/object/tangible/wearables/belt/belt_whip_s01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/belt/belt_whip_s01.py
+++ b/scripts/object/tangible/wearables/belt/belt_whip_s01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bodysuit/bodysuit_atat.py b/scripts/object/tangible/wearables/bodysuit/bodysuit_atat.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/bodysuit/bodysuit_atat.py
+++ b/scripts/object/tangible/wearables/bodysuit/bodysuit_atat.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bodysuit/bodysuit_atat_quest.py b/scripts/object/tangible/wearables/bodysuit/bodysuit_atat_quest.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/bodysuit/bodysuit_atat_quest.py
+++ b/scripts/object/tangible/wearables/bodysuit/bodysuit_atat_quest.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bodysuit/bodysuit_bwing.py b/scripts/object/tangible/wearables/bodysuit/bodysuit_bwing.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/bodysuit/bodysuit_bwing.py
+++ b/scripts/object/tangible/wearables/bodysuit/bodysuit_bwing.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bodysuit/bodysuit_bwing_quest.py b/scripts/object/tangible/wearables/bodysuit/bodysuit_bwing_quest.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/bodysuit/bodysuit_bwing_quest.py
+++ b/scripts/object/tangible/wearables/bodysuit/bodysuit_bwing_quest.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bodysuit/bodysuit_outbreak_prisoner.py b/scripts/object/tangible/wearables/bodysuit/bodysuit_outbreak_prisoner.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/bodysuit/bodysuit_outbreak_prisoner.py
+++ b/scripts/object/tangible/wearables/bodysuit/bodysuit_outbreak_prisoner.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bodysuit/bodysuit_tie_fighter.py b/scripts/object/tangible/wearables/bodysuit/bodysuit_tie_fighter.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/bodysuit/bodysuit_tie_fighter.py
+++ b/scripts/object/tangible/wearables/bodysuit/bodysuit_tie_fighter.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bodysuit/bodysuit_tie_fighter_quest.py b/scripts/object/tangible/wearables/bodysuit/bodysuit_tie_fighter_quest.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/bodysuit/bodysuit_tie_fighter_quest.py
+++ b/scripts/object/tangible/wearables/bodysuit/bodysuit_tie_fighter_quest.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bodysuit/item_trader_roadmap_jumpsuit_02_01.py b/scripts/object/tangible/wearables/bodysuit/item_trader_roadmap_jumpsuit_02_01.py
new file mode 100644
index 00000000..7218be6d
--- /dev/null
+++ b/scripts/object/tangible/wearables/bodysuit/item_trader_roadmap_jumpsuit_02_01.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_trader_roadmap_jumpsuit_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_trader_roadmap_jumpsuit_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 2)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 1)
+ object.setStringAttribute('class_required', 'Trader')
+ object.setIntAttribute('required_combat_level', 30)
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bodysuit/item_trader_roadmap_jumpsuit_02_02.py b/scripts/object/tangible/wearables/bodysuit/item_trader_roadmap_jumpsuit_02_02.py
new file mode 100644
index 00000000..f10fbe79
--- /dev/null
+++ b/scripts/object/tangible/wearables/bodysuit/item_trader_roadmap_jumpsuit_02_02.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_trader_roadmap_jumpsuit_02_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_trader_roadmap_jumpsuit_02_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 2)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 1)
+ object.setStringAttribute('class_required', 'Trader')
+ object.setIntAttribute('required_combat_level', 30)
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/boots/boots_tusken_raider.py b/scripts/object/tangible/wearables/boots/boots_tusken_raider.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/boots/boots_tusken_raider.py
+++ b/scripts/object/tangible/wearables/boots/boots_tusken_raider.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/boots/item_smuggler_boots_02_01.py b/scripts/object/tangible/wearables/boots/item_smuggler_boots_02_01.py
new file mode 100644
index 00000000..e589fa8e
--- /dev/null
+++ b/scripts/object/tangible/wearables/boots/item_smuggler_boots_02_01.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_smuggler_boots_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_smuggler_boots_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3)
+ object.setStringAttribute('class_required', 'Smuggler')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/boots/item_spy_boots_02_01.py b/scripts/object/tangible/wearables/boots/item_spy_boots_02_01.py
new file mode 100644
index 00000000..caa1f917
--- /dev/null
+++ b/scripts/object/tangible/wearables/boots/item_spy_boots_02_01.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_spy_boots_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_spy_boots_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3)
+ object.setStringAttribute('class_required', 'Spy')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/appearance_invisible_l_s01.py b/scripts/object/tangible/wearables/bracelet/appearance_invisible_l_s01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/bracelet/appearance_invisible_l_s01.py
+++ b/scripts/object/tangible/wearables/bracelet/appearance_invisible_l_s01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/appearance_invisible_r_s01.py b/scripts/object/tangible/wearables/bracelet/appearance_invisible_r_s01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/bracelet/appearance_invisible_r_s01.py
+++ b/scripts/object/tangible/wearables/bracelet/appearance_invisible_r_s01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_bh_dps_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_bh_dps_01_01.py
new file mode 100644
index 00000000..343e99a4
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_bh_dps_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_bh_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_bh_dps_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm_crit', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_bh_return_fire', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3)
+ object.setAttachment('setBonus', 'set_bonus_bh_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_bh_utility_a_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_bh_utility_a_01_01.py
new file mode 100644
index 00000000..71fae11c
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_bh_utility_a_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_bh_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_bh_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 50)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_bh_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_bh_utility_b_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_bh_utility_b_01_01.py
new file mode 100644
index 00000000..e8f8a7f1
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_bh_utility_b_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_bh_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_bh_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_root', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_dm_cc', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_bh_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_commando_dps_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_commando_dps_01_01.py
new file mode 100644
index 00000000..865e7b8c
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_commando_dps_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_commando_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_commando_dps_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_co_grenade', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_co_grenade', 3)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_co_grenade', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_dps_3)
+ object.setAttachment('setBonus', 'set_bonus_commando_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_commando_utility_a_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_commando_utility_a_01_01.py
new file mode 100644
index 00000000..ea92c4c0
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_commando_utility_a_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_commando_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_commando_utility_a_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_block_chance', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:combat_block_value', 50)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_commando_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_commando_utility_b_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_commando_utility_b_01_01.py
new file mode 100644
index 00000000..e08558c2
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_commando_utility_b_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_commando_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_commando_utility_b_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 10)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 15)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_devastation_bonus', 5)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_commando_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_ent_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_ent_01_01.py
new file mode 100644
index 00000000..e52b43b6
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_ent_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_ent_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_ent_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Entertainer')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 30)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_ent_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_ent_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_ent_3')
+ object.setAttachment('setBonus', 'set_bonus_ent')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_hero_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_hero_01_01.py
new file mode 100644
index 00000000..1a728832
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_hero_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_hero_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_hero_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 30)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 30)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_hero_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_hero_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_hero_3')
+ object.setAttachment('setBonus', 'set_bonus_hero')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_jedi_dps_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_jedi_dps_01_01.py
new file mode 100644
index 00000000..924df8fa
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_jedi_dps_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_jedi_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_jedi_dps_01_01')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_sweep', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_dm', 3)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_sweep', 3)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_jedi_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_jedi_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_jedi_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_jedi_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_jedi_utility_a_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_jedi_utility_a_01_01.py
new file mode 100644
index 00000000..96000158
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_jedi_utility_a_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_jedi_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_jedi_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_cc_crit', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_ae_dm_cc', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_cc_crit', 3)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_ae_dm_cc', 3)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_jedi_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_jedi_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_jedi_utility_a_3')
+ object.setAttachment('setBonus', 'set_jedi_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_jedi_utility_b_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_jedi_utility_b_01_01.py
new file mode 100644
index 00000000..62f71073
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_jedi_utility_b_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_jedi_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_jedi_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_glancing_blow_all', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_critical_hit_reduction', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_jedi_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_jedi_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_jedi_utility_b_3')
+ object.setAttachment('setBonus', 'set_jedi_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_medic_dps_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_medic_dps_01_01.py
new file mode 100644
index 00000000..829a3a86
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_medic_dps_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_medic_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_medic_dps_01_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_me_burst', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_me_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_me_smash', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_me_enhance', 360)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_dm', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_medic_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_medic_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_medic_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_medic_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_medic_utility_a_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_medic_utility_a_01_01.py
new file mode 100644
index 00000000..6407d2b8
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_medic_utility_a_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_medic_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_medic_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_me_evasion', 6)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_me_heal', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_heal', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_revive', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_medic_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_medic_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_medic_utility_a_3')
+ object.setAttachment('setBonus', 'set_medic_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_medic_utility_b_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_medic_utility_b_01_01.py
new file mode 100644
index 00000000..6e87fa2f
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_medic_utility_b_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_medic_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_medic_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_me_dot', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_me_debuff', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_debuff', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_medic_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_medic_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_medic_utility_b_3')
+ object.setAttachment('setBonus', 'set_medic_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_officer_dps_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_officer_dps_01_01.py
new file mode 100644
index 00000000..aefea5a2
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_officer_dps_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_officer_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_officer_dps_01_01')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_paint', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_sure', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_of_paint', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_of_sure', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_of_sure', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_officer_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_officer_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_officer_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_officer_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_officer_utility_a_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_officer_utility_a_01_01.py
new file mode 100644
index 00000000..9240fd5d
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_officer_utility_a_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_officer_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_officer_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:cooldown_percent_of_group_buff', 4)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_of_heal', 1)
+ # object.setIntAttribute('cat_skill_mod_bonus.@stat_n:XXX', 1) Rallypoint Duration Increase / couldnt find the effect yet
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_group_buff', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_of_purge', 3)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_officer_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_officer_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_officer_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_officer_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_officer_utility_b_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_officer_utility_b_01_01.py
new file mode 100644
index 00000000..a958daba
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_officer_utility_b_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_officer_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_officer_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_aoe', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_of_aoe', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_officer_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_officer_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_officer_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_officer_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_smuggler_dps_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_smuggler_dps_01_01.py
new file mode 100644
index 00000000..dec2691f
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_smuggler_dps_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_smuggler_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_smuggler_dps_01_01')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_sm_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_sm_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_sm_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sm_dm', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_smuggler_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_smuggler_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_smuggler_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_smuggler_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_smuggler_utility_a_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_smuggler_utility_a_01_01.py
new file mode 100644
index 00000000..f02cc54d
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_smuggler_utility_a_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_smuggler_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_smuggler_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare', 7)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sm_dm_cc', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_sm_dm_cc', 2)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_smuggler_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_smuggler_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_smuggler_utility_a_3')
+ object.setAttachment('setBonus', 'set_smuggler_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_smuggler_utility_b_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_smuggler_utility_b_01_01.py
new file mode 100644
index 00000000..610fc4df
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_smuggler_utility_b_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_smuggler_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_smuggler_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sm_false_hope', 2)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_smuggler_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_smuggler_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_smuggler_utility_b_3')
+ object.setAttachment('setBonus', 'set_smuggler_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_spy_dps_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_spy_dps_01_01.py
new file mode 100644
index 00000000..3a21b24f
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_spy_dps_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_spy_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_spy_dps_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_sp_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_sp_dot', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sp_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_sp_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_sp_dm', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_spy_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_spy_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_spy_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_spy_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_spy_utility_a_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_spy_utility_a_01_01.py
new file mode 100644
index 00000000..024129b8
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_spy_utility_a_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_spy_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_spy_utility_a_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 25)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_sp_smoke', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_duration_line_sp_preparation', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sp_preparation', 6)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_spy_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_spy_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_spy_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_spy_utility_a')
+ return
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_spy_utility_b_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_spy_utility_b_01_01.py
new file mode 100644
index 00000000..145ca895
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_l_set_spy_utility_b_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_l_set_spy_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_l_set_spy_utility_b_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_strikethrough_chance', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_all', 1)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 50)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_spy_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_spy_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_spy_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_spy_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_bh_dps_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_bh_dps_01_01.py
new file mode 100644
index 00000000..08a7a2d6
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_bh_dps_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_bh_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_bh_dps_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm_crit', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_bh_return_fire', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3)
+ object.setAttachment('setBonus', 'set_bonus_bh_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_bh_utility_a_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_bh_utility_a_01_01.py
new file mode 100644
index 00000000..b44a772a
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_bh_utility_a_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_bh_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_bh_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 50)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_bh_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_bh_utility_b_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_bh_utility_b_01_01.py
new file mode 100644
index 00000000..9ea3acf4
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_bh_utility_b_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_bh_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_bh_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_root', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_dm_cc', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_bh_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_commando_dps_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_commando_dps_01_01.py
new file mode 100644
index 00000000..7d8383e4
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_commando_dps_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_commando_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_commando_dps_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_co_grenade', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_co_grenade', 3)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_co_grenade', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_dps_3)
+ object.setAttachment('setBonus', 'set_bonus_commando_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_commando_utility_a_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_commando_utility_a_01_01.py
new file mode 100644
index 00000000..73afd03f
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_commando_utility_a_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_commando_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_commando_utility_a_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_block_chance', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:combat_block_value', 50)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_commando_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_commando_utility_b_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_commando_utility_b_01_01.py
new file mode 100644
index 00000000..8a69bb24
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_commando_utility_b_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_commando_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_commando_utility_b_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 10)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 15)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_devastation_bonus', 5)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_commando_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_ent_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_ent_01_01.py
new file mode 100644
index 00000000..11b9a215
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_ent_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_ent_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_ent_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Entertainer')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 30)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_ent_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_ent_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_ent_3')
+ object.setAttachment('setBonus', 'set_bonus_ent')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_hero_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_hero_01_01.py
new file mode 100644
index 00000000..5a370ad7
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_hero_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_hero_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_hero_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 30)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 30)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_hero_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_hero_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_hero_3')
+ object.setAttachment('setBonus', 'set_bonus_hero')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_jedi_dps_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_jedi_dps_01_01.py
new file mode 100644
index 00000000..8cae3f65
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_jedi_dps_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_jedi_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_jedi_dps_01_01')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_sweep', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_dm', 3)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_sweep', 3)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_jedi_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_jedi_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_jedi_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_jedi_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_jedi_utility_a_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_jedi_utility_a_01_01.py
new file mode 100644
index 00000000..9dda97ca
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_jedi_utility_a_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_jedi_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_jedi_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_cc_crit', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_ae_dm_cc', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_cc_crit', 3)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_ae_dm_cc', 3)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_jedi_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_jedi_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_jedi_utility_a_3')
+ object.setAttachment('setBonus', 'set_jedi_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_jedi_utility_b_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_jedi_utility_b_01_01.py
new file mode 100644
index 00000000..db66599a
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_jedi_utility_b_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_jedi_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_jedi_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_glancing_blow_all', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_critical_hit_reduction', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_jedi_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_jedi_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_jedi_utility_b_3')
+ object.setAttachment('setBonus', 'set_jedi_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_medic_dps_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_medic_dps_01_01.py
new file mode 100644
index 00000000..7a77ab9b
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_medic_dps_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_medic_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_medic_dps_01_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_me_burst', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_me_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_me_smash', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_me_enhance', 360)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_dm', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_medic_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_medic_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_medic_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_medic_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_medic_utility_a_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_medic_utility_a_01_01.py
new file mode 100644
index 00000000..9b293184
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_medic_utility_a_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_medic_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_medic_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_me_evasion', 6)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_me_heal', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_heal', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_revive', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_medic_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_medic_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_medic_utility_a_3')
+ object.setAttachment('setBonus', 'set_medic_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_medic_utility_b_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_medic_utility_b_01_01.py
new file mode 100644
index 00000000..40149c33
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_medic_utility_b_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_medic_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_medic_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_me_dot', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_me_debuff', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_debuff', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_medic_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_medic_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_medic_utility_b_3')
+ object.setAttachment('setBonus', 'set_medic_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_officer_dps_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_officer_dps_01_01.py
new file mode 100644
index 00000000..21e5d96b
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_officer_dps_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_officer_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_officer_dps_01_01')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_paint', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_sure', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_of_paint', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_of_sure', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_of_sure', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_officer_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_officer_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_officer_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_officer_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_officer_utility_a_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_officer_utility_a_01_01.py
new file mode 100644
index 00000000..7b95ebd9
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_officer_utility_a_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_officer_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_officer_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:cooldown_percent_of_group_buff', 4)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_of_heal', 1)
+ # object.setIntAttribute('cat_skill_mod_bonus.@stat_n:XXX', 1) Rallypoint Duration Increase / couldnt find the effect yet
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_group_buff', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_of_purge', 3)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_officer_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_officer_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_officer_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_officer_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_officer_utility_b_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_officer_utility_b_01_01.py
new file mode 100644
index 00000000..bb55fb6c
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_officer_utility_b_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_officer_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_officer_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_aoe', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_of_aoe', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_officer_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_officer_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_officer_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_officer_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_smuggler_dps_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_smuggler_dps_01_01.py
new file mode 100644
index 00000000..d2e2ca9e
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_smuggler_dps_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_smuggler_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_smuggler_dps_01_01')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_sm_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_sm_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_sm_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sm_dm', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_smuggler_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_smuggler_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_smuggler_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_smuggler_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_smuggler_utility_a_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_smuggler_utility_a_01_01.py
new file mode 100644
index 00000000..17f32009
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_smuggler_utility_a_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_smuggler_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_smuggler_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare', 7)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sm_dm_cc', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_sm_dm_cc', 2)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_smuggler_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_smuggler_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_smuggler_utility_a_3')
+ object.setAttachment('setBonus', 'set_smuggler_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_smuggler_utility_b_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_smuggler_utility_b_01_01.py
new file mode 100644
index 00000000..e07a84d5
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_smuggler_utility_b_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_smuggler_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_smuggler_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sm_false_hope', 2)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_smuggler_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_smuggler_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_smuggler_utility_b_3')
+ object.setAttachment('setBonus', 'set_smuggler_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_spy_dps_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_spy_dps_01_01.py
new file mode 100644
index 00000000..a1400617
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_spy_dps_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_spy_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_spy_dps_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_sp_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_sp_dot', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sp_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_sp_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_sp_dm', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_spy_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_spy_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_spy_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_spy_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_spy_utility_a_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_spy_utility_a_01_01.py
new file mode 100644
index 00000000..6d18e3d8
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_spy_utility_a_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_spy_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_spy_utility_a_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 25)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_sp_smoke', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_duration_line_sp_preparation', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sp_preparation', 6)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_spy_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_spy_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_spy_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_spy_utility_a')
+ return
diff --git a/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_spy_utility_b_01_01.py b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_spy_utility_b_01_01.py
new file mode 100644
index 00000000..1f08b3c0
--- /dev/null
+++ b/scripts/object/tangible/wearables/bracelet/item_bracelet_r_set_spy_utility_b_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bracelet_r_set_spy_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bracelet_r_set_spy_utility_b_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_strikethrough_chance', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_all', 1)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 50)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_spy_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_spy_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_spy_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_spy_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/cape/cape_imperial_01.py b/scripts/object/tangible/wearables/cape/cape_imperial_01.py
index ccad8904..66ff82f4 100644
--- a/scripts/object/tangible/wearables/cape/cape_imperial_01.py
+++ b/scripts/object/tangible/wearables/cape/cape_imperial_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ object.setCustomName('Imperial Cape')
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+ object.setStringAttribute('cost', '[2500] Imperial Galactic Civil War token')
+ object.setStringAttribute('faction_restriction', 'Imperial')
+
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/cape/cape_rebel_01.py b/scripts/object/tangible/wearables/cape/cape_rebel_01.py
index ccad8904..ac9674d5 100644
--- a/scripts/object/tangible/wearables/cape/cape_rebel_01.py
+++ b/scripts/object/tangible/wearables/cape/cape_rebel_01.py
@@ -1,4 +1,11 @@
import sys
def setup(core, object):
+ object.setCustomName('Rebel Alliance Cape')
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+ object.setStringAttribute('cost', '[2500] Rebel Alliance Galactic Civil War token')
+ object.setStringAttribute('faction_restriction', 'Rebel Alliance')
+
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/gloves/appearance_invisible_s01.py b/scripts/object/tangible/wearables/gloves/appearance_invisible_s01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/gloves/appearance_invisible_s01.py
+++ b/scripts/object/tangible/wearables/gloves/appearance_invisible_s01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/gloves/gloves_tusken_raider.py b/scripts/object/tangible/wearables/gloves/gloves_tusken_raider.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/gloves/gloves_tusken_raider.py
+++ b/scripts/object/tangible/wearables/gloves/gloves_tusken_raider.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/gloves/item_spy_gloves_02_01.py b/scripts/object/tangible/wearables/gloves/item_spy_gloves_02_01.py
new file mode 100644
index 00000000..f5f06373
--- /dev/null
+++ b/scripts/object/tangible/wearables/gloves/item_spy_gloves_02_01.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_spy_gloves_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_spy_gloves_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3)
+ object.setStringAttribute('class_required', 'Spy')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/goggles/goggles_anniversary.py b/scripts/object/tangible/wearables/goggles/goggles_anniversary.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/goggles/goggles_anniversary.py
+++ b/scripts/object/tangible/wearables/goggles/goggles_anniversary.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/goggles/goggles_s01.py b/scripts/object/tangible/wearables/goggles/goggles_s01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/goggles/goggles_s01.py
+++ b/scripts/object/tangible/wearables/goggles/goggles_s01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/goggles/goggles_s02.py b/scripts/object/tangible/wearables/goggles/goggles_s02.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/goggles/goggles_s02.py
+++ b/scripts/object/tangible/wearables/goggles/goggles_s02.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/goggles/goggles_s03.py b/scripts/object/tangible/wearables/goggles/goggles_s03.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/goggles/goggles_s03.py
+++ b/scripts/object/tangible/wearables/goggles/goggles_s03.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/goggles/goggles_s04.py b/scripts/object/tangible/wearables/goggles/goggles_s04.py
index ccad8904..4f631a53 100644
--- a/scripts/object/tangible/wearables/goggles/goggles_s04.py
+++ b/scripts/object/tangible/wearables/goggles/goggles_s04.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/goggles/goggles_s05.py b/scripts/object/tangible/wearables/goggles/goggles_s05.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/goggles/goggles_s05.py
+++ b/scripts/object/tangible/wearables/goggles/goggles_s05.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/goggles/goggles_s06.py b/scripts/object/tangible/wearables/goggles/goggles_s06.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/goggles/goggles_s06.py
+++ b/scripts/object/tangible/wearables/goggles/goggles_s06.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/goggles/rebreather.py b/scripts/object/tangible/wearables/goggles/rebreather.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/goggles/rebreather.py
+++ b/scripts/object/tangible/wearables/goggles/rebreather.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/hat/hat_fedora__s01.py b/scripts/object/tangible/wearables/hat/hat_fedora__s01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/hat/hat_fedora__s01.py
+++ b/scripts/object/tangible/wearables/hat/hat_fedora__s01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/hat/hat_imp_s01.py b/scripts/object/tangible/wearables/hat/hat_imp_s01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/hat/hat_imp_s01.py
+++ b/scripts/object/tangible/wearables/hat/hat_imp_s01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/hat/hat_imp_s02.py b/scripts/object/tangible/wearables/hat/hat_imp_s02.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/hat/hat_imp_s02.py
+++ b/scripts/object/tangible/wearables/hat/hat_imp_s02.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/hat/hat_imperial_gunner_01.py b/scripts/object/tangible/wearables/hat/hat_imperial_gunner_01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/hat/hat_imperial_gunner_01.py
+++ b/scripts/object/tangible/wearables/hat/hat_imperial_gunner_01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/hat/hat_loveday_halo_01.py b/scripts/object/tangible/wearables/hat/hat_loveday_halo_01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/hat/hat_loveday_halo_01.py
+++ b/scripts/object/tangible/wearables/hat/hat_loveday_halo_01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/hat/hat_loveday_halo_02.py b/scripts/object/tangible/wearables/hat/hat_loveday_halo_02.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/hat/hat_loveday_halo_02.py
+++ b/scripts/object/tangible/wearables/hat/hat_loveday_halo_02.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/hat/hat_rebel_trooper_01.py b/scripts/object/tangible/wearables/hat/hat_rebel_trooper_01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/hat/hat_rebel_trooper_01.py
+++ b/scripts/object/tangible/wearables/hat/hat_rebel_trooper_01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/helmet/helmet_atat.py b/scripts/object/tangible/wearables/helmet/helmet_atat.py
index ccad8904..a398dc48 100644
--- a/scripts/object/tangible/wearables/helmet/helmet_atat.py
+++ b/scripts/object/tangible/wearables/helmet/helmet_atat.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/helmet/helmet_fighter_blacksun_ace.py b/scripts/object/tangible/wearables/helmet/helmet_fighter_blacksun_ace.py
index ccad8904..a398dc48 100644
--- a/scripts/object/tangible/wearables/helmet/helmet_fighter_blacksun_ace.py
+++ b/scripts/object/tangible/wearables/helmet/helmet_fighter_blacksun_ace.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/helmet/helmet_fighter_imperial_ace.py b/scripts/object/tangible/wearables/helmet/helmet_fighter_imperial_ace.py
index ccad8904..4f631a53 100644
--- a/scripts/object/tangible/wearables/helmet/helmet_fighter_imperial_ace.py
+++ b/scripts/object/tangible/wearables/helmet/helmet_fighter_imperial_ace.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/helmet/helmet_fighter_privateer_ace.py b/scripts/object/tangible/wearables/helmet/helmet_fighter_privateer_ace.py
index ccad8904..a398dc48 100644
--- a/scripts/object/tangible/wearables/helmet/helmet_fighter_privateer_ace.py
+++ b/scripts/object/tangible/wearables/helmet/helmet_fighter_privateer_ace.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/helmet/helmet_fighter_rebel_ace.py b/scripts/object/tangible/wearables/helmet/helmet_fighter_rebel_ace.py
index ccad8904..a398dc48 100644
--- a/scripts/object/tangible/wearables/helmet/helmet_fighter_rebel_ace.py
+++ b/scripts/object/tangible/wearables/helmet/helmet_fighter_rebel_ace.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/helmet/helmet_tie_fighter.py b/scripts/object/tangible/wearables/helmet/helmet_tie_fighter.py
index ccad8904..a398dc48 100644
--- a/scripts/object/tangible/wearables/helmet/helmet_tie_fighter.py
+++ b/scripts/object/tangible/wearables/helmet/helmet_tie_fighter.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/helmet/helmet_tusken_raider_s01.py b/scripts/object/tangible/wearables/helmet/helmet_tusken_raider_s01.py
index ccad8904..a398dc48 100644
--- a/scripts/object/tangible/wearables/helmet/helmet_tusken_raider_s01.py
+++ b/scripts/object/tangible/wearables/helmet/helmet_tusken_raider_s01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/helmet/helmet_tusken_raider_s02.py b/scripts/object/tangible/wearables/helmet/helmet_tusken_raider_s02.py
index ccad8904..a398dc48 100644
--- a/scripts/object/tangible/wearables/helmet/helmet_tusken_raider_s02.py
+++ b/scripts/object/tangible/wearables/helmet/helmet_tusken_raider_s02.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/jacket/appearance_invisible_s01.py b/scripts/object/tangible/wearables/jacket/appearance_invisible_s01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/jacket/appearance_invisible_s01.py
+++ b/scripts/object/tangible/wearables/jacket/appearance_invisible_s01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/jacket/jacket_ace_imperial.py b/scripts/object/tangible/wearables/jacket/jacket_ace_imperial.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/jacket/jacket_ace_imperial.py
+++ b/scripts/object/tangible/wearables/jacket/jacket_ace_imperial.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/jacket/jacket_ace_privateer.py b/scripts/object/tangible/wearables/jacket/jacket_ace_privateer.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/jacket/jacket_ace_privateer.py
+++ b/scripts/object/tangible/wearables/jacket/jacket_ace_privateer.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/jacket/jacket_ace_rebel.py b/scripts/object/tangible/wearables/jacket/jacket_ace_rebel.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/jacket/jacket_ace_rebel.py
+++ b/scripts/object/tangible/wearables/jacket/jacket_ace_rebel.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/jacket/jacket_gcw_imperial_01.py b/scripts/object/tangible/wearables/jacket/jacket_gcw_imperial_01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/jacket/jacket_gcw_imperial_01.py
+++ b/scripts/object/tangible/wearables/jacket/jacket_gcw_imperial_01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/jacket/jacket_gcw_rebel_01.py b/scripts/object/tangible/wearables/jacket/jacket_gcw_rebel_01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/jacket/jacket_gcw_rebel_01.py
+++ b/scripts/object/tangible/wearables/jacket/jacket_gcw_rebel_01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/jacket/jacket_gmf_01.py b/scripts/object/tangible/wearables/jacket/jacket_gmf_01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/jacket/jacket_gmf_01.py
+++ b/scripts/object/tangible/wearables/jacket/jacket_gmf_01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/jacket/jacket_lifeday_09_01.py b/scripts/object/tangible/wearables/jacket/jacket_lifeday_09_01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/jacket/jacket_lifeday_09_01.py
+++ b/scripts/object/tangible/wearables/jacket/jacket_lifeday_09_01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/jacket/jacket_lifeday_09_02.py b/scripts/object/tangible/wearables/jacket/jacket_lifeday_09_02.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/jacket/jacket_lifeday_09_02.py
+++ b/scripts/object/tangible/wearables/jacket/jacket_lifeday_09_02.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/jacket/jacket_outbreak_prison_guard.py b/scripts/object/tangible/wearables/jacket/jacket_outbreak_prison_guard.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/jacket/jacket_outbreak_prison_guard.py
+++ b/scripts/object/tangible/wearables/jacket/jacket_outbreak_prison_guard.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/appearance_invisible_s01.py b/scripts/object/tangible/wearables/necklace/appearance_invisible_s01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/appearance_invisible_s01.py
+++ b/scripts/object/tangible/wearables/necklace/appearance_invisible_s01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_bounty_hunter_pendant_01_02.py b/scripts/object/tangible/wearables/necklace/item_bounty_hunter_pendant_01_02.py
new file mode 100644
index 00000000..46555e1f
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_bounty_hunter_pendant_01_02.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bounty_hunter_pendant_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bounty_hunter_pendant_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 12)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 12)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ return
diff --git a/scripts/object/tangible/wearables/necklace/item_commando_pendant_01_02.py b/scripts/object/tangible/wearables/necklace/item_commando_pendant_01_02.py
new file mode 100644
index 00000000..716905e2
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_commando_pendant_01_02.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_commando_pendant_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_commando_pendant_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 12)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 12)
+ object.setStringAttribute('class_required', 'Commando')
+ return
diff --git a/scripts/object/tangible/wearables/necklace/item_force_sensitive_pendant_01_02.py b/scripts/object/tangible/wearables/necklace/item_force_sensitive_pendant_01_02.py
new file mode 100644
index 00000000..37735e50
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_force_sensitive_pendant_01_02.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_force_sensitive_pendant_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_force_sensitive_pendant_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 12)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 12)
+ object.setStringAttribute('class_required', 'Jedi')
+ return
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_bh_dps_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_bh_dps_01_01.py
new file mode 100644
index 00000000..32a45e54
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_bh_dps_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_bh_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_bh_dps_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm_crit', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_bh_return_fire', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3)
+ object.setAttachment('setBonus', 'set_bonus_bh_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_bh_utility_a_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_bh_utility_a_01_01.py
new file mode 100644
index 00000000..dbadc7c6
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_bh_utility_a_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_bh_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_bh_utility_a_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 50)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_bh_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_bh_utility_b_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_bh_utility_b_01_01.py
new file mode 100644
index 00000000..7426c06e
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_bh_utility_b_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_bh_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_bh_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_root', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_dm_cc', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_bh_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_commando_dps_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_commando_dps_01_01.py
new file mode 100644
index 00000000..1b0ddc6b
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_commando_dps_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_commando_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_commando_dps_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_co_grenade', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_co_grenade', 3)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_co_grenade', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_dps_3)
+ object.setAttachment('setBonus', 'set_bonus_commando_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_commando_utility_a_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_commando_utility_a_01_01.py
new file mode 100644
index 00000000..4ceb7c9d
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_commando_utility_a_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_commando_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_commando_utility_a_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_block_chance', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:combat_block_value', 50)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_commando_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_commando_utility_b_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_commando_utility_b_01_01.py
new file mode 100644
index 00000000..e66ace6b
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_commando_utility_b_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_commando_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_commando_utility_b_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 10)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 15)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_devastation_bonus', 5)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_commando_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_ent_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_ent_01_01.py
new file mode 100644
index 00000000..bac4ae58
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_ent_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_ent_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_ent_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Entertainer')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 30)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_ent_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_ent_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_ent_3')
+ object.setAttachment('setBonus', 'set_bonus_ent')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_hero_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_hero_01_01.py
new file mode 100644
index 00000000..efb1bc12
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_hero_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_hero_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_hero_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 30)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 30)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_hero_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_hero_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_hero_3')
+ object.setAttachment('setBonus', 'set_bonus_hero')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_jedi_dps_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_jedi_dps_01_01.py
new file mode 100644
index 00000000..c4633a07
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_jedi_dps_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_jedi_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_jedi_dps_01_01')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_sweep', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_dm', 3)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_sweep', 3)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_jedi_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_jedi_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_jedi_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_jedi_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_jedi_utility_a_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_jedi_utility_a_01_01.py
new file mode 100644
index 00000000..5f3dedba
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_jedi_utility_a_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_jedi_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_jedi_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_cc_crit', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_ae_dm_cc', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_cc_crit', 3)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_ae_dm_cc', 3)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_jedi_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_jedi_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_jedi_utility_a_3')
+ object.setAttachment('setBonus', 'set_jedi_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_jedi_utility_b_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_jedi_utility_b_01_01.py
new file mode 100644
index 00000000..70b69a4a
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_jedi_utility_b_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_jedi_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_jedi_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_glancing_blow_all', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_critical_hit_reduction', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_jedi_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_jedi_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_jedi_utility_b_3')
+ object.setAttachment('setBonus', 'set_jedi_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_medic_dps_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_medic_dps_01_01.py
new file mode 100644
index 00000000..3a68cd61
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_medic_dps_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_medic_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_medic_dps_01_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_me_burst', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_me_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_me_smash', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_me_enhance', 360)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_dm', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_medic_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_medic_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_medic_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_medic_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_medic_utility_a_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_medic_utility_a_01_01.py
new file mode 100644
index 00000000..95b05680
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_medic_utility_a_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_medic_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_medic_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_me_evasion', 6)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_me_heal', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_heal', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_revive', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_medic_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_medic_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_medic_utility_a_3')
+ object.setAttachment('setBonus', 'set_medic_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_medic_utility_b_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_medic_utility_b_01_01.py
new file mode 100644
index 00000000..ca854c4a
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_medic_utility_b_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_medic_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_medic_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_me_dot', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_me_debuff', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_debuff', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_medic_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_medic_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_medic_utility_b_3')
+ object.setAttachment('setBonus', 'set_medic_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_officer_dps_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_officer_dps_01_01.py
new file mode 100644
index 00000000..dfc931a7
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_officer_dps_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_officer_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_officer_dps_01_01')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_paint', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_sure', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_of_paint', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_of_sure', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_of_sure', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_officer_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_officer_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_officer_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_officer_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_officer_utility_a_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_officer_utility_a_01_01.py
new file mode 100644
index 00000000..90c155f0
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_officer_utility_a_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_officer_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_officer_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:cooldown_percent_of_group_buff', 4)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_of_heal', 1)
+ # object.setIntAttribute('cat_skill_mod_bonus.@stat_n:XXX', 1) Rallypoint Duration Increase / couldnt find the effect yet
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_group_buff', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_of_purge', 3)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_officer_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_officer_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_officer_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_officer_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_officer_utility_b_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_officer_utility_b_01_01.py
new file mode 100644
index 00000000..b75eac31
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_officer_utility_b_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_officer_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_officer_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_aoe', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_of_aoe', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_officer_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_officer_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_officer_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_officer_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_smuggler_dps_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_smuggler_dps_01_01.py
new file mode 100644
index 00000000..fdfb2c15
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_smuggler_dps_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_smuggler_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_smuggler_dps_01_01')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_sm_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_sm_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_sm_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sm_dm', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_smuggler_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_smuggler_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_smuggler_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_smuggler_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_smuggler_utility_a_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_smuggler_utility_a_01_01.py
new file mode 100644
index 00000000..2e7a85d0
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_smuggler_utility_a_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_smuggler_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_smuggler_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare', 7)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sm_dm_cc', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_sm_dm_cc', 2)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_smuggler_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_smuggler_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_smuggler_utility_a_3')
+ object.setAttachment('setBonus', 'set_smuggler_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_smuggler_utility_b_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_smuggler_utility_b_01_01.py
new file mode 100644
index 00000000..bda69a67
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_smuggler_utility_b_01_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_smuggler_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_smuggler_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sm_false_hope', 2)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_smuggler_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_smuggler_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_smuggler_utility_b_3')
+ object.setAttachment('setBonus', 'set_smuggler_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_spy_dps_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_spy_dps_01_01.py
new file mode 100644
index 00000000..2cda8727
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_spy_dps_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_spy_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_spy_dps_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_sp_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_sp_dot', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sp_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_sp_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_sp_dm', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_spy_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_spy_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_spy_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_spy_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_spy_utility_a_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_spy_utility_a_01_01.py
new file mode 100644
index 00000000..405ed693
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_spy_utility_a_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_spy_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_spy_utility_a_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 25)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_sp_smoke', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_duration_sp_preparation', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sp_preparation', 6)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_spy_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_spy_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_spy_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_spy_utility_a')
+ return
diff --git a/scripts/object/tangible/wearables/necklace/item_necklace_set_spy_utility_b_01_01.py b/scripts/object/tangible/wearables/necklace/item_necklace_set_spy_utility_b_01_01.py
new file mode 100644
index 00000000..8345b02a
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_necklace_set_spy_utility_b_01_01.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_necklace_set_spy_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_necklace_set_spy_utility_b_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_strikethrough_chance', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_all', 1)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 50)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_spy_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_spy_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_spy_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_spy_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/item_spy_pendant_01_02.py b/scripts/object/tangible/wearables/necklace/item_spy_pendant_01_02.py
new file mode 100644
index 00000000..f46a52b8
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_spy_pendant_01_02.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_spy_pendant_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_spy_pendant_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 12)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 12)
+ object.setStringAttribute('class_required', 'Spy')
+ return
diff --git a/scripts/object/tangible/wearables/necklace/item_trader_pendant_01_02.py b/scripts/object/tangible/wearables/necklace/item_trader_pendant_01_02.py
new file mode 100644
index 00000000..48f0b1b9
--- /dev/null
+++ b/scripts/object/tangible/wearables/necklace/item_trader_pendant_01_02.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_trader_pendant_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_trader_pendant_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:general_assembly', 5)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:hiring', 3)
+ object.setStringAttribute('class_required', 'Trader')
+ return
diff --git a/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_empire_f.py b/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_empire_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_empire_f.py
+++ b/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_empire_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_empire_m.py b/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_empire_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_empire_m.py
+++ b/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_empire_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_neutral_f.py b/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_neutral_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_neutral_f.py
+++ b/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_neutral_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_neutral_m.py b/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_neutral_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_neutral_m.py
+++ b/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_neutral_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_rebel_f.py b/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_rebel_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_rebel_f.py
+++ b/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_rebel_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_rebel_m.py b/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_rebel_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_rebel_m.py
+++ b/scripts/object/tangible/wearables/necklace/ith_necklace_ace_pilot_rebel_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/ith_necklace_rodian_safari_f.py b/scripts/object/tangible/wearables/necklace/ith_necklace_rodian_safari_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/ith_necklace_rodian_safari_f.py
+++ b/scripts/object/tangible/wearables/necklace/ith_necklace_rodian_safari_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/ith_necklace_rodian_safari_m.py b/scripts/object/tangible/wearables/necklace/ith_necklace_rodian_safari_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/ith_necklace_rodian_safari_m.py
+++ b/scripts/object/tangible/wearables/necklace/ith_necklace_rodian_safari_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/ith_necklace_trando_scale_of_honor_f.py b/scripts/object/tangible/wearables/necklace/ith_necklace_trando_scale_of_honor_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/ith_necklace_trando_scale_of_honor_f.py
+++ b/scripts/object/tangible/wearables/necklace/ith_necklace_trando_scale_of_honor_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/ith_necklace_trando_scale_of_honor_m.py b/scripts/object/tangible/wearables/necklace/ith_necklace_trando_scale_of_honor_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/ith_necklace_trando_scale_of_honor_m.py
+++ b/scripts/object/tangible/wearables/necklace/ith_necklace_trando_scale_of_honor_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire.py b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_f.py b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_f.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_m.py b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_m.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_wke_f.py b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_wke_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_wke_f.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_wke_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_wke_m.py b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_wke_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_wke_m.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_empire_wke_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral.py b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_f.py b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_f.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_m.py b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_m.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_wke_f.py b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_wke_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_wke_f.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_wke_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_wke_m.py b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_wke_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_wke_m.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_neutral_wke_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel.py b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_f.py b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_f.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_m.py b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_m.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_wke_f.py b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_wke_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_wke_f.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_wke_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_wke_m.py b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_wke_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_wke_m.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_ace_pilot_rebel_wke_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_lifeday.py b/scripts/object/tangible/wearables/necklace/necklace_lifeday.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_lifeday.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_lifeday.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_medallion_black_sun.py b/scripts/object/tangible/wearables/necklace/necklace_medallion_black_sun.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_medallion_black_sun.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_medallion_black_sun.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_primitive_01.py b/scripts/object/tangible/wearables/necklace/necklace_primitive_01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_primitive_01.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_primitive_01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_primitive_03.py b/scripts/object/tangible/wearables/necklace/necklace_primitive_03.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_primitive_03.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_primitive_03.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_primitive_04.py b/scripts/object/tangible/wearables/necklace/necklace_primitive_04.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_primitive_04.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_primitive_04.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_rodian_safari.py b/scripts/object/tangible/wearables/necklace/necklace_rodian_safari.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_rodian_safari.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_rodian_safari.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_f.py b/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_f.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_m.py b/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_m.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_wke_f.py b/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_wke_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_wke_f.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_wke_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_wke_m.py b/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_wke_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_wke_m.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_rodian_safari_wke_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_f.py b/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_f.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_m.py b/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_m.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_wke_f.py b/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_wke_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_wke_f.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_wke_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_wke_m.py b/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_wke_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_wke_m.py
+++ b/scripts/object/tangible/wearables/necklace/necklace_trando_scale_of_honor_wke_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/pants/item_smuggler_pants_02_01.py b/scripts/object/tangible/wearables/pants/item_smuggler_pants_02_01.py
new file mode 100644
index 00000000..12b3bd30
--- /dev/null
+++ b/scripts/object/tangible/wearables/pants/item_smuggler_pants_02_01.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_smuggler_pants_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_smuggler_pants_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3)
+ object.setStringAttribute('class_required', 'Smuggler')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/pants/item_spy_pants_02_01.py b/scripts/object/tangible/wearables/pants/item_spy_pants_02_01.py
new file mode 100644
index 00000000..a1021bf4
--- /dev/null
+++ b/scripts/object/tangible/wearables/pants/item_spy_pants_02_01.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_spy_pants_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_spy_pants_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3)
+ object.setStringAttribute('class_required', 'Spy')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/pants/pants_outbreak_prison_guard.py b/scripts/object/tangible/wearables/pants/pants_outbreak_prison_guard.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/pants/pants_outbreak_prison_guard.py
+++ b/scripts/object/tangible/wearables/pants/pants_outbreak_prison_guard.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/aakuan_ring.py b/scripts/object/tangible/wearables/ring/aakuan_ring.py
index ccad8904..a7a9a10b 100644
--- a/scripts/object/tangible/wearables/ring/aakuan_ring.py
+++ b/scripts/object/tangible/wearables/ring/aakuan_ring.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_bh_dps_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_bh_dps_01_01.py
new file mode 100644
index 00000000..90d0db77
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_bh_dps_01_01.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_bh_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_bh_dps_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm_crit', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_bh_return_fire', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3)
+ object.setAttachment('setBonus', 'set_bonus_bh_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_bh_utility_a_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_bh_utility_a_01_01.py
new file mode 100644
index 00000000..ff5fc10c
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_bh_utility_a_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_bh_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_bh_utility_a_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 50)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_bh_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_bh_utility_b_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_bh_utility_b_01_01.py
new file mode 100644
index 00000000..4ec469c0
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_bh_utility_b_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_bh_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_bh_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_root', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_dm_cc', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_bh_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_commando_dps_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_commando_dps_01_01.py
new file mode 100644
index 00000000..e0b35da0
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_commando_dps_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_commando_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_commando_dps_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_co_grenade', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_co_grenade', 3)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_co_grenade', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_dps_3)
+ object.setAttachment('setBonus', 'set_bonus_commando_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_commando_utility_a_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_commando_utility_a_01_01.py
new file mode 100644
index 00000000..b43926e7
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_commando_utility_a_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_commando_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_commando_utility_a_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_block_chance', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:combat_block_value', 50)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_commando_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_commando_utility_b_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_commando_utility_b_01_01.py
new file mode 100644
index 00000000..5620019d
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_commando_utility_b_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_commando_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_commando_utility_b_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 10)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 15)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_devastation_bonus', 5)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_commando_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_ent_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_ent_01_01.py
new file mode 100644
index 00000000..0aa88bec
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_ent_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_ent_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_ent_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Entertainer')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 30)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_ent_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_ent_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_ent_3')
+ object.setAttachment('setBonus', 'set_bonus_ent')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_hero_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_hero_01_01.py
new file mode 100644
index 00000000..73f173b9
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_hero_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_hero_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_hero_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 30)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 30)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_hero_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_hero_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_hero_3')
+ object.setAttachment('setBonus', 'set_bonus_hero')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_jedi_dps_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_jedi_dps_01_01.py
new file mode 100644
index 00000000..1986def1
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_jedi_dps_01_01.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_jedi_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_jedi_dps_01_01')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_sweep', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_dm', 3)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_sweep', 3)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_jedi_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_jedi_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_jedi_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_jedi_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_jedi_utility_a_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_jedi_utility_a_01_01.py
new file mode 100644
index 00000000..295383ef
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_jedi_utility_a_01_01.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_jedi_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_jedi_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_cc_crit', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_ae_dm_cc', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_cc_crit', 3)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_ae_dm_cc', 3)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_jedi_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_jedi_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_jedi_utility_a_3')
+ object.setAttachment('setBonus', 'set_jedi_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_jedi_utility_b_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_jedi_utility_b_01_01.py
new file mode 100644
index 00000000..9aae6cd1
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_jedi_utility_b_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_jedi_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_jedi_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_glancing_blow_all', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_critical_hit_reduction', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_jedi_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_jedi_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_jedi_utility_b_3')
+ object.setAttachment('setBonus', 'set_jedi_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_medic_dps_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_medic_dps_01_01.py
new file mode 100644
index 00000000..6323b57e
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_medic_dps_01_01.py
@@ -0,0 +1,21 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_medic_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_medic_dps_01_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_me_burst', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_me_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_me_smash', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_me_enhance', 360)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_dm', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_medic_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_medic_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_medic_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_medic_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_medic_utility_a_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_medic_utility_a_01_01.py
new file mode 100644
index 00000000..1dcbdafa
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_medic_utility_a_01_01.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_medic_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_medic_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_me_evasion', 6)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_me_heal', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_heal', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_revive', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_medic_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_medic_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_medic_utility_a_3')
+ object.setAttachment('setBonus', 'set_medic_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_medic_utility_b_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_medic_utility_b_01_01.py
new file mode 100644
index 00000000..26be442a
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_medic_utility_b_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_medic_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_medic_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_me_dot', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_me_debuff', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_debuff', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_medic_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_medic_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_medic_utility_b_3')
+ object.setAttachment('setBonus', 'set_medic_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_officer_dps_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_officer_dps_01_01.py
new file mode 100644
index 00000000..a622cec9
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_officer_dps_01_01.py
@@ -0,0 +1,21 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_officer_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_officer_dps_01_01')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_paint', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_sure', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_of_paint', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_of_sure', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_of_sure', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_officer_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_officer_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_officer_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_officer_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_officer_utility_a_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_officer_utility_a_01_01.py
new file mode 100644
index 00000000..05e7c4a5
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_officer_utility_a_01_01.py
@@ -0,0 +1,21 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_officer_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_officer_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:cooldown_percent_of_group_buff', 4)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_of_heal', 1)
+ # object.setIntAttribute('cat_skill_mod_bonus.@stat_n:XXX', 1) Rallypoint Duration Increase / couldnt find the effect yet
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_group_buff', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_of_purge', 3)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_officer_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_officer_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_officer_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_officer_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_officer_utility_b_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_officer_utility_b_01_01.py
new file mode 100644
index 00000000..d7c050b7
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_officer_utility_b_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_officer_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_officer_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_aoe', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_of_aoe', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_officer_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_officer_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_officer_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_officer_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_smuggler_dps_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_smuggler_dps_01_01.py
new file mode 100644
index 00000000..03ad7556
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_smuggler_dps_01_01.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_smuggler_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_smuggler_dps_01_01')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_sm_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_sm_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_sm_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sm_dm', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_smuggler_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_smuggler_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_smuggler_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_smuggler_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_smuggler_utility_a_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_smuggler_utility_a_01_01.py
new file mode 100644
index 00000000..62fbde63
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_smuggler_utility_a_01_01.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_smuggler_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_smuggler_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare', 7)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sm_dm_cc', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_sm_dm_cc', 2)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_smuggler_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_smuggler_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_smuggler_utility_a_3')
+ object.setAttachment('setBonus', 'set_smuggler_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_smuggler_utility_b_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_smuggler_utility_b_01_01.py
new file mode 100644
index 00000000..6a9fc806
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_smuggler_utility_b_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_smuggler_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_smuggler_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sm_false_hope', 2)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_smuggler_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_smuggler_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_smuggler_utility_b_3')
+ object.setAttachment('setBonus', 'set_smuggler_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_spy_dps_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_spy_dps_01_01.py
new file mode 100644
index 00000000..7bb6861f
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_spy_dps_01_01.py
@@ -0,0 +1,21 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_spy_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_spy_dps_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_sp_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_sp_dot', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sp_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_sp_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_sp_dm', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_spy_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_spy_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_spy_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_spy_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_spy_utility_a_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_spy_utility_a_01_01.py
new file mode 100644
index 00000000..3483cb23
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_spy_utility_a_01_01.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_spy_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_spy_utility_a_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 25)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_sp_smoke', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_duration_line_sp_preparation', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sp_preparation', 6)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_spy_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_spy_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_spy_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_spy_utility_a')
+ return
diff --git a/scripts/object/tangible/wearables/ring/item_band_set_spy_utility_b_01_01.py b/scripts/object/tangible/wearables/ring/item_band_set_spy_utility_b_01_01.py
new file mode 100644
index 00000000..e37dc6cf
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_band_set_spy_utility_b_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_band_set_spy_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_band_set_spy_utility_b_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_strikethrough_chance', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_all', 1)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 50)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_spy_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_spy_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_spy_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_spy_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_bounty_hunter_ring_01_02.py b/scripts/object/tangible/wearables/ring/item_bounty_hunter_ring_01_02.py
new file mode 100644
index 00000000..110a5ec1
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_bounty_hunter_ring_01_02.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_bounty_hunter_ring_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_bounty_hunter_ring_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 6)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 6)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setAttachment('radial_filename', 'ring/unity')
+ return
diff --git a/scripts/object/tangible/wearables/ring/item_commando_ring_01_02.py b/scripts/object/tangible/wearables/ring/item_commando_ring_01_02.py
new file mode 100644
index 00000000..5e4f73c1
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_commando_ring_01_02.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_commando_ring_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_commando_ring_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 6)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 6)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setAttachment('radial_filename', 'ring/unity')
+ return
diff --git a/scripts/object/tangible/wearables/ring/item_content_trader_ring_03_01.py b/scripts/object/tangible/wearables/ring/item_content_trader_ring_03_01.py
new file mode 100644
index 00000000..70713a96
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_content_trader_ring_03_01.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_content_trader_ring_03_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_content_trader_ring_03_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 6)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:general_assembly', 6)
+ object.setStringAttribute('class_required', 'Trader')
+ object.setAttachment('radial_filename', 'ring/unity')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_force_sensitive_ring_01_02.py b/scripts/object/tangible/wearables/ring/item_force_sensitive_ring_01_02.py
new file mode 100644
index 00000000..a22d7967
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_force_sensitive_ring_01_02.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_force_sensitive_ring_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_force_sensitive_ring_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 6)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 6)
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setAttachment('radial_filename', 'ring/unity')
+ return
diff --git a/scripts/object/tangible/wearables/ring/item_force_sensitive_ring_02_01.py b/scripts/object/tangible/wearables/ring/item_force_sensitive_ring_02_01.py
new file mode 100644
index 00000000..01a05612
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_force_sensitive_ring_02_01.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_force_sensitive_ring_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_force_sensitive_ring_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 5)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 5)
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setAttachment('radial_filename', 'ring/unity')
+ return
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_bh_dps_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_bh_dps_01_01.py
new file mode 100644
index 00000000..9bb5bc01
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_bh_dps_01_01.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_bh_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_bh_dps_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_dm_crit', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_bh_return_fire', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_dm', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_dps_3)
+ object.setAttachment('setBonus', 'set_bonus_bh_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_bh_utility_a_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_bh_utility_a_01_01.py
new file mode 100644
index 00000000..7c69c061
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_bh_utility_a_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_bh_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_bh_utility_a_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 50)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_bh_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_bh_utility_b_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_bh_utility_b_01_01.py
new file mode 100644
index 00000000..4f1511b9
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_bh_utility_b_01_01.py
@@ -0,0 +1,21 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_bh_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_bh_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_root', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_dm_cc', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_bh_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_bh_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_bh_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_bh_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_commando_dps_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_commando_dps_01_01.py
new file mode 100644
index 00000000..cffd2d14
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_commando_dps_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_commando_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_commando_dps_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_co_grenade', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_co_grenade', 3)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_co_grenade', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_dps_3)
+ object.setAttachment('setBonus', 'set_bonus_commando_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_commando_utility_a_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_commando_utility_a_01_01.py
new file mode 100644
index 00000000..26d83059
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_commando_utility_a_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_commando_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_commando_utility_a_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 20)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_block_chance', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:combat_block_value', 50)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_commando_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_commando_utility_b_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_commando_utility_b_01_01.py
new file mode 100644
index 00000000..82e3a076
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_commando_utility_b_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_commando_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_commando_utility_b_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 10)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 15)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_devastation_bonus', 5)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_commando_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_commando_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_commando_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_commando_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_ent_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_ent_01_01.py
new file mode 100644
index 00000000..723903a0
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_ent_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_ent_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_ent_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Entertainer')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 30)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_ent_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_ent_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_ent_3')
+ object.setAttachment('setBonus', 'set_bonus_ent')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_hero_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_hero_01_01.py
new file mode 100644
index 00000000..2a2d0124
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_hero_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_hero_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_hero_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 30)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 30)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_hero_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_hero_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_hero_3')
+ object.setAttachment('setBonus', 'set_bonus_hero')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_jedi_dps_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_jedi_dps_01_01.py
new file mode 100644
index 00000000..4bf14f5f
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_jedi_dps_01_01.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_jedi_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_jedi_dps_01_01')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_sweep', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_dm', 3)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_sweep', 3)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_jedi_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_jedi_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_jedi_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_jedi_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_jedi_utility_a_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_jedi_utility_a_01_01.py
new file mode 100644
index 00000000..651141da
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_jedi_utility_a_01_01.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_jedi_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_jedi_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_cc_crit', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_fs_ae_dm_cc', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_cc_crit', 3)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_fs_ae_dm_cc', 3)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_jedi_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_jedi_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_jedi_utility_a_3')
+ object.setAttachment('setBonus', 'set_jedi_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_jedi_utility_b_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_jedi_utility_b_01_01.py
new file mode 100644
index 00000000..a6b3d8ec
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_jedi_utility_b_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_jedi_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_jedi_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_glancing_blow_all', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_critical_hit_reduction', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_jedi_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_jedi_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_jedi_utility_b_3')
+ object.setAttachment('setBonus', 'set_jedi_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_medic_dps_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_medic_dps_01_01.py
new file mode 100644
index 00000000..1209fcee
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_medic_dps_01_01.py
@@ -0,0 +1,21 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_medic_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_medic_dps_01_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_me_burst', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_me_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_me_smash', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_buff_duration_line_me_enhance', 360)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_dm', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_medic_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_medic_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_medic_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_medic_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_medic_utility_a_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_medic_utility_a_01_01.py
new file mode 100644
index 00000000..bd270056
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_medic_utility_a_01_01.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_medic_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_medic_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_me_evasion', 6)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_me_heal', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_heal', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_revive', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_medic_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_medic_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_medic_utility_a_3')
+ object.setAttachment('setBonus', 'set_medic_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_medic_utility_b_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_medic_utility_b_01_01.py
new file mode 100644
index 00000000..339a68b4
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_medic_utility_b_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_medic_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_medic_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_me_dot', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_me_debuff', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_me_debuff', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_medic_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_medic_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_medic_utility_b_3')
+ object.setAttachment('setBonus', 'set_medic_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_officer_dps_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_officer_dps_01_01.py
new file mode 100644
index 00000000..2355f9cf
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_officer_dps_01_01.py
@@ -0,0 +1,21 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_officer_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_officer_dps_01_01')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_paint', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_sure', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_of_paint', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_of_sure', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_of_sure', 1)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_officer_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_officer_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_officer_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_officer_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_officer_utility_a_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_officer_utility_a_01_01.py
new file mode 100644
index 00000000..79fbeff8
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_officer_utility_a_01_01.py
@@ -0,0 +1,21 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_officer_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_officer_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:cooldown_percent_of_group_buff', 4)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_of_heal', 1)
+ # object.setIntAttribute('cat_skill_mod_bonus.@stat_n:XXX', 1) Rallypoint Duration Increase / couldnt find the effect yet
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_group_buff', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_of_purge', 3)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_officer_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_officer_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_officer_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_officer_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_officer_utility_b_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_officer_utility_b_01_01.py
new file mode 100644
index 00000000..4e8ee197
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_officer_utility_b_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_officer_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_officer_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_of_aoe', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_of_aoe', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_officer_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_officer_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_officer_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_officer_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_smuggler_dps_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_smuggler_dps_01_01.py
new file mode 100644
index 00000000..90e4dd89
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_smuggler_dps_01_01.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_smuggler_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_smuggler_dps_01_01')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_sm_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_sm_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_sm_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sm_dm', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_smuggler_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_smuggler_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_smuggler_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_smuggler_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_smuggler_utility_a_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_smuggler_utility_a_01_01.py
new file mode 100644
index 00000000..6b961659
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_smuggler_utility_a_01_01.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_smuggler_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_smuggler_utility_a_01_01')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:bh_dire_snare', 7)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sm_dm_cc', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_sm_dm_cc', 2)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_smuggler_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_smuggler_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_smuggler_utility_a_3')
+ object.setAttachment('setBonus', 'set_smuggler_utility_a')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_smuggler_utility_b_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_smuggler_utility_b_01_01.py
new file mode 100644
index 00000000..6b74bc35
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_smuggler_utility_b_01_01.py
@@ -0,0 +1,18 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_smuggler_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_smuggler_utility_b_01_01')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sm_false_hope', 2)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 30)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_smuggler_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_smuggler_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_smuggler_utility_b_3')
+ object.setAttachment('setBonus', 'set_smuggler_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_spy_dps_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_spy_dps_01_01.py
new file mode 100644
index 00000000..3563aed7
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_spy_dps_01_01.py
@@ -0,0 +1,21 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_spy_dps_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_spy_dps_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_sp_dm', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_line_sp_dot', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sp_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_freeshot_sp_dm', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_sp_dm', 2)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_spy_dps_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_spy_dps_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_spy_dps_3')
+ object.setAttachment('setBonus', 'set_bonus_spy_dps')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_spy_utility_a_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_spy_utility_a_01_01.py
new file mode 100644
index 00000000..500ea4ff
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_spy_utility_a_01_01.py
@@ -0,0 +1,20 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_spy_utility_a_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_spy_utility_a_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 25)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:fast_attack_line_sp_smoke', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_duration_line_sp_preparation', 1)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_cooldown_line_sp_preparation', 6)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_spy_utility_a_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_spy_utility_a_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_spy_utility_a_3')
+ object.setAttachment('setBonus', 'set_bonus_spy_utility_a')
+ return
diff --git a/scripts/object/tangible/wearables/ring/item_ring_set_spy_utility_b_01_01.py b/scripts/object/tangible/wearables/ring/item_ring_set_spy_utility_b_01_01.py
new file mode 100644
index 00000000..3903a677
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_ring_set_spy_utility_b_01_01.py
@@ -0,0 +1,19 @@
+import sys
+
+def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_ring_set_spy_utility_b_01_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_ring_set_spy_utility_b_01_01')
+ object.setIntAttribute('required_combat_level', 85)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_strikethrough_chance', 2)
+ object.setIntAttribute('cat_skill_mod_bonus.@stat_n:expertise_action_all', 1)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 50)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_3', '@set_bonus:set_bonus_spy_utility_b_1')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_4', '@set_bonus:set_bonus_spy_utility_b_2')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_5', '@set_bonus:set_bonus_spy_utility_b_3')
+ object.setAttachment('setBonus', 'set_bonus_spy_utility_b')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/item_spy_ring_01_02.py b/scripts/object/tangible/wearables/ring/item_spy_ring_01_02.py
new file mode 100644
index 00000000..e6d4aafb
--- /dev/null
+++ b/scripts/object/tangible/wearables/ring/item_spy_ring_01_02.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_spy_ring_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_spy_ring_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 6)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 6)
+ object.setStringAttribute('class_required', 'Spy')
+ return
diff --git a/scripts/object/tangible/wearables/ring/ring_base.py b/scripts/object/tangible/wearables/ring/ring_base.py
index ccad8904..21d2e709 100644
--- a/scripts/object/tangible/wearables/ring/ring_base.py
+++ b/scripts/object/tangible/wearables/ring/ring_base.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
+ object.setAttachment('objType', 'ring')
+ object.setAttachment('radial_filename', 'ring/unity')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/ring_gcw_imperial.py b/scripts/object/tangible/wearables/ring/ring_gcw_imperial.py
index ccad8904..a7a9a10b 100644
--- a/scripts/object/tangible/wearables/ring/ring_gcw_imperial.py
+++ b/scripts/object/tangible/wearables/ring/ring_gcw_imperial.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/ring_gcw_rebel.py b/scripts/object/tangible/wearables/ring/ring_gcw_rebel.py
index ccad8904..a7a9a10b 100644
--- a/scripts/object/tangible/wearables/ring/ring_gcw_rebel.py
+++ b/scripts/object/tangible/wearables/ring/ring_gcw_rebel.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/ring_mark_hero.py b/scripts/object/tangible/wearables/ring/ring_mark_hero.py
index ccad8904..a7a9a10b 100644
--- a/scripts/object/tangible/wearables/ring/ring_mark_hero.py
+++ b/scripts/object/tangible/wearables/ring/ring_mark_hero.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/ring_nightsister.py b/scripts/object/tangible/wearables/ring/ring_nightsister.py
index ccad8904..a7a9a10b 100644
--- a/scripts/object/tangible/wearables/ring/ring_nightsister.py
+++ b/scripts/object/tangible/wearables/ring/ring_nightsister.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/ring_s01.py b/scripts/object/tangible/wearables/ring/ring_s01.py
index dc6ea0b1..f311265b 100644
--- a/scripts/object/tangible/wearables/ring/ring_s01.py
+++ b/scripts/object/tangible/wearables/ring/ring_s01.py
@@ -1,6 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
return
def equip(core, actor, object):
diff --git a/scripts/object/tangible/wearables/ring/ring_s02.py b/scripts/object/tangible/wearables/ring/ring_s02.py
index 2ca3d3ca..467d8fb3 100644
--- a/scripts/object/tangible/wearables/ring/ring_s02.py
+++ b/scripts/object/tangible/wearables/ring/ring_s02.py
@@ -1,6 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
return
def equip(core, actor, object):
diff --git a/scripts/object/tangible/wearables/ring/ring_s03.py b/scripts/object/tangible/wearables/ring/ring_s03.py
index 418b5aa4..52d2d1d2 100644
--- a/scripts/object/tangible/wearables/ring/ring_s03.py
+++ b/scripts/object/tangible/wearables/ring/ring_s03.py
@@ -1,6 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
return
def equip(core, actor, object):
diff --git a/scripts/object/tangible/wearables/ring/ring_s03_quest.py b/scripts/object/tangible/wearables/ring/ring_s03_quest.py
index ccad8904..a7a9a10b 100644
--- a/scripts/object/tangible/wearables/ring/ring_s03_quest.py
+++ b/scripts/object/tangible/wearables/ring/ring_s03_quest.py
@@ -1,4 +1,6 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/ring/ring_s04.py b/scripts/object/tangible/wearables/ring/ring_s04.py
index 6410d76f..c00caed9 100644
--- a/scripts/object/tangible/wearables/ring/ring_s04.py
+++ b/scripts/object/tangible/wearables/ring/ring_s04.py
@@ -1,6 +1,8 @@
import sys
def setup(core, object):
+ object.setAttachment('radial_filename', 'ring/unity')
+ object.setAttachment('objType', 'ring')
return
def equip(core, actor, object):
diff --git a/scripts/object/tangible/wearables/robe/item_npe_fs_robe_02_01.py b/scripts/object/tangible/wearables/robe/item_npe_fs_robe_02_01.py
new file mode 100644
index 00000000..afb64a4b
--- /dev/null
+++ b/scripts/object/tangible/wearables/robe/item_npe_fs_robe_02_01.py
@@ -0,0 +1,11 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_npe_fs_robe_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_npe_fs_robe_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 10)
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 1)
+ return
diff --git a/scripts/object/tangible/wearables/robe/item_npe_fs_robe_02_02.py b/scripts/object/tangible/wearables/robe/item_npe_fs_robe_02_02.py
new file mode 100644
index 00000000..d71c2f44
--- /dev/null
+++ b/scripts/object/tangible/wearables/robe/item_npe_fs_robe_02_02.py
@@ -0,0 +1,13 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_npe_fs_robe_02_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_npe_fs_robe_02_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 21)
+ object.setStringAttribute('protection_level', 'Faint')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 20)
+ object.setAttachment('type', 'jedi_robe')
+ return
diff --git a/scripts/object/tangible/wearables/robe/robe_jedi_dark_s01.py b/scripts/object/tangible/wearables/robe/robe_jedi_dark_s01.py
index ccad8904..6c8a9d3c 100644
--- a/scripts/object/tangible/wearables/robe/robe_jedi_dark_s01.py
+++ b/scripts/object/tangible/wearables/robe/robe_jedi_dark_s01.py
@@ -1,4 +1,15 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_jedi_robe_dark_03_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_jedi_robe_dark_03_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 100)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 100)
+ object.setStringAttribute('protection_level', 'Weak')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 40)
+ object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1')
+ object.setAttachment('type', 'jedi_robe')
+ return
diff --git a/scripts/object/tangible/wearables/robe/robe_jedi_dark_s02.py b/scripts/object/tangible/wearables/robe/robe_jedi_dark_s02.py
index ccad8904..ab11f14c 100644
--- a/scripts/object/tangible/wearables/robe/robe_jedi_dark_s02.py
+++ b/scripts/object/tangible/wearables/robe/robe_jedi_dark_s02.py
@@ -1,4 +1,15 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_jedi_robe_dark_03_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_jedi_robe_dark_03_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 145)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 145)
+ object.setStringAttribute('protection_level', 'Lucent')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 60)
+ object.setAttachment('type', 'jedi_robe')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1')
+ return
diff --git a/scripts/object/tangible/wearables/robe/robe_jedi_dark_s03.py b/scripts/object/tangible/wearables/robe/robe_jedi_dark_s03.py
index ccad8904..101fa13f 100644
--- a/scripts/object/tangible/wearables/robe/robe_jedi_dark_s03.py
+++ b/scripts/object/tangible/wearables/robe/robe_jedi_dark_s03.py
@@ -1,4 +1,21 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_jedi_robe_dark_03_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_jedi_robe_dark_03_03')
+
+ object.setStringAttribute('protection_level', 'Luminous')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 80)
+
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 185)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 185)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 185)
+
+ object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1')
+
+ object.setAttachment('type', 'jedi_robe')
+ object.setAttachment('setBonus', 'set_bonus_jedi_robe')
+ return
diff --git a/scripts/object/tangible/wearables/robe/robe_jedi_dark_s04.py b/scripts/object/tangible/wearables/robe/robe_jedi_dark_s04.py
index ccad8904..5b1543e3 100644
--- a/scripts/object/tangible/wearables/robe/robe_jedi_dark_s04.py
+++ b/scripts/object/tangible/wearables/robe/robe_jedi_dark_s04.py
@@ -1,4 +1,22 @@
import sys
def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_jedi_robe_dark_04_04')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_jedi_robe_dark_04_04')
+
+ object.setStringAttribute('protection_level', 'Radiant')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 80)
+
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 250)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 250)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 250)
+
+ object.setStringAttribute('proc_name', '@ui_buff:proc_old_dark_jedi_gift')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1')
+
+ object.setAttachment('type', 'jedi_robe')
+ object.setAttachment('setBonus', 'set_bonus_jedi_robe')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/robe/robe_jedi_dark_s05.py b/scripts/object/tangible/wearables/robe/robe_jedi_dark_s05.py
index f4e46790..80081dce 100644
--- a/scripts/object/tangible/wearables/robe/robe_jedi_dark_s05.py
+++ b/scripts/object/tangible/wearables/robe/robe_jedi_dark_s05.py
@@ -1,31 +1,22 @@
import sys
def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_jedi_robe_dark_04_05')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_jedi_robe_dark_04_05')
+
+ object.setStringAttribute('protection_level', 'Radiant')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 20)
+
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 250)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 250)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 250)
+
+ object.setStringAttribute('proc_name', '@ui_buff:proc_old_dark_jedi_gift')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1')
+
+ object.setAttachment('type', 'jedi_robe')
+ object.setAttachment('setBonus', 'set_bonus_jedi_robe')
return
-
-def equip(core, actor, target):
- core.skillModService.addSkillMod(actor, 'constitution_modified', 250)
- core.skillModService.addSkillMod(actor, 'precision_modified', 250)
- core.skillModService.addSkillMod(actor, 'luck_modified', 250)
-
- Buff = actor.getBuffByName('proc_old_dark_jedi_gift')
- if actor.getBuffList().contains(Buff):
- core.buffService.removeBuffFromCreature(actor, Buff)
- return
-
- if actor:
- core.buffService.addBuffToCreature(actor, 'proc_old_dark_jedi_gift')
- return
- return
-
-def unequip(core, actor, target):
- core.skillModService.deductSkillMod(actor, 'constitution_modified', 250)
- core.skillModService.deductSkillMod(actor, 'precision_modified', 250)
- core.skillModService.deductSkillMod(actor, 'luck_modified', 250)
-
- Buff = actor.getBuffByName('proc_old_dark_jedi_gift')
- if actor.getBuffList().contains(Buff):
- core.buffService.removeBuffFromCreature(actor, Buff)
- return
- return
-
diff --git a/scripts/object/tangible/wearables/robe/robe_jedi_light_s01.py b/scripts/object/tangible/wearables/robe/robe_jedi_light_s01.py
index ccad8904..bc274ef4 100644
--- a/scripts/object/tangible/wearables/robe/robe_jedi_light_s01.py
+++ b/scripts/object/tangible/wearables/robe/robe_jedi_light_s01.py
@@ -1,4 +1,15 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_jedi_robe_light_03_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_jedi_robe_light_03_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 100)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 100)
+ object.setStringAttribute('protection_level', 'Weak')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 40)
+ object.setAttachment('type', 'jedi_robe')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1')
+ return
diff --git a/scripts/object/tangible/wearables/robe/robe_jedi_light_s02.py b/scripts/object/tangible/wearables/robe/robe_jedi_light_s02.py
index ccad8904..7e01e7ab 100644
--- a/scripts/object/tangible/wearables/robe/robe_jedi_light_s02.py
+++ b/scripts/object/tangible/wearables/robe/robe_jedi_light_s02.py
@@ -1,4 +1,15 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_jedi_robe_light_03_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_jedi_robe_light_03_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 145)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 145)
+ object.setStringAttribute('protection_level', 'Lucent')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 60)
+ object.setAttachment('type', 'jedi_robe')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1')
+ return
diff --git a/scripts/object/tangible/wearables/robe/robe_jedi_light_s03.py b/scripts/object/tangible/wearables/robe/robe_jedi_light_s03.py
index ccad8904..904d0be2 100644
--- a/scripts/object/tangible/wearables/robe/robe_jedi_light_s03.py
+++ b/scripts/object/tangible/wearables/robe/robe_jedi_light_s03.py
@@ -1,4 +1,21 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_jedi_robe_light_03_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_jedi_robe_light_03_03')
+
+ object.setStringAttribute('protection_level', 'Luminous')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 80)
+
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 185)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 185)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 185)
+
+ object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1')
+
+ object.setAttachment('type', 'jedi_robe')
+ object.setAttachment('setBonus', 'set_bonus_jedi_robe')
+ return
diff --git a/scripts/object/tangible/wearables/robe/robe_jedi_light_s04.py b/scripts/object/tangible/wearables/robe/robe_jedi_light_s04.py
index ccad8904..c540ba74 100644
--- a/scripts/object/tangible/wearables/robe/robe_jedi_light_s04.py
+++ b/scripts/object/tangible/wearables/robe/robe_jedi_light_s04.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_jedi_robe_light_04_04')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_jedi_robe_light_04_04')
+
+ object.setStringAttribute('protection_level', 'Radiant')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 80)
+
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 250)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 250)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 250)
+
+
+ object.setStringAttribute('proc_name', '@ui_buff:proc_old_light_jedi_gift')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1')
+
+ object.setAttachment('type', 'jedi_robe')
+ object.setAttachment('setBonus', 'set_bonus_jedi_robe')
+
+ return
+
+
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/robe/robe_jedi_light_s05.py b/scripts/object/tangible/wearables/robe/robe_jedi_light_s05.py
index ccad8904..0b850eec 100644
--- a/scripts/object/tangible/wearables/robe/robe_jedi_light_s05.py
+++ b/scripts/object/tangible/wearables/robe/robe_jedi_light_s05.py
@@ -1,4 +1,26 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_jedi_robe_light_04_05')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_jedi_robe_light_04_05')
+
+ object.setStringAttribute('protection_level', 'Radiant')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 20)
+
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 250)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 250)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 250)
+
+
+ object.setStringAttribute('proc_name', '@ui_buff:proc_old_light_jedi_gift')
+ object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1')
+
+ object.setAttachment('type', 'jedi_robe')
+ object.setAttachment('setBonus', 'set_bonus_jedi_robe')
+
+ return
+
+
diff --git a/scripts/object/tangible/wearables/robe/robe_jedi_padawan.py b/scripts/object/tangible/wearables/robe/robe_jedi_padawan.py
index ccad8904..6a0ba95d 100644
--- a/scripts/object/tangible/wearables/robe/robe_jedi_padawan.py
+++ b/scripts/object/tangible/wearables/robe/robe_jedi_padawan.py
@@ -1,4 +1,15 @@
import sys
def setup(core, object):
- return
\ No newline at end of file
+ return
+
+def equip(core, actor, target):
+ core.skillModService.addSkillMod(actor, 'agility_modified', 21)
+
+ return
+
+def unequip(core, actor, target):
+ core.skillModService.deductSkillMod(actor, 'agility_modified', 21)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/robe/robe_s05_h1.py b/scripts/object/tangible/wearables/robe/robe_s05_h1.py
index ccad8904..6df15568 100644
--- a/scripts/object/tangible/wearables/robe/robe_s05_h1.py
+++ b/scripts/object/tangible/wearables/robe/robe_s05_h1.py
@@ -1,4 +1,22 @@
import sys
def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_jedi_robe_06_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_jedi_robe_06_01')
+
+ object.setStringAttribute('protection_level', 'Luminous')
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setIntAttribute('required_combat_level', 80)
+
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 100)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 100)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 100)
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 100)
+
+ object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1')
+
+ object.setAttachment('type', 'jedi_robe')
+ object.setAttachment('setBonus', 'set_bonus_jedi_robe')
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/robe/robe_tusken_raider_s01.py b/scripts/object/tangible/wearables/robe/robe_tusken_raider_s01.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/robe/robe_tusken_raider_s01.py
+++ b/scripts/object/tangible/wearables/robe/robe_tusken_raider_s01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/robe/robe_tusken_raider_s02.py b/scripts/object/tangible/wearables/robe/robe_tusken_raider_s02.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/robe/robe_tusken_raider_s02.py
+++ b/scripts/object/tangible/wearables/robe/robe_tusken_raider_s02.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/shirt/item_smuggler_shirt_02_01.py b/scripts/object/tangible/wearables/shirt/item_smuggler_shirt_02_01.py
new file mode 100644
index 00000000..c331d0b1
--- /dev/null
+++ b/scripts/object/tangible/wearables/shirt/item_smuggler_shirt_02_01.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_smuggler_shirt_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_smuggler_shirt_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3)
+ object.setStringAttribute('class_required', 'Smuggler')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/shirt/item_spy_shirt_02_01.py b/scripts/object/tangible/wearables/shirt/item_spy_shirt_02_01.py
new file mode 100644
index 00000000..8bda143e
--- /dev/null
+++ b/scripts/object/tangible/wearables/shirt/item_spy_shirt_02_01.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_spy_shirt_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_spy_shirt_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3)
+ object.setStringAttribute('class_required', 'Spy')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/utility/utility_belt_tusken_raider.py b/scripts/object/tangible/wearables/utility/utility_belt_tusken_raider.py
index ccad8904..a398dc48 100644
--- a/scripts/object/tangible/wearables/utility/utility_belt_tusken_raider.py
+++ b/scripts/object/tangible/wearables/utility/utility_belt_tusken_raider.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/vest/appearance_invisible_s01.py b/scripts/object/tangible/wearables/vest/appearance_invisible_s01.py
index ccad8904..a398dc48 100644
--- a/scripts/object/tangible/wearables/vest/appearance_invisible_s01.py
+++ b/scripts/object/tangible/wearables/vest/appearance_invisible_s01.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/vest/item_smuggler_vest_02_01.py b/scripts/object/tangible/wearables/vest/item_smuggler_vest_02_01.py
new file mode 100644
index 00000000..35c0cd30
--- /dev/null
+++ b/scripts/object/tangible/wearables/vest/item_smuggler_vest_02_01.py
@@ -0,0 +1,10 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_smuggler_vest_02_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_smuggler_vest_02_01')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 3)
+ object.setStringAttribute('class_required', 'Smuggler')
+ return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/wookiee/wke_lifeday_robe.py b/scripts/object/tangible/wearables/wookiee/wke_lifeday_robe.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/wookiee/wke_lifeday_robe.py
+++ b/scripts/object/tangible/wearables/wookiee/wke_lifeday_robe.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/wookiee/wke_lifeday_robe_f.py b/scripts/object/tangible/wearables/wookiee/wke_lifeday_robe_f.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/wookiee/wke_lifeday_robe_f.py
+++ b/scripts/object/tangible/wearables/wookiee/wke_lifeday_robe_f.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/tangible/wearables/wookiee/wke_lifeday_robe_m.py b/scripts/object/tangible/wearables/wookiee/wke_lifeday_robe_m.py
index ccad8904..b89922ca 100644
--- a/scripts/object/tangible/wearables/wookiee/wke_lifeday_robe_m.py
+++ b/scripts/object/tangible/wearables/wookiee/wke_lifeday_robe_m.py
@@ -1,4 +1,7 @@
import sys
def setup(core, object):
+ object.setStringAttribute('condition', '100/100')
+ object.setIntAttribute('volume', 1)
+
return
\ No newline at end of file
diff --git a/scripts/object/weapon/creature/creature_default_weapon.py b/scripts/object/weapon/creature/creature_default_weapon.py
index ccad8904..78eeaca8 100644
--- a/scripts/object/weapon/creature/creature_default_weapon.py
+++ b/scripts/object/weapon/creature/creature_default_weapon.py
@@ -1,4 +1,12 @@
import sys
+from resources.datatables import WeaponType
def setup(core, object):
+ object.setAttackSpeed(1)
+ object.setDamageType("kinetic")
+ object.setMinDamage(50)
+ object.setMaxDamage(100)
+ object.setMaxRange(5)
+ object.setWeaponType(WeaponType.UNARMED)
+
return
\ No newline at end of file
diff --git a/scripts/object/weapon/melee/2h_sword/crafted_saber/sword_lightsaber_two_handed_gen5.py b/scripts/object/weapon/melee/2h_sword/crafted_saber/sword_lightsaber_two_handed_gen5.py
index ccad8904..7f41b9a6 100644
--- a/scripts/object/weapon/melee/2h_sword/crafted_saber/sword_lightsaber_two_handed_gen5.py
+++ b/scripts/object/weapon/melee/2h_sword/crafted_saber/sword_lightsaber_two_handed_gen5.py
@@ -1,4 +1,13 @@
import sys
+from engine.resources.container import CreaturePermissions
def setup(core, object):
+
+ inventory = core.objectService.createObject("object/tangible/inventory/shared_lightsaber_inventory_5.iff", object.getPlanet())
+ inventory.setContainerPermissions(CreaturePermissions.CREATURE_PERMISSIONS);
+
+ object.add(inventory)
+
+ object.setAttachment('radial_filename', 'item/lightsaber')
+
return
\ No newline at end of file
diff --git a/scripts/object/weapon/melee/knife/weapon_knife_trader_roadmap_01_02.py b/scripts/object/weapon/melee/knife/weapon_knife_trader_roadmap_01_02.py
new file mode 100644
index 00000000..a8e53801
--- /dev/null
+++ b/scripts/object/weapon/melee/knife/weapon_knife_trader_roadmap_01_02.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('weapon_knife_trader_roadmap_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('weapon_knife_trader_roadmap_01_02')
+ object.setStringAttribute('class_required', 'Trader')
+ object.setIntAttribute('required_combat_level', 42)
+ object.setFloatAttribute('cat_wpn_damage.wpn_attack_speed', 0)
+ object.setStringAttribute('cat_wpn_damage.damage', '80 - 160')
+ object.setStringAttribute('cat_wpn_damage.wpn_range', '0-5m')
+ object.setStringAttribute('cat_wpn_damage.wpn_category', 'One-Handed Melee')
+ object.setIntAttribute('cat_wpn_damage.dps', object.getDamagePerSecond())
+ return
\ No newline at end of file
diff --git a/scripts/object/weapon/melee/polearm/crafted_saber/sword_lightsaber_polearm_gen5.py b/scripts/object/weapon/melee/polearm/crafted_saber/sword_lightsaber_polearm_gen5.py
index ccad8904..7f41b9a6 100644
--- a/scripts/object/weapon/melee/polearm/crafted_saber/sword_lightsaber_polearm_gen5.py
+++ b/scripts/object/weapon/melee/polearm/crafted_saber/sword_lightsaber_polearm_gen5.py
@@ -1,4 +1,13 @@
import sys
+from engine.resources.container import CreaturePermissions
def setup(core, object):
+
+ inventory = core.objectService.createObject("object/tangible/inventory/shared_lightsaber_inventory_5.iff", object.getPlanet())
+ inventory.setContainerPermissions(CreaturePermissions.CREATURE_PERMISSIONS);
+
+ object.add(inventory)
+
+ object.setAttachment('radial_filename', 'item/lightsaber')
+
return
\ No newline at end of file
diff --git a/scripts/object/weapon/melee/polearm/weapon_polearm_02_03.py b/scripts/object/weapon/melee/polearm/weapon_polearm_02_03.py
new file mode 100644
index 00000000..a730dfbb
--- /dev/null
+++ b/scripts/object/weapon/melee/polearm/weapon_polearm_02_03.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('weapon_polearm_02_03')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('weapon_polearm_02_03')
+ object.setIntAttribute('required_combat_level', 1)
+ object.setAttackSpeed(1);
+ object.setMaxRange(5);
+ object.setDamageType("kinetic");
+ object.setMinDamage(43);
+ object.setMaxDamage(75);
+ object.setWeaponType(7);
+ return
+ return
\ No newline at end of file
diff --git a/scripts/object/weapon/melee/sword/crafted_saber/sword_lightsaber_one_handed_gen5.py b/scripts/object/weapon/melee/sword/crafted_saber/sword_lightsaber_one_handed_gen5.py
index ccad8904..7f41b9a6 100644
--- a/scripts/object/weapon/melee/sword/crafted_saber/sword_lightsaber_one_handed_gen5.py
+++ b/scripts/object/weapon/melee/sword/crafted_saber/sword_lightsaber_one_handed_gen5.py
@@ -1,4 +1,13 @@
import sys
+from engine.resources.container import CreaturePermissions
def setup(core, object):
+
+ inventory = core.objectService.createObject("object/tangible/inventory/shared_lightsaber_inventory_5.iff", object.getPlanet())
+ inventory.setContainerPermissions(CreaturePermissions.CREATURE_PERMISSIONS);
+
+ object.add(inventory)
+
+ object.setAttachment('radial_filename', 'item/lightsaber')
+
return
\ No newline at end of file
diff --git a/scripts/object/weapon/melee/sword/crafted_saber/weapon_roadmap_lightsaber_02_02.py b/scripts/object/weapon/melee/sword/crafted_saber/weapon_roadmap_lightsaber_02_02.py
new file mode 100644
index 00000000..38a9f07e
--- /dev/null
+++ b/scripts/object/weapon/melee/sword/crafted_saber/weapon_roadmap_lightsaber_02_02.py
@@ -0,0 +1,12 @@
+import sys
+
+def setup(core, object):
+ object.setCustomName('First Generation Lightsaber')
+
+ object.setFloatAttribute('cat_wpn_damage.wpn_attack_speed', 1)
+ object.setStringAttribute('class_required', 'Jedi')
+ object.setStringAttribute('cat_wpn_damage.wpn_damage_type', 'Energy')
+ object.setStringAttribute('cat_wpn_damage.damage', '200-400')
+
+ ## finish this ##
+ return
\ No newline at end of file
diff --git a/scripts/object/weapon/ranged/carbine/weapon_acidbeam_commando_roadmap_01_02.py b/scripts/object/weapon/ranged/carbine/weapon_acidbeam_commando_roadmap_01_02.py
new file mode 100644
index 00000000..8fd46b6d
--- /dev/null
+++ b/scripts/object/weapon/ranged/carbine/weapon_acidbeam_commando_roadmap_01_02.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('weapon_acidbeam_commando_roadmap_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('weapon_acidbeam_commando_roadmap_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('required_combat_level', 30)
+ object.setFloatAttribute('cat_wpn_damage.wpn_attack_speed', 0.6)
+ object.setStringAttribute('cat_wpn_damage.wpn_damage_type', 'Energy')
+ object.setStringAttribute('cat_wpn_damage.damage', '109-218')
+ object.setStringAttribute('cat_wpn_damage.wpn_range', '0-50m')
+ object.setStringAttribute('cat_wpn_damage.wpn_category', 'Carbine')
+ object.setIntAttribute('cat_wpn_damage.dps', object.getDamagePerSecond())
+ return
\ No newline at end of file
diff --git a/scripts/object/weapon/ranged/carbine/weapon_carbine_bh_roadmap_01_02.py b/scripts/object/weapon/ranged/carbine/weapon_carbine_bh_roadmap_01_02.py
new file mode 100644
index 00000000..eede7b59
--- /dev/null
+++ b/scripts/object/weapon/ranged/carbine/weapon_carbine_bh_roadmap_01_02.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('weapon_carbine_bh_roadmap_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('weapon_carbine_bh_roadmap_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('required_combat_level', 30)
+ object.setFloatAttribute('cat_wpn_damage.wpn_attack_speed', 0.6)
+ object.setStringAttribute('cat_wpn_damage.wpn_damage_type', 'Energy')
+ object.setStringAttribute('cat_wpn_damage.damage', '109-218')
+ object.setStringAttribute('cat_wpn_damage.wpn_range', '0-55m')
+ object.setStringAttribute('cat_wpn_damage.wpn_category', 'Carbine')
+ object.setIntAttribute('cat_wpn_damage.dps', object.getDamagePerSecond())
+ return
\ No newline at end of file
diff --git a/scripts/object/weapon/ranged/carbine/weapon_carbine_sp_roadmap_01_02.py b/scripts/object/weapon/ranged/carbine/weapon_carbine_sp_roadmap_01_02.py
new file mode 100644
index 00000000..b8697c39
--- /dev/null
+++ b/scripts/object/weapon/ranged/carbine/weapon_carbine_sp_roadmap_01_02.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('weapon_carbine_sp_roadmap_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('weapon_carbine_sp_roadmap_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('required_combat_level', 50)
+ object.setFloatAttribute('cat_wpn_damage.wpn_attack_speed', 0.6)
+ object.setStringAttribute('cat_wpn_damage.wpn_damage_type', 'Energy')
+ object.setStringAttribute('cat_wpn_damage.damage', '195-392')
+ object.setStringAttribute('cat_wpn_damage.range', '0-55m')
+ object.setStringAttribute('cat_wpn_damage.wpn_category', 'Carbine')
+ object.setIntAttribute('cat_wpn_damage.dps', object.getDamagePerSecond())
+ return
diff --git a/scripts/object/weapon/ranged/carbine/weapon_npe_carbine_bh_03_01.py b/scripts/object/weapon/ranged/carbine/weapon_npe_carbine_bh_03_01.py
new file mode 100644
index 00000000..600a05a8
--- /dev/null
+++ b/scripts/object/weapon/ranged/carbine/weapon_npe_carbine_bh_03_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('weapon_npe_carbine_bh_03_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('weapon_npe_carbine_bh_03_01')
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('required_combat_level', 1)
+ object.setAttackSpeed(0.6);
+ object.setMaxRange(35);
+ object.setDamageType("energy");
+ object.setMinDamage(17);
+ object.setMaxDamage(43);
+ object.setWeaponType(1);
+ return
\ No newline at end of file
diff --git a/scripts/object/weapon/ranged/carbine/weapon_npe_carbine_spy_03_01.py b/scripts/object/weapon/ranged/carbine/weapon_npe_carbine_spy_03_01.py
new file mode 100644
index 00000000..bb153176
--- /dev/null
+++ b/scripts/object/weapon/ranged/carbine/weapon_npe_carbine_spy_03_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('weapon_npe_carbine_spy_03_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('weapon_npe_carbine_spy_03_01')
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('required_combat_level', 1)
+ object.setAttackSpeed(0.6);
+ object.setMaxRange(35);
+ object.setDamageType("energy");
+ object.setMinDamage(17);
+ object.setMaxDamage(43);
+ object.setWeaponType(1);
+ return
\ No newline at end of file
diff --git a/scripts/object/weapon/ranged/carbine/weapon_npe_commando_carbine_03_01.py b/scripts/object/weapon/ranged/carbine/weapon_npe_commando_carbine_03_01.py
new file mode 100644
index 00000000..e707e4f4
--- /dev/null
+++ b/scripts/object/weapon/ranged/carbine/weapon_npe_commando_carbine_03_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('weapon_npe_commando_carbine_03_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('weapon_npe_commando_carbine_03_01')
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('required_combat_level', 1)
+ object.setAttackSpeed(0.6);
+ object.setMaxRange(35);
+ object.setDamageType("energy");
+ object.setMinDamage(20);
+ object.setMaxDamage(40);
+ object.setWeaponType(1);
+ return
\ No newline at end of file
diff --git a/scripts/object/weapon/ranged/pistol/item_npe_officer_sidearm.py b/scripts/object/weapon/ranged/pistol/item_npe_officer_sidearm.py
new file mode 100644
index 00000000..b1c7fa0f
--- /dev/null
+++ b/scripts/object/weapon/ranged/pistol/item_npe_officer_sidearm.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_npe_officer_sidearm')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_npe_officer_sidearm')
+ object.setStringAttribute('class_required', 'Officer')
+ object.setIntAttribute('required_combat_level', 1)
+ object.setAttackSpeed(0.4);
+ object.setMaxRange(35);
+ object.setDamageType("energy");
+ object.setMinDamage(15);
+ object.setMaxDamage(25);
+ object.setWeaponType(2);
+ return
\ No newline at end of file
diff --git a/scripts/object/weapon/ranged/pistol/item_npe_smuggler_han_solo_gun.py b/scripts/object/weapon/ranged/pistol/item_npe_smuggler_han_solo_gun.py
new file mode 100644
index 00000000..baef2e0b
--- /dev/null
+++ b/scripts/object/weapon/ranged/pistol/item_npe_smuggler_han_solo_gun.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('item_npe_smuggler_han_solo_gun')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('item_npe_smuggler_han_solo_gun')
+ object.setStringAttribute('class_required', 'Smuggler')
+ object.setIntAttribute('required_combat_level', 1)
+ object.setAttackSpeed(0.4);
+ object.setMaxRange(35);
+ object.setDamageType("energy");
+ object.setMinDamage(13);
+ object.setMaxDamage(27);
+ object.setWeaponType(2);
+ return
\ No newline at end of file
diff --git a/scripts/object/weapon/ranged/pistol/weapon_npe_medic_pistol_03_01.py b/scripts/object/weapon/ranged/pistol/weapon_npe_medic_pistol_03_01.py
new file mode 100644
index 00000000..56169960
--- /dev/null
+++ b/scripts/object/weapon/ranged/pistol/weapon_npe_medic_pistol_03_01.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('weapon_npe_medic_pistol_03_01')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('weapon_npe_medic_pistol_03_01')
+ object.setStringAttribute('class_required', 'Medic')
+ object.setIntAttribute('required_combat_level', 1)
+ object.setAttackSpeed(0.4);
+ object.setMaxRange(35);
+ object.setDamageType("energy");
+ object.setMinDamage(13);
+ object.setMaxDamage(27);
+ object.setWeaponType(2);
+ return
\ No newline at end of file
diff --git a/scripts/object/weapon/ranged/pistol/weapon_pistol_02_02.py b/scripts/object/weapon/ranged/pistol/weapon_pistol_02_02.py
new file mode 100644
index 00000000..055d033d
--- /dev/null
+++ b/scripts/object/weapon/ranged/pistol/weapon_pistol_02_02.py
@@ -0,0 +1,15 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('weapon_pistol_02_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('weapon_pistol_02_02')
+ object.setIntAttribute('required_combat_level', 1)
+ object.setFloatAttribute('cat_wpn_damage.wpn_attack_speed', 0.4)
+ object.setStringAttribute('cat_wpn_damage.wpn_damage_type', 'Energy')
+ object.setStringAttribute('cat_wpn_damage.damage', '10-26')
+ object.setStringAttribute('cat_wpn_damage.wpn_range', '0-35m')
+ object.setStringAttribute('cat_wpn_damage.wpn_category', 'Pistol')
+ object.setIntAttribute('cat_wpn_damage.dps', object.getDamagePerSecond())
+ return
\ No newline at end of file
diff --git a/scripts/object/weapon/ranged/pistol/weapon_pistol_sp_roadmap_01_02.py b/scripts/object/weapon/ranged/pistol/weapon_pistol_sp_roadmap_01_02.py
new file mode 100644
index 00000000..5951524c
--- /dev/null
+++ b/scripts/object/weapon/ranged/pistol/weapon_pistol_sp_roadmap_01_02.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('weapon_pistol_sp_roadmap_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('weapon_pistol_sp_roadmap_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5)
+ object.setStringAttribute('class_required', 'Spy')
+ object.setIntAttribute('required_combat_level', 30)
+ object.setFloatAttribute('cat_wpn_damage.wpn_attack_speed', 0.4)
+ object.setStringAttribute('cat_wpn_damage.wpn_damage_type', 'Energy')
+ object.setStringAttribute('cat_wpn_damage.damage', '73-145')
+ object.setStringAttribute('cat_wpn_damage.range', '0-35m')
+ object.setStringAttribute('cat_wpn_damage.wpn_category', 'Pistol')
+ object.setIntAttribute('cat_wpn_damage.dps', object.getDamagePerSecond())
+ return
diff --git a/scripts/object/weapon/ranged/pistol/weapon_pistol_trader_roadmap_01_02.py b/scripts/object/weapon/ranged/pistol/weapon_pistol_trader_roadmap_01_02.py
new file mode 100644
index 00000000..9feea0cd
--- /dev/null
+++ b/scripts/object/weapon/ranged/pistol/weapon_pistol_trader_roadmap_01_02.py
@@ -0,0 +1,16 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('weapon_pistol_trader_roadmap_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('weapon_pistol_trader_roadmap_01_02')
+ object.setStringAttribute('class_required', 'Trader')
+ object.setIntAttribute('required_combat_level', 62)
+ object.setFloatAttribute('cat_wpn_damage.wpn_attack_speed', 0.4)
+ object.setStringAttribute('cat_wpn_damage.wpn_damage_type', 'Energy')
+ object.setStringAttribute('cat_wpn_damage.damage', '250-500')
+ object.setStringAttribute('cat_wpn_damage.wpn_range', '0-35m')
+ object.setStringAttribute('cat_wpn_damage.wpn_category', 'Pistol')
+ object.setIntAttribute('cat_wpn_damage.dps', object.getDamagePerSecond())
+ return
\ No newline at end of file
diff --git a/scripts/object/weapon/ranged/rifle/weapon_lightningbeam_commando_roadmap_01_02.py b/scripts/object/weapon/ranged/rifle/weapon_lightningbeam_commando_roadmap_01_02.py
new file mode 100644
index 00000000..03768d96
--- /dev/null
+++ b/scripts/object/weapon/ranged/rifle/weapon_lightningbeam_commando_roadmap_01_02.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('weapon_lightningbeam_commando_roadmap_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('weapon_lightningbeam_commando_roadmap_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5)
+ object.setStringAttribute('class_required', 'Commando')
+ object.setIntAttribute('required_combat_level', 30)
+ object.setFloatAttribute('cat_wpn_damage.wpn_attack_speed', 0.8)
+ object.setStringAttribute('cat_wpn_damage.wpn_damage_type', 'Energy')
+ object.setStringAttribute('cat_wpn_damage.damage', '261-522')
+ object.setStringAttribute('cat_wpn_damage.wpn_range', '0-64m')
+ object.setStringAttribute('cat_wpn_damage.wpn_category', 'Rifle')
+ object.setIntAttribute('cat_wpn_damage.dps', object.getDamagePerSecond())
+ return
\ No newline at end of file
diff --git a/scripts/object/weapon/ranged/rifle/weapon_rifle_bh_roadmap_01_02.py b/scripts/object/weapon/ranged/rifle/weapon_rifle_bh_roadmap_01_02.py
new file mode 100644
index 00000000..33825f81
--- /dev/null
+++ b/scripts/object/weapon/ranged/rifle/weapon_rifle_bh_roadmap_01_02.py
@@ -0,0 +1,17 @@
+import sys
+
+def setup(core, object):
+ object.setStfFilename('static_item_n')
+ object.setStfName('weapon_rifle_bh_roadmap_01_02')
+ object.setDetailFilename('static_item_d')
+ object.setDetailName('weapon_rifle_bh_roadmap_01_02')
+ object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 5)
+ object.setStringAttribute('class_required', 'Bounty Hunter')
+ object.setIntAttribute('required_combat_level', 50)
+ object.setFloatAttribute('cat_wpn_damage.wpn_attack_speed', 0.8)
+ object.setStringAttribute('cat_wpn_damage.wpn_damage_type', 'Energy')
+ object.setStringAttribute('cat_wpn_damage.damage', '261-522')
+ object.setStringAttribute('cat_wpn_damage.wpn_range', '0-64m')
+ object.setStringAttribute('cat_wpn_damage.wpn_category', 'Rifle')
+ object.setIntAttribute('cat_wpn_damage.dps', object.getDamagePerSecond())
+ return
\ No newline at end of file
diff --git a/scripts/pvpzones.py b/scripts/pvpzones.py
new file mode 100644
index 00000000..0714e398
--- /dev/null
+++ b/scripts/pvpzones.py
@@ -0,0 +1,10 @@
+import sys
+
+def addZones(core):
+
+ gcwService = core.gcwService
+
+ gcwService.addPvPZone('rori', 5318, 5680, 400)
+ gcwService.addPvPZone('corellia', 4722, -5233, 200)
+ gcwService.addPvPZone('naboo', 1019, -1508, 150)
+ gcwService.addPvPZone('talus', -4899, -3137, 150)
\ No newline at end of file
diff --git a/scripts/radial/creature/player.py b/scripts/radial/creature/player.py
new file mode 100644
index 00000000..08fa50e0
--- /dev/null
+++ b/scripts/radial/creature/player.py
@@ -0,0 +1,32 @@
+from resources.common import RadialOptions
+from resources.datatables import Posture
+import sys
+
+def createRadial(core, owner, target, radials):
+ if target.getPosture() == Posture.SkillAnimating:
+ if owner.getPerformanceWatchee() == target:
+ if target.getPerformanceType() is True:
+ radials.add(RadialOptions(0, 141, 3, 'Stop Watching'))
+ elif owner.getPerformanceListenee() == target:
+ radials.add(RadialOptions(0, 141, 3, 'Stop Listening'))
+ else:
+ if target.getPerformanceType() is True:
+ radials.add(RadialOptions(0, 140, 3, 'Watch'))
+ else:
+ radials.add(RadialOptions(0, 140, 3, 'Listen'))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 140:
+ if target.getPerformanceType() is True:
+ core.commandService.callCommand(owner, 'watch', target, '')
+ return
+ else:
+ # TODO: Insert callCommand /listen
+ return
+ return
+
+ if option == 141:
+ core.commandService.callCommand(owner, 'stopwatching', target, '')
+ return
+ return
\ No newline at end of file
diff --git a/scripts/radial/creature/vehicle.py b/scripts/radial/creature/vehicle.py
new file mode 100644
index 00000000..af827f7d
--- /dev/null
+++ b/scripts/radial/creature/vehicle.py
@@ -0,0 +1,31 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ master = core.objectService.getObject(target.getOwnerId())
+
+ radials.add(RadialOptions(0, 7, 1, ''))
+ if core.mountService.canMount(owner, target):
+ radials.add(RadialOptions(0, 40, 3, '@pet/pet_menu:menu_enter_exit'))
+ if target.getOwnerId() == owner.getObjectID():
+ radials.add(RadialOptions(0, 60, 3, '@pet/pet_menu:menu_store'))
+ if core.mountService.canRepair(owner, target):
+ radials.add(RadialOptions(0, 114, 3, '@pet/pet_menu:menu_repair_vehicle'))
+ return
+
+def handleSelection(core, owner, target, option):
+ mntSvc = core.mountService
+
+ if target:
+ if option == 40:
+ if mntSvc.isMounted(owner):
+ mntSvc.dismount(owner, target)
+ else:
+ mntSvc.mount(owner, target)
+ core.objectService.useObject(owner, target)
+ elif option == 60:
+ mntSvc.store(owner, target)
+ elif option == 114:
+ mntSvc.repair(owner, target)
+ return
+
diff --git a/scripts/radial/datapad/vehicle_pcd.py b/scripts/radial/datapad/vehicle_pcd.py
new file mode 100644
index 00000000..b1ee9ad0
--- /dev/null
+++ b/scripts/radial/datapad/vehicle_pcd.py
@@ -0,0 +1,23 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ if core.mountService.getMount(target) is None:
+ radials.add(RadialOptions(0, 61, 1, '@pet/pet_menu:menu_call'))
+ else:
+ radials.add(RadialOptions(0, 61, 1, '@pet/pet_menu:menu_store'))
+ radials.add(RadialOptions(0, 7, 1, ''))
+ radials.add(RadialOptions(0, 15, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 61 and target:
+ if core.mountService.getMount(target) is None:
+ core.mountService.call(owner, target)
+ else:
+ core.mountService.store(owner, core.mountService.getMount(target))
+ elif option == 15 and target:
+ core.mountService.destroy(owner, target)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/deeds/deed.py b/scripts/radial/deeds/deed.py
new file mode 100644
index 00000000..633eb6db
--- /dev/null
+++ b/scripts/radial/deeds/deed.py
@@ -0,0 +1,16 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 7, 1, ''))
+ radials.add(RadialOptions(0, 15, 1, ''))
+ radials.add(RadialOptions(0, 61, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 61 and target:
+ core.objectService.useObject(owner, target)
+ if option == 15 and target:
+ core.objectService.destroyObject(target)
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/deeds/harvesterDeed.py b/scripts/radial/deeds/harvesterDeed.py
new file mode 100644
index 00000000..9d85158b
--- /dev/null
+++ b/scripts/radial/deeds/harvesterDeed.py
@@ -0,0 +1,21 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.clear()
+ radials.add(RadialOptions(0, 21, 3, 'Use Deed'))
+ #radials.add(RadialOptions(0, 7, 1, '111111'))
+ #radials.add(RadialOptions(0, 15, 1, ''))
+ #radials.add(RadialOptions(0, 61, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 21 and target:
+ core.objectService.useObject(owner, target)
+ core.harvesterService.enterStructurePlacementMode(owner, target)
+ if option == 61 and target:
+ object5 = core.harvesterService.constructionSite(owner, target)
+ if option == 15 and target:
+ core.objectService.destroyObject(target)
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/deeds/structureDeed.py b/scripts/radial/deeds/structureDeed.py
new file mode 100644
index 00000000..0ddee9f3
--- /dev/null
+++ b/scripts/radial/deeds/structureDeed.py
@@ -0,0 +1,11 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 21 and target:
+ core.housingService.enterStructureMode(owner, target)
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/deeds/vehicleDeed.py b/scripts/radial/deeds/vehicleDeed.py
new file mode 100644
index 00000000..ad08a40f
--- /dev/null
+++ b/scripts/radial/deeds/vehicleDeed.py
@@ -0,0 +1,16 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 7, 1, ''))
+ radials.add(RadialOptions(0, 15, 1, ''))
+ radials.add(RadialOptions(0, 61, 3, '@pet/pet_menu:menu_generate'))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 61 and target:
+ core.objectService.useObject(owner, target)
+ if option == 15 and target:
+ core.objectService.destroyObject(target)
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/equipment/appearance.py b/scripts/radial/equipment/appearance.py
new file mode 100644
index 00000000..4c184296
--- /dev/null
+++ b/scripts/radial/equipment/appearance.py
@@ -0,0 +1,16 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 21, 1, ''))
+ radials.add(RadialOptions(0, 7, 1, ''))
+ radials.add(RadialOptions(0, 15, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 21 and target:
+ core.objectService.useObject(owner, target)
+ if option == 15 and target:
+ core.objectService.destroyObject(target)
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/equipment/wearable.py b/scripts/radial/equipment/wearable.py
new file mode 100644
index 00000000..4c184296
--- /dev/null
+++ b/scripts/radial/equipment/wearable.py
@@ -0,0 +1,16 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 21, 1, ''))
+ radials.add(RadialOptions(0, 7, 1, ''))
+ radials.add(RadialOptions(0, 15, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 21 and target:
+ core.objectService.useObject(owner, target)
+ if option == 15 and target:
+ core.objectService.destroyObject(target)
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/holidays/lifeday_gift.py b/scripts/radial/holidays/lifeday_gift.py
new file mode 100644
index 00000000..696d7662
--- /dev/null
+++ b/scripts/radial/holidays/lifeday_gift.py
@@ -0,0 +1,57 @@
+from resources.common import RadialOptions
+import sys
+import java.util.Random
+
+def createRadial(core, owner, target, radials):
+ radials.clear()
+ radials.add(RadialOptions(0, 21, 1, ''))
+ return
+
+def handleSelection(core, actor, object, option):
+ if option == 21:
+ if object.getAttachment('ownerId') and actor.getObjectID() == object.getAttachment('ownerId'):
+ return
+
+ random = java.util.Random()
+ giftNum = random.nextInt(12)
+
+ if giftNum == 0:
+ objectName = 'rewards_09/shared_lifeday_decor_cookie'
+ elif giftNum == 1:
+ objectName = 'rewards_09/shared_lifeday_decor_fruitcake'
+ elif giftNum == 2:
+ objectName = 'rewards_09/shared_lifeday_decor_hoth_chocolate'
+ elif giftNum == 3:
+ objectName = 'rewards_09/shared_lifeday_decor_varactyl_nog'
+ elif giftNum == 4:
+ objectName = 'rewards_09/shared_lifeday_fireplace_01'
+ elif giftNum == 5:
+ objectName = 'rewards_09/shared_lifeday_fireplace_02'
+ elif giftNum == 6:
+ objectName = 'rewards_09/shared_lifeday_lamp_01'
+ elif giftNum == 7:
+ objectName = 'rewards_09/shared_lifeday_lamp_02'
+ elif giftNum == 8:
+ objectName = 'rewards_09/shared_lifeday_ornament'
+ elif giftNum == 9:
+ objectName = 'shared_life_day_present'
+ elif giftNum == 10:
+ objectName = 'shared_life_day_tree'
+ elif giftNum == 11:
+ objectName = 'shared_life_day_tree_dressed'
+ else:
+ objectName = 'rewards_09/shared_lifeday_ornament'
+
+ inventory = actor.getSlottedObject('inventory')
+
+ if not inventory:
+ return
+
+ reward1 = core.objectService.createObject('object/tangible/holiday/life_day/rewards_09/shared_lifeday_painting.iff', actor.getPlanet())
+ reward2 = core.objectService.createObject('object/tangible/holiday/life_day/' + objectName + '.iff', actor.getPlanet())
+
+ inventory.add(reward1)
+ inventory.add(reward2)
+
+ core.objectService.destroyObject(object)
+ return
diff --git a/scripts/radial/holidays/main_lifeday_tree.py b/scripts/radial/holidays/main_lifeday_tree.py
new file mode 100644
index 00000000..c996a9b5
--- /dev/null
+++ b/scripts/radial/holidays/main_lifeday_tree.py
@@ -0,0 +1,46 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.clear()
+ player = owner.getSlottedObject('ghost')
+ radials.add(RadialOptions(0, 7, 1, ''))
+ if player and core.collectionService.getCollection(owner, 'col_lifeday_tree_tracking_2010') < 1:
+ radials.add(RadialOptions(0, 21, 3, '@spam:tree_use'))
+ if player and core.collectionService.getCollection(owner, 'lifeday_badge_08') < 1:
+ radials.add(RadialOptions(0, 115, 3, '@spam:tree_badge'))
+ return
+
+def handleSelection(core, owner, target, option):
+ actor = owner
+ object = target
+
+ if option == 115:
+ core.collectionService.addCollection(owner, 'lifeday_badge_08')
+ return
+
+ if option != 21 or not object:
+ return
+
+ player = actor.getSlottedObject('ghost')
+
+ if not player:
+ return
+
+ if core.collectionService.isComplete(actor, 'col_lifeday_tree_tracking_2010'):
+ return
+
+ inventory = actor.getSlottedObject('inventory')
+
+ if not inventory:
+ return
+
+ lifedaybox = core.objectService.createObject('object/tangible/loot/creature_loot/collections/shared_dejarik_table_base.iff', actor.getPlanet(), 'item_lifeday_gift_self_01_01')
+ lifedaybox.setAttachment('radial_filename', 'lifeday_gift')
+ inventory.add(lifedaybox)
+
+ lifedayboxfriend = core.objectService.createObject('object/tangible/loot/creature_loot/collections/shared_dejarik_table_base.iff', actor.getPlanet(), 'item_lifeday_gift_other_01_01')
+ lifedayboxfriend.setAttachment('ownerId', actor.getObjectID())
+ inventory.add(lifedayboxfriend)
+
+ core.collectionService.addCollection(owner, 'col_lifeday_tree_tracking_2010')
diff --git a/scripts/radial/instances/exar_kun/exar_kun_brazier.py b/scripts/radial/instances/exar_kun/exar_kun_brazier.py
new file mode 100644
index 00000000..d78e1915
--- /dev/null
+++ b/scripts/radial/instances/exar_kun/exar_kun_brazier.py
@@ -0,0 +1,14 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 21, 1, ''))
+ radials.add(RadialOptions(0, 7, 1, ''))
+ radials.add(RadialOptions(0, 21, 3, '@building_name:heroic_exar_enter'))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 21 and target:
+ core.objectService.useObject(owner, target)
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/item/collection.py b/scripts/radial/item/collection.py
new file mode 100644
index 00000000..dfdc1edf
--- /dev/null
+++ b/scripts/radial/item/collection.py
@@ -0,0 +1,14 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 21, 1, ''))
+ radials.add(RadialOptions(0, 7, 1, ''))
+ radials.add(RadialOptions(0, 21, 3, '@collection:consume_item'))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 21 and target:
+ core.objectService.useObject(owner, target)
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/item/item.py b/scripts/radial/item/item.py
new file mode 100644
index 00000000..4c184296
--- /dev/null
+++ b/scripts/radial/item/item.py
@@ -0,0 +1,16 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 21, 1, ''))
+ radials.add(RadialOptions(0, 7, 1, ''))
+ radials.add(RadialOptions(0, 15, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 21 and target:
+ core.objectService.useObject(owner, target)
+ if option == 15 and target:
+ core.objectService.destroyObject(target)
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/item/lightsaber.py b/scripts/radial/item/lightsaber.py
new file mode 100644
index 00000000..c02dc502
--- /dev/null
+++ b/scripts/radial/item/lightsaber.py
@@ -0,0 +1,12 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 21, 1, 'Open Lightsaber'))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 21 and target:
+ core.simulationService.openContainer(owner, target.getSlottedObject("saber_inv"))
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/item/lootchest.py b/scripts/radial/item/lootchest.py
new file mode 100644
index 00000000..90c6b03e
--- /dev/null
+++ b/scripts/radial/item/lootchest.py
@@ -0,0 +1,14 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 21, 1, 'Open'))
+ radials.add(RadialOptions(0, 7, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 21 and target:
+ core.lootService.fillrarelootchest(owner, target)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/item/resourceContainer.py b/scripts/radial/item/resourceContainer.py
new file mode 100644
index 00000000..fb6fa586
--- /dev/null
+++ b/scripts/radial/item/resourceContainer.py
@@ -0,0 +1,18 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 49, 0, 'Split'))
+ radials.add(RadialOptions(0, 7, 0, 'Examine'))
+ radials.add(RadialOptions(0, 15, 0, 'Destroy'))
+ return
+
+def handleSelection(core, owner, target, option):
+ #if option == 21 and target:
+ #core.objectService.useObject(owner, target)
+ if option == 15 and target:
+ if target == player.getRecentContainer():
+ player.setRecentContainer(None)
+
+ core.objectService.destroyObject(target)
+ return
\ No newline at end of file
diff --git a/scripts/radial/item/survey_tool.py b/scripts/radial/item/survey_tool.py
new file mode 100644
index 00000000..33e36367
--- /dev/null
+++ b/scripts/radial/item/survey_tool.py
@@ -0,0 +1,27 @@
+from resources.common import RadialOptions
+from protocol.swg import ResourceListForSurveyMessage
+from services.sui.SUIService import MessageBoxType
+from services.SurveyService import createSurveyRangeSUIWindow
+from services.sui.SUIWindow import Trigger
+from java.util import Vector
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.clear()
+ radials.add(RadialOptions(0, 21, 1, 'Use'))
+ radials.add(RadialOptions(0, 7, 0, 'Examine'))
+ radials.add(RadialOptions(0, 15, 0, 'Destroy'))
+ radials.add(RadialOptions(0, 132, 1, 'Tool Options'))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 21 and target:
+ if owner is not None:
+ rlfsm = ResourceListForSurveyMessage(core,target,owner)
+ owner.getClient().getSession().write(rlfsm.serialize())
+ return
+ if option == 132:
+ if owner is not None:
+ surSvc = core.surveyService
+ surSvc.createSurveyRangeSUIWindow(owner, target)
+ return
diff --git a/scripts/radial/item/travel_ticket.py b/scripts/radial/item/travel_ticket.py
new file mode 100644
index 00000000..fbb150e9
--- /dev/null
+++ b/scripts/radial/item/travel_ticket.py
@@ -0,0 +1,40 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.clear()
+
+ radials.add(RadialOptions(0, 21, 1, 'Use Travel Ticket'))
+ #radials.add(RadialOptions(0, 7, 1, ''))
+ #radials.add(RadialOptions(0, 15, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+
+ if option == 21 and target:
+
+ tp = core.travelService.getNearestTravelPoint(owner)
+
+ if owner is not None and tp is not None:
+ print (str(tp.getLocation().getDistance2D(owner.getWorldPosition())))
+ if tp.getLocation().getDistance2D(owner.getWorldPosition()) <= float(25):
+ if tp.isShuttleAvailable() is True:
+ core.travelService.doTransport(owner, core.travelService.getTravelPointByName(target.getStringAttribute('@obj_attr_n:travel_arrival_planet'),
+ target.getStringAttribute('@obj_attr_n:travel_arrival_point')))
+ core.objectService.destroyObject(target)
+ return
+ return
+ else:
+ owner.sendSystemMessage('@travel:boarding_too_far', 0)
+ return
+ return
+ return
+
+ if option == 15 and target:
+ core.objectService.destroyObject(target)
+ return
+ return
+
+def handleSUI(owner, window, eventType, returnList):
+
+ return
\ No newline at end of file
diff --git a/scripts/radial/item/tunable.py b/scripts/radial/item/tunable.py
new file mode 100644
index 00000000..cda19b74
--- /dev/null
+++ b/scripts/radial/item/tunable.py
@@ -0,0 +1,60 @@
+from resources.common import RadialOptions
+from services.sui.SUIService import MessageBoxType
+import time
+from services.sui.SUIWindow import Trigger
+from java.util import Vector
+import main.NGECore
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.clear()
+ radials.add(RadialOptions(0, 7, 0, 'Examine'))
+ radials.add(RadialOptions(0, 15, 0, 'Destroy'))
+ if target.getAttachment("tunerId") == None or target.getAttachment("tunerId") == 0:
+ if owner.getPlayerObject().getProfession()=='force_sensitive_1a':
+ radials.add(RadialOptions(0, 19, 0, '@jedi_spam:tune_crystal'))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 19 and target:
+ if owner is not None:
+ #owner.sendSystemMessage('You are not attuned enough with the force yet.',1)
+
+ if target.getAttachment("tunerId") == None or target.getAttachment("tunerId") == 0:
+
+ owner.setAttachment("TunableObject", target.getObjectID())
+ handleSUIWindow(core, owner, target, option)
+
+ else:
+ owner.sendSystemMessage("You cannot tune this crystal.",1)
+ return
+
+def handleSUIWindow(core, owner, target, option):
+ suiSvc = core.suiService
+ suiWindow = suiSvc.createMessageBox(MessageBoxType.MESSAGE_BOX_OK_CANCEL, '@jedi_spam:confirm_tune_title', '@jedi_spam:confirm_tune_prompt', owner, target, 15)
+ returnParams = Vector()
+ returnParams.add('btnOk:Text')
+ returnParams.add('btnCancel:Text')
+ suiWindow.addHandler(0, '', Trigger.TRIGGER_OK, returnParams, handleSUI)
+ suiWindow.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnParams, handleSUI)
+ suiSvc.openSUIWindow(suiWindow)
+
+def handleSUI(owner, window, eventType, returnList):
+
+ if eventType == 0:
+ time.sleep(1)
+ objectID = long(owner.getAttachment("TunableObject"))
+ tunableObject = main.NGECore.getInstance().objectService.getObject(objectID)
+
+ if tunableObject:
+ tunableObject.getAttributes().put("@obj_attr_n:crystal_owner", owner.getCustomName())
+ tunableObject.setAttachment("tunerId", int(owner.getObjectId()))
+
+ if tunableObject.getAttributes().get("@obj_attr_n:color") is None:
+ main.NGECore.getInstance().lootService.tuneProcess(tunableObject)
+ time.sleep(0.5)
+
+ tunableObject.setCustomName( "\\#00FF00" + tunableObject.getObjectName().getStfValue() + " (tuned)")
+ owner.sendSystemMessage('@jedi_spam:crystal_tune_success',1)
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/lootitem.py b/scripts/radial/lootitem.py
new file mode 100644
index 00000000..ec9ae01e
--- /dev/null
+++ b/scripts/radial/lootitem.py
@@ -0,0 +1,19 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.clear()
+ radials.add(RadialOptions(0, 11, 1, 'Pick Up'))
+ radials.add(RadialOptions(0, 21, 1, ''))
+ radials.add(RadialOptions(0, 7, 1, ''))
+ radials.add(RadialOptions(0, 15, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+
+ if option == 21 and target:
+ core.objectService.useObject(owner, target)
+ if option == 15 and target:
+ core.objectService.destroyObject(target)
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/noradialoptions.py b/scripts/radial/noradialoptions.py
new file mode 100644
index 00000000..89075314
--- /dev/null
+++ b/scripts/radial/noradialoptions.py
@@ -0,0 +1,13 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.clear()
+ radials.add(RadialOptions(0, 21, 1, ''))
+ radials.add(RadialOptions(0, 7, 1, ''))
+ radials.add(RadialOptions(0, 15, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/npc/bounty_probot.py b/scripts/radial/npc/bounty_probot.py
new file mode 100644
index 00000000..83cdb93a
--- /dev/null
+++ b/scripts/radial/npc/bounty_probot.py
@@ -0,0 +1,35 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 138, 1, '@mission/mission_generic:probe_droid_summon'))
+ return
+
+def handleSelection(core, owner, target, option):
+
+ if option == 138 and target:
+ id = owner.getPlayerObject().getBountyMissionId()
+ if id is None or id == 0:
+ owner.sendSystemMessage('@mission/mission_generic:bounty_no_mission', 0)
+ return
+
+ mission = core.objectService.getObject(id)
+ if mission is None:
+ owner.sendSystemMessage('@mission/mission_generic:bounty_no_mission', 0)
+ return
+
+ if mission.getObjective().isArakydActive():
+ owner.sendSystemMessage('@mission/mission_generic:probe_droid_too_many', 0)
+ return
+
+ if not core.terrainService.canBuildAtPosition(owner, owner.getPosition().x, owner.getPosition().z):
+ owner.sendSystemMessage('@mission/mission_generic:probe_droid_bad_location', 0)
+ return
+
+ if target.getUses() == 0:
+ core.objectService.destroyObject(target)
+ else:
+ target.setUses(target.getUses() - 1)
+
+ mission.getObjective().handleProbeDroidSummon(core, owner)
+ return
\ No newline at end of file
diff --git a/scripts/radial/npc/bounty_seeker.py b/scripts/radial/npc/bounty_seeker.py
new file mode 100644
index 00000000..f619a5bb
--- /dev/null
+++ b/scripts/radial/npc/bounty_seeker.py
@@ -0,0 +1,46 @@
+from resources.common import RadialOptions
+from resources.common import SpawnPoint
+import time
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.clear()
+ radials.add(RadialOptions(0, 138, 0, 'Track Target'))
+ radials.add(RadialOptions(1, 136, 0, '@mission/mission_generic:probe_droid_track_target')) # Track Bounty Target
+ radials.add(RadialOptions(1, 137, 0, '@mission/mission_generic:probe_droid_find_target')) # Identify Bounty Target
+ return
+
+def handleSelection(core, owner, target, option):
+
+ if option == 136 and target or option == 138 and target:
+ id = owner.getPlayerObject().getBountyMissionId()
+ if id is None or id == 0:
+ owner.sendSystemMessage('@mission/mission_generic:bounty_no_mission', 0)
+ return
+
+ mission = core.objectService.getObject(id)
+ if mission is None:
+ owner.sendSystemMessage('@mission/mission_generic:bounty_no_mission', 0)
+ return
+
+ if mission.getObjective().isSeekerActive():
+ owner.sendSystemMessage('@mission/mission_generic:bounty_already_tracking', 0)
+ return
+ if target.getUses() == 0:
+ core.objectService.destroyObject(target)
+ else:
+ target.setUses(target.getUses() - 1)
+ pos = SpawnPoint.getRandomPosition(owner.getPosition(), 1, 3, owner.getPlanetId())
+ ori = owner.getOrientation()
+ seeker = core.staticService.spawnObject('object/creature/npc/droid/crafted/shared_probe_droid_advanced.iff', owner.getPlanet().getName(), 0, pos.x, pos.y, pos.z, ori.y, ori.w)
+ time.sleep(3)
+ owner.sendSystemMessage('@mission/mission_generic:seeker_droid_standby', 0)
+ seeker.setPosture(8)
+ time.sleep(6.5)
+ core.objectService.destroyObject(seeker)
+ mission.getObjective().beginSeekerUpdates(core, owner)
+ return
+
+ if option == 137 and target:
+ return
+ return
\ No newline at end of file
diff --git a/scripts/radial/npc/corpse.py b/scripts/radial/npc/corpse.py
new file mode 100644
index 00000000..663ff2b6
--- /dev/null
+++ b/scripts/radial/npc/corpse.py
@@ -0,0 +1,34 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ #owner.sendSystemMessage('Correct Loot Radial created', 0)
+ radials.clear()
+ radials.add(RadialOptions(0, 36, 0, 'Loot'))
+ if target.getAttachment('AI') and core.resourceService and core.resourceService.canHarvest(owner, target):
+ radials.add(RadialOptions(0, 163, 3, '@sui:harvest_corpse'))
+ radials.add(RadialOptions(2, 164, 3, '@sui:harvest_meat'))
+ radials.add(RadialOptions(2, 165, 3, '@sui:harvest_hide'))
+ radials.add(RadialOptions(2, 166, 3, '@sui:harvest_bone'))
+
+
+ return
+
+def handleSelection(core, owner, target, option):
+
+ if option == 36 and target:
+ #core.lootService.handleLootRequest(owner,target)
+ core.lootService.handleLootRequest(owner,target)
+ #lootedObjectInventory = target.getSlottedObject("inventory")
+ #core.simulationService.openContainer(owner, lootedObjectInventory)
+ #core.lootService.handleCreditDrop(owner, lootedObjectInventory)
+ if option == 15 and target:
+ core.objectService.destroyObject(target)
+ if option == 164 and target.getAttachment('AI') and core.resourceService.canHarvest(owner, target):
+ core.resourceService.doHarvest(owner, target, 'meat')
+ if option == 165 and target.getAttachment('AI') and core.resourceService.canHarvest(owner, target):
+ core.resourceService.doHarvest(owner, target, 'hide')
+ if option == 166 and target.getAttachment('AI') and core.resourceService.canHarvest(owner, target):
+ core.resourceService.doHarvest(owner, target, 'bone')
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/npc/mobile.py b/scripts/radial/npc/mobile.py
new file mode 100644
index 00000000..e1f43616
--- /dev/null
+++ b/scripts/radial/npc/mobile.py
@@ -0,0 +1,16 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.clear()
+ if target.getAttachment('AI') and core.resourceService and core.resourceService.canMilk(owner, target):
+ radials.add(RadialOptions(0, 167, 3, '@pet/pet_menu:milk_me'))
+
+ return
+
+def handleSelection(core, owner, target, option):
+
+ if option == 167 and target.getAttachment('AI') and core.resourceService and core.resourceService.canMilk(owner, target):
+ core.resourceService.doMilk(owner, target)
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/npc/noloot.py b/scripts/radial/npc/noloot.py
new file mode 100644
index 00000000..00f0176a
--- /dev/null
+++ b/scripts/radial/npc/noloot.py
@@ -0,0 +1,13 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.clear()
+ radials.add(RadialOptions(0, 36, 0, ''))
+
+ return
+
+def handleSelection(core, owner, target, option):
+
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/npc_ticket_collector.py b/scripts/radial/npc/npc_ticket_collector.py
similarity index 100%
rename from scripts/radial/npc_ticket_collector.py
rename to scripts/radial/npc/npc_ticket_collector.py
diff --git a/scripts/radial/object/conversation.py b/scripts/radial/object/conversation.py
new file mode 100644
index 00000000..0603ecb1
--- /dev/null
+++ b/scripts/radial/object/conversation.py
@@ -0,0 +1,14 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 21, 1, ''))
+ radials.add(RadialOptions(0, 7, 1, ''))
+ radials.add(RadialOptions(0, 26, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 26 and target:
+ core.conversationService.handleStartConversation(owner, target)
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/object/guild_access_device.py b/scripts/radial/object/guild_access_device.py
new file mode 100644
index 00000000..48784bda
--- /dev/null
+++ b/scripts/radial/object/guild_access_device.py
@@ -0,0 +1,108 @@
+from resources.common import RadialOptions
+from services.sui.SUIService import InputBoxType
+from java.util import Vector
+from main import NGECore
+import sys
+
+def createRadial(core, owner, target, radials):
+ # http://i293.photobucket.com/albums/mm62/cebot/radial.jpg
+
+ #radials.clear()
+
+ if owner.getGuildId() != 0:
+
+ guild = core.guildService.getGuildById(owner.getGuildId())
+
+ if guild is None:
+ return
+
+ member = guild.getMember(owner.getObjectID())
+
+
+ # TODO: Add List of Guilds radial option
+ # TODO: Add List of Guild Wars radial option http://i293.photobucket.com/albums/mm62/cebot/wars.jpg << List of Guild Wars
+
+ radials.add(RadialOptions(0, RadialOptions.serverGuildGuildManagement, 3, '@guild:menu_guild_management')) # Guild Management
+ radials.add(RadialOptions(0, RadialOptions.serverGuildMemberManagement, 3, '@guild:menu_member_management')) # Member Management
+
+ #### Guild Management ####
+ radials.add(RadialOptions(3, RadialOptions.serverGuildInfo, 3, '@guild:menu_info')) # Guild Information
+ #radials.add(RadialOptions(3, RadialOptions.serverGuildEnemies, 3, '@guild:menu_enemies')) # Guild Enemies
+ #radials.add(RadialOptions(3, 215, 3, '@guild:menu_rank_list')) # Rank List
+ # TODO: Add Rank Summary
+ radials.add(RadialOptions(3, 217, 3, '@guild:menu_permission_list')) # Permissions List
+
+ if member.hasDisbandPermission():
+ radials.add(RadialOptions(3, RadialOptions.serverGuildDisband, 3, '@guild:menu_disband')) # Disband Guild
+ if member.hasChangeNamePermission():
+ radials.add(RadialOptions(3, RadialOptions.serverGuildNameChange, 3, '@guild:menu_namechange')) # Change Guild Name
+
+ #### Member Management ####
+ radials.add(RadialOptions(4, RadialOptions.serverGuildMembers, 3, '@guild:menu_members')) # Guild Members
+ if member.hasSponsorPermission():
+ radials.add(RadialOptions(4, RadialOptions.serverGuildSponsor, 3, '@guild:menu_sponsor')) # Sponsor for Membership
+ if member.hasAcceptPermission() and guild.getSponsoredPlayers().size() > 0:
+ radials.add(RadialOptions(4, RadialOptions.serverGuildSponsored, 3, '@guild:menu_sponsored')) # Sponsored for Membership
+ if owner.getObjectID() == guild.getLeader():
+ radials.add(RadialOptions(4, 218, 3, '@guild:menu_member_motd')) # Create a Guild Message
+ #radials.add(RadialOptions(4, 69, 3, '@guild:menu_leader_change')) # Transfer PA Leadership
+ return
+
+ return
+
+def handleSelection(core, owner, target, option):
+ guild = core.guildService.getGuildById(owner.getGuildId())
+
+ if guild is None:
+ return
+
+ #### Guild Management ####
+
+ # - Guild Info
+ if option == RadialOptions.serverGuildInfo:
+ core.guildService.showGuildInfoWindow(owner, guild)
+ return
+
+ # - Rank List
+ elif option == 215:
+ return
+
+ # - Permissions List
+ elif option == 217:
+ core.guildService.handleViewPermissionsList(owner, guild)
+ return
+
+ # - Disband Guild
+ elif option == RadialOptions.serverGuildDisband:
+ core.guildService.showDisbandConfirmWindow(owner, guild)
+ return
+
+ elif option == RadialOptions.serverGuildNameChange:
+ core.guildService.handleChangeGuildName(owner, guild)
+ return
+
+ #### Member Management ####
+
+ # - Guild Members
+ elif option == RadialOptions.serverGuildMembers:
+ core.guildService.handleViewGuildMembers(owner, guild)
+ return
+
+ # - Sponsor for Membership
+ elif option == RadialOptions.serverGuildSponsor:
+ core.guildService.handleGuildSponsorWindow(owner)
+ return
+
+ # - Sponsored for Membership
+ elif option == RadialOptions.serverGuildSponsored:
+ core.guildService.handleManageSponsoredPlayers(owner)
+ return
+
+ # - Transfer PA Leadership
+ elif option == 69:
+ return
+
+ elif option == 218:
+ core.guildService.handleChangeGuildMotd(owner, guild)
+ return
+ return
\ No newline at end of file
diff --git a/scripts/radial/object/guild_registry.py b/scripts/radial/object/guild_registry.py
new file mode 100644
index 00000000..4b751dec
--- /dev/null
+++ b/scripts/radial/object/guild_registry.py
@@ -0,0 +1,20 @@
+from resources.common import RadialOptions
+from services.sui.SUIService import InputBoxType
+from java.util import Vector
+from main import NGECore
+import sys
+
+def createRadial(core, owner, target, radials):
+
+ if owner.getGuildId() == 0:
+ radials.add(RadialOptions(0, RadialOptions.serverGuildCreate, 3, '@guild:menu_create'))
+ return
+
+ return
+
+def handleSelection(core, owner, target, option):
+ # Create Guild
+ if option == 185 and target:
+ core.guildService.handleCreateGuildName(owner, target)
+ return
+ return
diff --git a/scripts/radial/object/treasureContainer.py b/scripts/radial/object/treasureContainer.py
new file mode 100644
index 00000000..2a3ff12d
--- /dev/null
+++ b/scripts/radial/object/treasureContainer.py
@@ -0,0 +1,35 @@
+from resources.common import RadialOptions
+from services.sui import SUIWindow
+from services.sui.SUIWindow import Trigger
+from java.util import Vector
+import resources.common.SpawnPoint
+import engine.resources.scene.Point3D
+import main.NGECore
+import resources.common.Forager
+from resources.objects.waypoint import WaypointObject
+from engine.resources.common import CRC
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.clear()
+ radials.add(RadialOptions(0, 21, 1, 'Open'))
+ radials.add(RadialOptions(0, 7, 1, 'Examine'))
+ return
+
+def handleSelection(core, owner, target, option):
+
+ if option == 21 and target:
+
+ if target.getAttachment('TreasureExtractorID')!=owner.getObjectID():
+ owner.sendSystemMessage('@treasure_map/treasure_map:wrong_player',0);
+ return
+
+ forager = resources.common.Forager()
+ if forager.countAliveGuards(target)>0:
+ owner.sendSystemMessage('@treasure_map/treasure_map:kill_guards_message',0);
+ return
+
+ core.simulationService.openContainer(owner, target);
+
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/object/treasuremap.py b/scripts/radial/object/treasuremap.py
new file mode 100644
index 00000000..fe5f7c72
--- /dev/null
+++ b/scripts/radial/object/treasuremap.py
@@ -0,0 +1,71 @@
+from resources.common import RadialOptions
+from services.sui import SUIWindow
+from services.sui.SUIWindow import Trigger
+from java.util import Vector
+import resources.common.SpawnPoint
+import engine.resources.scene.Point3D
+import main.NGECore
+from resources.objects.waypoint import WaypointObject
+from engine.resources.common import CRC
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 21, 1, '@treasure_map/treasure_map:use'))
+ radials.add(RadialOptions(0, 7, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 21 and target:
+
+ mapPlanet = target.getAttachment('MapPlanet')
+ planet = core.terrainService.getPlanetByID(mapPlanet)
+ if planet==None:
+ owner.sendSystemMessage('The treasure map disk is faulty, no Planet',0)
+ return
+
+ planetName = planet.getName()
+ #if owner.getPlanetId()!=mapPlanet:
+ #owner.sendSystemMessage('The treasure is buried on ' + planetName,0)
+ #return
+
+ window = core.suiService.createSUIWindow('Script.listBox', owner, target, 0)
+ window.setProperty('bg.caption.lblTitle:Text', '@treasure_map/treasure_map:title_'+target.getAttachment('MapSTFName'))
+ window.setProperty('Prompt.lblPrompt:Text', '@treasure_map/treasure_map:text_'+target.getAttachment('MapSTFName'))
+
+ window.setProperty('btnCancel:visible', 'True')
+ window.setProperty('btnOk:visible', 'True')
+ window.setProperty('btnCancel:Text', '@treasure_map/treasure_map:close')
+ window.setProperty('btnOk:Text', '@treasure_map/treasure_map:store_waypoint')
+ returnList = Vector()
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, storeWaypoint)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, close)
+
+ owner.setAttachment('LastReadMap',target)
+
+ core.suiService.openSUIWindow(window);
+
+ return
+
+def storeWaypoint(owner, window, eventType, returnList):
+ planetCenter = engine.resources.scene.Point3D(0,0,0)
+ #treasureLocation = resources.common.SpawnPoint.getRandomPosition(planetCenter, 2000, 6000, owner.getPlanetId());
+ treasureLocation = resources.common.SpawnPoint.getRandomPosition(owner.getPosition(), 1, 50, owner.getPlanetId());
+ waypoint = main.NGECore.getInstance().objectService.createObject('object/waypoint/shared_waypoint.iff', owner.getPlanet(), treasureLocation.x, treasureLocation.z, treasureLocation.y)
+ waypoint.setName('Treasure Map')
+ waypoint.setActive(True)
+ waypoint.setColor(WaypointObject.YELLOW)
+ waypoint.setPlanetCRC(CRC.StringtoCRC(owner.getPlanet().name))
+ waypoint.setStringAttribute('', '')
+ ghost = owner.getSlottedObject('ghost')
+ ghost.waypointAdd(waypoint)
+ owner.sendSystemMessage('@treasure_map/treasure_map:sys_store_waypoint', 0)
+ readMap = owner.getAttachment('LastReadMap')
+ readMap.setAttachment('radial_filename', 'object/treasuremapRead');
+ readMap.setAttachment('MapAreaLocation', treasureLocation);
+ return
+
+
+def close(owner, window, eventType, returnList):
+
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/object/treasuremapExtract.py b/scripts/radial/object/treasuremapExtract.py
new file mode 100644
index 00000000..7277620e
--- /dev/null
+++ b/scripts/radial/object/treasuremapExtract.py
@@ -0,0 +1,35 @@
+from resources.common import RadialOptions
+from services.sui import SUIWindow
+from services.sui.SUIWindow import Trigger
+from java.util import Vector
+import resources.common.SpawnPoint
+import engine.resources.scene.Point3D
+import main.NGECore
+import resources.common.Forager
+from resources.objects.waypoint import WaypointObject
+from engine.resources.common import CRC
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 21, 1, '@treasure_map/treasure_map:extract_treasure'))
+ radials.add(RadialOptions(0, 7, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 21 and target and owner:
+ exactLoc = target.getAttachment('MapExactLocation')
+
+ #if owner.getPosition().getDistance2D(owner.getPosition())<20:
+ if owner.getPosition().getDistance2D(exactLoc)<20:
+
+ target.setAttachment('radial_filename', 'object/usable')
+ owner.sendSystemMessage('@treasure_map/treasure_map:sys_dist_here',0)
+ #spawn guards
+ forager = resources.common.Forager()
+ forager.handleGuardSpawn(owner,target)
+ else:
+ owner.sendSystemMessage('@treasure_map/treasure_map:sys_dist_near',0)
+
+
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/object/treasuremapRead.py b/scripts/radial/object/treasuremapRead.py
new file mode 100644
index 00000000..bc3e0735
--- /dev/null
+++ b/scripts/radial/object/treasuremapRead.py
@@ -0,0 +1,57 @@
+from resources.common import RadialOptions
+from services.sui import SUIWindow
+from services.sui.SUIWindow import Trigger
+from java.util import Vector
+import resources.common.SpawnPoint
+import engine.resources.scene.Point3D
+import main.NGECore
+from resources.objects.waypoint import WaypointObject
+from engine.resources.common import CRC
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 21, 1, '@treasure_map/treasure_map:search_area'))
+ radials.add(RadialOptions(0, 7, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 21 and target:
+
+ planetID = target.getAttachment('MapPlanet')
+ if planetID!=owner.getPlanetId():
+ owner.sendSystemMessage('@treasure_map/treasure_map:wrong_planet',0)
+
+ if owner.getCombatFlag()!=0:
+ owner.sendSystemMessage('@treasure_map/treasure_map:sys_no_combat',0)
+ return
+
+ if owner.getPosture()==10:
+ owner.sendSystemMessage('@treasure_map/treasure_map:sys_no_mount',0)
+ return
+
+
+ areaLoc = target.getAttachment('MapAreaLocation');
+ owner.sendSystemMessage('owner.getPosition().getDistance2D(areaLoc) %s' % owner.getPosition().getDistance2D(areaLoc),0)
+
+ if owner.getPosition().getDistance2D(areaLoc)<20:
+ owner.sendSystemMessage('@treasure_map/treasure_map:sys_success',0)
+
+ treasureLocation = resources.common.SpawnPoint.getRandomPosition(owner.getPosition(), 1, 100, owner.getPlanetId());
+ waypoint = main.NGECore.getInstance().objectService.createObject('object/waypoint/shared_waypoint.iff', owner.getPlanet(), treasureLocation.x, treasureLocation.z, treasureLocation.y)
+ waypoint.setName('Exact Location of the Treasure')
+ waypoint.setActive(True)
+ waypoint.setColor(WaypointObject.YELLOW)
+ waypoint.setPlanetCRC(CRC.StringtoCRC(owner.getPlanet().name))
+ waypoint.setStringAttribute('', '')
+ ghost = owner.getSlottedObject('ghost')
+ ghost.waypointAdd(waypoint)
+ owner.sendSystemMessage('@treasure_map/treasure_map:sys_store_waypoint', 0)
+ readMap = owner.getAttachment('LastReadMap')
+ readMap.setAttachment('radial_filename', 'object/treasuremapExtract');
+ readMap.setAttachment('MapExactLocation', treasureLocation);
+ else:
+ owner.sendSystemMessage('@treasure_map/treasure_map:sys_cant_pinpoint',0)
+
+
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/object/usable.py b/scripts/radial/object/usable.py
new file mode 100644
index 00000000..94d4e810
--- /dev/null
+++ b/scripts/radial/object/usable.py
@@ -0,0 +1,13 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 21, 1, ''))
+ radials.add(RadialOptions(0, 7, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 21 and target:
+ core.objectService.useObject(owner, target)
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/ring/unity.py b/scripts/radial/ring/unity.py
new file mode 100644
index 00000000..92940452
--- /dev/null
+++ b/scripts/radial/ring/unity.py
@@ -0,0 +1,108 @@
+from resources.common import RadialOptions
+from services.sui.SUIWindow import Trigger
+from java.util import Vector
+from main import NGECore
+from engine.resources.objects import SWGObject
+import sys
+
+def createRadial(core, owner, target, radials):
+
+ ghost = owner.getSlottedObject('ghost')
+ if ghost is None:
+ return
+
+ if ghost.getSpouseName() is None or ghost.getSpouseName() is "":
+ targetPlayer = core.objectService.getObject(owner.getTargetId())
+ if targetPlayer is not None and targetPlayer.getSlottedObject('ghost') is not None:
+ if targetPlayer.getObjectID() == owner.getObjectID():
+ return
+ radials.add(RadialOptions(0, 69, 3, '@unity:mnu_propose'))
+ return
+ else:
+ radials.add(RadialOptions(0, 70, 3, '@unity:mnu_divorce'))
+ return
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 69 and target:
+ player = core.objectService.getObject(owner.getTargetId())
+ tGhost = player.getSlottedObject('ghost')
+ suiSvc = core.suiService
+
+ if tGhost.getPosition().getDistance2D(owner.getWorldPosition()) < 50:
+ owner.sendSystemMessage('@unity:out_of_range', 0)
+ return
+
+ if tGhost.getSpouseName() is not None:
+ owner.sendSystemMessage('@unity:target_married', 0)
+ return
+
+ if player.getAttachment("proposer") is not None:
+ owner.sendSystemMessage('@unity:target_proposed', 0)
+ return
+
+ else:
+
+ owner.sendSystemMessage('You propose unity to ' + player.getCustomName() + '.', 0)
+ targetWindow = suiSvc.createMessageBox(3, '@unity:accept_title', owner.getCustomName() + ' is proposing unity to you. Do you wish to accept?', tGhost.getContainer(), owner, 15)
+ returnList = Vector()
+
+ targetWindow.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handlePropose)
+ targetWindow.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, handlePropose)
+ player.setAttachment("proposer", owner.getCustomName())
+ suiSvc.openSUIWindow(targetWindow)
+
+ target.setAttachment("unity", True)
+ core.equipmentService.equip(owner, target)
+
+ core.commandService.callCommand(owner, 'kneel', None, '')
+ return
+ return
+
+ if option == 70:
+ married = owner.getSlottedObject('ghost').getSpouseName()
+ myGhost = owner.getSlottedObject('ghost')
+ otherPlayer = NGECore.getInstance().objectService.getObjectByCustomName(married)
+
+ if otherPlayer is None:
+ return
+ ghost = otherPlayer.getSlottedObject('ghost')
+
+ if ghost is None:
+ return
+
+ owner.sendSystemMessage('Your union with ' + married + ' has ended.', 0)
+ otherPlayer.sendSystemMessage('Your union with ' + owner.getCustomName() + ' has ended.', 0)
+ myGhost.setSpouseName(None)
+ ghost.setSpouseName(None)
+
+ target.setAttachment("unity", None)
+ #TODO: Divorce offline players
+ return
+ return
+
+def handlePropose(owner, window, eventType, returnList):
+ core = NGECore.getInstance()
+
+ if owner is None:
+ return
+
+ if eventType == 0:
+ proposer = core.objectService.getObjectByCustomName(owner.getAttachment("proposer"))
+ if proposer is None:
+ return
+
+ core.playerService.performUnity(owner, proposer)
+ return
+
+ if eventType == 1:
+ proposer = core.objectService.getObjectByCustomName(owner.getAttachment("proposer"))
+ proposer.sendSystemMessage('@unity:declined', 0)
+ for SWGObject in proposer.getEquipmentList():
+ if SWGObject.getAttachment("unity") is not None:
+ SWGObject.setAttachment("unity", None)
+ break
+
+ owner.setAttachment("proposer", None)
+ return
+ return
diff --git a/scripts/radial/shared_drink_breath_of_heaven.py b/scripts/radial/shared_drink_breath_of_heaven.py
new file mode 100644
index 00000000..11ae9ca7
--- /dev/null
+++ b/scripts/radial/shared_drink_breath_of_heaven.py
@@ -0,0 +1,16 @@
+import resources.objects.creature.CreatureObject;
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.add(RadialOptions(0, 21, 1, ''))
+ radials.add(RadialOptions(0, 7, 1, ''))
+ radials.add(RadialOptions(0, 15, 1, ''))
+ return
+
+def handleSelection(core, owner, object, option):
+ if option == 21:
+ core.buffService.addBuffToCreature(owner, 'drink_breath_of_heaven', owner)
+
+ core.objectService.destroyObject(object)
+ return
diff --git a/scripts/radial/structure/generator.py b/scripts/radial/structure/generator.py
new file mode 100644
index 00000000..44d7a9b4
--- /dev/null
+++ b/scripts/radial/structure/generator.py
@@ -0,0 +1,53 @@
+from resources.common import RadialOptions
+from protocol.swg import ResourceListForSurveyMessage
+from services.sui.SUIService import MessageBoxType
+from services.SurveyService import createSurveyRangeSUIWindow
+from services.sui.SUIWindow import Trigger
+from java.util import Vector
+import sys
+
+def createRadial(core, owner, target, radials):
+ #(byte parentId, short optionId, byte optionType, String description)
+ radials.clear()
+ radials.add(RadialOptions(0, 7, 0, 'Examine'))
+ radials.add(RadialOptions(0, 78, 0, '@player_structure:management'))
+ radials.add(RadialOptions(0, 117, 0, '@player_structure:permissions'))
+ radials.add(RadialOptions(2, 118, 0, '@harvester:manage'))
+ radials.add(RadialOptions(2, 128, 0, '@player_structure:permission_destroy'))
+ radials.add(RadialOptions(2, 124, 0, '@player_structure:management_status'))
+ radials.add(RadialOptions(2, 129, 0, '@player_structure:management_pay'))
+ radials.add(RadialOptions(2, 50, 0, '@base_player:set_name'))
+ radials.add(RadialOptions(3, 121, 0, '@player_structure:permission_admin'))
+ radials.add(RadialOptions(3, 123, 0, '@player_structure:permissions'))
+
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 118 and target:
+ if owner is not None:
+ core.harvesterService.handleOperateMachinery(owner,target)
+ return
+ if option == 128:
+ if owner is not None:
+ core.harvesterService.createDestroySUIPage(owner,target)
+ return
+ if option == 124:
+ if owner is not None:
+ core.harvesterService.createStatusSUIPage(owner,target)
+ return
+ if option == 129:
+ if owner is not None:
+ core.harvesterService.createPayMaintenanceSUIPage(owner,target)
+ return
+ if option == 50:
+ if owner is not None:
+ core.harvesterService.createRenameSUIPage(owner,target)
+ return
+ if option == 121:
+ if owner is not None:
+ core.harvesterService.handlePermissionAdmin(owner,target)
+ return
+ if option == 123:
+ if owner is not None:
+ core.harvesterService.handlePermissionHopper(owner,target)
+ return
diff --git a/scripts/radial/structure/harvester.py b/scripts/radial/structure/harvester.py
new file mode 100644
index 00000000..079c99ae
--- /dev/null
+++ b/scripts/radial/structure/harvester.py
@@ -0,0 +1,58 @@
+from resources.common import RadialOptions
+from protocol.swg import ResourceListForSurveyMessage
+from services.sui.SUIService import MessageBoxType
+from services.SurveyService import createSurveyRangeSUIWindow
+from services.sui.SUIWindow import Trigger
+from java.util import Vector
+import sys
+
+def createRadial(core, owner, target, radials):
+ #(byte parentId, short optionId, byte optionType, String description)
+ radials.clear()
+ radials.add(RadialOptions(0, 7, 0, 'Examine'))
+ radials.add(RadialOptions(0, 78, 0, '@player_structure:management'))
+ radials.add(RadialOptions(0, 117, 0, '@player_structure:permissions'))
+ radials.add(RadialOptions(2, 118, 0, '@harvester:manage'))
+ radials.add(RadialOptions(2, 128, 0, '@player_structure:permission_destroy'))
+ radials.add(RadialOptions(2, 124, 0, '@player_structure:management_status'))
+ radials.add(RadialOptions(2, 129, 0, '@player_structure:management_pay'))
+ radials.add(RadialOptions(2, 50, 0, '@base_player:set_name'))
+ radials.add(RadialOptions(2, 51, 0, '@player_structure:management_power'))
+ radials.add(RadialOptions(3, 121, 0, '@player_structure:permission_admin'))
+ radials.add(RadialOptions(3, 123, 0, '@player_structure:permissions'))
+
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 118 and target:
+ if owner is not None:
+ core.harvesterService.handleOperateMachinery(owner,target)
+ return
+ if option == 128:
+ if owner is not None:
+ core.harvesterService.createDestroySUIPage(owner,target)
+ return
+ if option == 124:
+ if owner is not None:
+ core.harvesterService.createStatusSUIPage(owner,target)
+ return
+ if option == 129:
+ if owner is not None:
+ core.harvesterService.createPayMaintenanceSUIPage(owner,target)
+ return
+ if option == 50:
+ if owner is not None:
+ core.harvesterService.createRenameSUIPage(owner,target)
+ return
+ if option == 51:
+ if owner is not None:
+ core.harvesterService.handleDepositPower(owner,target)
+ return
+ if option == 121:
+ if owner is not None:
+ core.harvesterService.handlePermissionAdmin(owner,target)
+ return
+ if option == 123:
+ if owner is not None:
+ core.harvesterService.handlePermissionHopper(owner,target)
+ return
diff --git a/scripts/radial/structure/harvesterHopper.py b/scripts/radial/structure/harvesterHopper.py
new file mode 100644
index 00000000..3323d45b
--- /dev/null
+++ b/scripts/radial/structure/harvesterHopper.py
@@ -0,0 +1,21 @@
+from resources.common import RadialOptions
+from protocol.swg import ResourceListForSurveyMessage
+from services.sui.SUIService import MessageBoxType
+from services.SurveyService import createSurveyRangeSUIWindow
+from services.sui.SUIWindow import Trigger
+from java.util import Vector
+import sys
+
+def createRadial(core, owner, target, radials):
+ #(byte parentId, short optionId, byte optionType, String description)
+ radials.clear()
+ radials.add(RadialOptions(0, 7, 0, 'Examine'))
+ radials.add(RadialOptions(0, 78, 0, '@player_structure:management'))
+ radials.add(RadialOptions(2, 118, 0, '@harvester:manage'))
+ return
+
+def handleSelection(core, owner, target, option):
+ if option == 118 and target:
+ if owner is not None:
+ core.harvesterService.handleOperateMachinery(owner,target)
+ return
diff --git a/scripts/radial/structure/moveable.py b/scripts/radial/structure/moveable.py
new file mode 100644
index 00000000..4bbb4120
--- /dev/null
+++ b/scripts/radial/structure/moveable.py
@@ -0,0 +1,25 @@
+from resources.common import RadialOptions
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.clear()
+ radials.add(RadialOptions(0, 11, 1, ''))
+
+ radials.add(RadialOptions(0, 55, 0, ''))
+ radials.add(RadialOptions(3, 56, 1, ''))
+ radials.add(RadialOptions(3, 57, 1, ''))
+ radials.add(RadialOptions(3, 58, 1, ''))
+ radials.add(RadialOptions(3, 59, 1, ''))
+
+ radials.add(RadialOptions(0, 52, 0, ''))
+ radials.add(RadialOptions(4, 53, 1, ''))
+ radials.add(RadialOptions(4, 54, 1, ''))
+ return
+
+def handleSelection(core, owner, target, option):
+
+ if option == 56:
+ core.commandService.callCommand(owner, 'movefurniture', target, 'forward 10')
+
+ return
+
\ No newline at end of file
diff --git a/scripts/radial/structure/structure_management_terminal.py b/scripts/radial/structure/structure_management_terminal.py
new file mode 100644
index 00000000..8bdc5878
--- /dev/null
+++ b/scripts/radial/structure/structure_management_terminal.py
@@ -0,0 +1,81 @@
+from resources.common import RadialOptions
+from protocol.swg import ResourceListForSurveyMessage
+from services.sui.SUIService import MessageBoxType
+from services.sui.SUIWindow import Trigger
+from java.util import Vector
+import sys
+
+def createRadial(core, owner, target, radials):
+ #(byte parentId, short optionId, byte optionType, String description)
+ radials.clear()
+ radials.add(RadialOptions(0, 7, 0, 'Examine'))
+ radials.add(RadialOptions(0, 78, 0, '@player_structure:management'))
+ radials.add(RadialOptions(0, 117, 0, '@player_structure:permissions'))
+ radials.add(RadialOptions(2, 128, 0, '@player_structure:permission_destroy'))
+ radials.add(RadialOptions(2, 124, 0, '@player_structure:management_status'))
+ radials.add(RadialOptions(2, 129, 0, '@player_structure:management_pay'))
+ radials.add(RadialOptions(2, 50, 0, '@base_player:set_name'))
+ radials.add(RadialOptions(2, 127, 0, '@player_structure:management_residence'))
+ radials.add(RadialOptions(2, 125, 0, '@player_structure:management_privacy : ' + core.housingService.fetchPrivacyString(target)))
+ radials.add(RadialOptions(2, 171, 0, '@player_structure:find_items_find_all_house_items'))
+ radials.add(RadialOptions(2, 173, 0, '@player_structure:move_first_item'))
+ radials.add(RadialOptions(2, 174, 0, '@player_structure:find_items_search_for_house_items'))
+ radials.add(RadialOptions(2, 175, 0, '@player_structure:delete_all_items_title'))
+ radials.add(RadialOptions(2, 172, 0, 'Pack Up This Building'))
+ radials.add(RadialOptions(3, 121, 0, '@player_structure:permission_enter'))
+ radials.add(RadialOptions(3, 123, 0, '@player_structure:permission_banned'))
+ if owner.getSkillModBase('manage_vendor') >= 1:
+ radials.add(RadialOptions(2, 130, 0, '@player_structure:create_vendor'))
+
+ return
+
+def handleSelection(core, owner, target, option):
+
+ if option == 128:
+ if owner is not None:
+ core.housingService.createDestroySUIPage(owner,target)
+ return
+ if option == 124:
+ if owner is not None:
+ core.housingService.createStatusSUIPage(owner,target)
+ return
+ if option == 129:
+ if owner is not None:
+ core.housingService.createPayMaintenanceSUIPage(owner,target)
+ return
+ if option == 50:
+ if owner is not None:
+ core.housingService.createRenameSUIPage(owner,target)
+ return
+ if option == 127:
+ if owner is not None:
+ core.housingService.declareResidency(owner,target)
+ return
+ if option == 171:
+ if owner is not None:
+ core.housingService.handleListAllItems(owner,target)
+ return
+ if option == 175:
+ if owner is not None:
+ core.housingService.handleDeleteAllItems(owner,target)
+ return
+ if option == 173:
+ if owner is not None:
+ core.housingService.handleFindLostItems(owner,target)
+ return
+ if option == 174:
+ if owner is not None:
+ core.housingService.handleSearchForItems(owner,target)
+ return
+ if option == 121:
+ if owner is not None:
+ core.housingService.handlePermissionEntry(owner,target)
+ return
+ if option == 123:
+ if owner is not None:
+ core.housingService.handlePermissionBan(owner,target)
+ return
+ if option == 130:
+ if owner is not None and owner.getSkillModBase('manage_vendor') >= 1:
+ core.commandService.callCommand(owner, 'createvendor', None, '')
+ return
diff --git a/scripts/radial/bank.py b/scripts/radial/terminal/bank.py
similarity index 100%
rename from scripts/radial/bank.py
rename to scripts/radial/terminal/bank.py
diff --git a/scripts/radial/terminal/city_maintenance_terminal.py b/scripts/radial/terminal/city_maintenance_terminal.py
new file mode 100644
index 00000000..e5bab716
--- /dev/null
+++ b/scripts/radial/terminal/city_maintenance_terminal.py
@@ -0,0 +1,701 @@
+from resources.common import RadialOptions
+from protocol.swg import ResourceListForSurveyMessage
+from services.sui.SUIService import MessageBoxType
+from services.sui.SUIWindow import Trigger
+from java.util import Vector
+import main.NGECore
+import sys
+
+def createRadial(core, owner, target, radials):
+ #(byte parentId, short optionId, byte optionType, String description)
+ radials.clear()
+ radials.add(RadialOptions(0, 7, 0, 'Examine'))
+ radials.add(RadialOptions(0, 216, 0, '@city/city:city_management'))
+ radials.add(RadialOptions(0, 226, 0, '@city/city:city_info'))
+ radials.add(RadialOptions(0, 227, 0, '@city/city:remove_trainers'))
+ radials.add(RadialOptions(2, 217, 0, '@city/city:city_name_new_t'))
+ radials.add(RadialOptions(2, 222, 0, '@city/city:city_register'))
+ radials.add(RadialOptions(2, 224, 0, '@city/city:unzone'))
+ radials.add(RadialOptions(2, 218, 0, '@city/city:city_militia'))
+ radials.add(RadialOptions(2, 219, 0, '@city/city:treasury_taxes'))
+ radials.add(RadialOptions(2, 221, 0, '@city/city:treasury_withdraw'))
+ radials.add(RadialOptions(2, 225, 0, '@city/city:city_specializations'))
+ radials.add(RadialOptions(2, 228, 0, '@city/city:align'))
+ radials.add(RadialOptions(3, 121, 0, '@city/city:non_citizen_city_status'))
+ radials.add(RadialOptions(3, 122, 0, '@city/city:rank_info_t'))
+ radials.add(RadialOptions(3, 123, 0, '@city/city:citizen_list_t'))
+ radials.add(RadialOptions(3, 230, 0, '@city/city:revoke_citizenship'))
+
+ radials.add(RadialOptions(3, 231, 0, 'Add 10 citizens'))
+ radials.add(RadialOptions(3, 232, 0, 'Deduct 10 citizens'))
+
+ return
+
+def handleSelection(core, owner, target, option):
+ playerCity = core.playerCityService.getPlayerCity(owner)
+ if playerCity==None:
+ return
+
+ if option == 217:
+ if owner is not None:
+ handleSetCityName(core, owner, target, option)
+ return
+ if option == 124:
+ if owner is not None:
+ core.housingService.createStatusSUIPage(owner,target)
+ return
+ if option == 129:
+ if owner is not None:
+ core.housingService.createPayMaintenanceSUIPage(owner,target)
+ return
+ if option == 50:
+ if owner is not None:
+ core.housingService.createRenameSUIPage(owner,target)
+ return
+ if option == 222:
+ if owner is not None:
+ handleRegisterMap(core, owner, target, option)
+ return
+ if option == 171:
+ if owner is not None:
+ core.housingService.handleListAllItems(owner,target)
+ return
+ if option == 219:
+ if owner is not None:
+ handleAdjustTaxes(core, owner, target, option)
+ return
+ if option == 225:
+ if owner is not None:
+ handleSpecialization(core, owner, target, option)
+ return
+ if option == 221:
+ if owner is not None:
+ handleWithdrawal(core, owner, target, option)
+ return
+ if option == 121:
+ if owner is not None:
+ handleCityRankInfo(core, owner, target, option)
+ return
+ if option == 122:
+ if owner is not None:
+ handleCityRankInfo(core, owner, target, option)
+ return
+ if option == 123:
+ if owner is not None:
+ handleCitizenList(core, owner, target, option)
+ return
+
+ if option == 231:
+ if owner is not None:
+ handle10Add(core, owner, target, option)
+ return
+
+ if option == 232:
+ if owner is not None:
+ handle10Deduct(core, owner, target, option)
+ return
+
+def handle10Add(core, owner, target, option):
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ playerCity.Add10MoreCitizens()
+ return
+
+
+def handle10Deduct(core, owner, target, option):
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ playerCity.Deduct10Citizens()
+ return
+
+def setnameCallBack(owner, window, eventType, returnList):
+ if returnList.size()==0:
+ return
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ playerCity.setCityName(returnList.get(0))
+ owner.sendSystemMessage('@city/city:name_changed', 0)
+ return
+
+
+def handleAdjustTaxes(core, owner, target, option):
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ if playerCity.getRank()<2:
+ owner.sendSystemMessage('@city/city:no_rank_taxes', 0)
+ return
+
+ window = core.suiService.createSUIWindow('Script.listBox', owner, target, 0);
+ window.setProperty('bg.caption.lblTitle:Text', '@city/city:adjust_taxes_t')
+ window.setProperty('Prompt.lblPrompt:Text', '@city/city:adjust_taxes_d')
+
+ window.addListBoxMenuItem('@city/city:set_tax_t_income',0)
+ window.addListBoxMenuItem('@city/city:set_tax_t_property',1)
+ window.addListBoxMenuItem('@city/city:set_tax_t_sales',2)
+ window.addListBoxMenuItem('@city/city:set_tax_t_travel',3)
+ window.addListBoxMenuItem('@city/city:set_tax_t_garage',4)
+
+ window.setProperty('btnOk:visible', 'True')
+ window.setProperty('btnCancel:visible', 'True')
+ window.setProperty('btnOk:Text', '@ok')
+ window.setProperty('btnCancel:Text', '@cancel')
+
+ returnList = Vector()
+ returnList.add('List.lstList:SelectedRow')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setAdjustTaxesCallBack)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ core.suiService.openSUIWindow(window);
+ return
+
+def setAdjustTaxesCallBack(owner, window, eventType, returnList):
+ if returnList.size()==0:
+ owner.sendSystemMessage('NULL', 0)
+ return
+
+ if returnList.get(0)=='0':
+ handleSetIncomeTax(owner)
+ return
+ if returnList.get(0)=='1':
+ handleSetPropertyTax(owner)
+ return
+ if returnList.get(0)=='2':
+ handleSetSalesTax(owner)
+ return
+ if returnList.get(0)=='3':
+ handleSetTravelTax(owner)
+ return
+ if returnList.get(0)=='4':
+ handleSetGarageTax(owner)
+ return
+
+ return
+
+def handleSetIncomeTax(owner):
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ window = main.NGECore.getInstance().suiService.createInputBox(2,'@city/city:set_tax_t_income','@city/city:set_tax_d_income \n \n @city/city:income_tax_prompt : %s' % playerCity.getIncomeTax(), owner, owner, 0)
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleSetIncomeTaxCallBack)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ main.NGECore.getInstance().suiService.openSUIWindow(window);
+ return
+
+def handleSetIncomeTaxCallBack(owner, window, eventType, returnList):
+ if int(returnList.get(0))>2000 or int(returnList.get(0))<0:
+ owner.sendSystemMessage('Income tax value is out of range of accepteable values.', 0)
+ handleSetIncomeTax(owner)
+ return
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ playerCity.setIncomeTax(int(returnList.get(0)))
+ owner.sendSystemMessage('@city/city:set_income_tax', 0)
+ return
+
+def handleSetSalesTax(owner):
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ window = main.NGECore.getInstance().suiService.createInputBox(2,'@city/city:set_tax_t_sales','@city/city:set_tax_d_sales \n \n @city/city:sales_tax_prompt : %s' % playerCity.getSalesTax(), owner, owner, 0)
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleSetSalesTaxCallBack)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ main.NGECore.getInstance().suiService.openSUIWindow(window);
+ return
+
+def handleSetSalesTaxCallBack(owner, window, eventType, returnList):
+ if int(returnList.get(0))>20 or int(returnList.get(0))<0:
+ owner.sendSystemMessage('Sales tax value is out of range of accepteable values.', 0)
+ handleSetSalesTax(owner)
+ return
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ playerCity.setIncomeTax(int(returnList.get(0)))
+ owner.sendSystemMessage('@city/city:set_sales_tax', 0)
+ return
+
+def handleSetPropertyTax(owner):
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ window = main.NGECore.getInstance().suiService.createInputBox(2,'@city/city:set_tax_t_property','@city/city:set_tax_d_property \n \n @city/city:property_tax_prompt : %s' % playerCity.getPropertyTax(), owner, owner, 0)
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleSetPropertyTaxCallBack)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ main.NGECore.getInstance().suiService.openSUIWindow(window);
+ return
+
+def handleSetPropertyTaxCallBack(owner, window, eventType, returnList):
+ if int(returnList.get(0))>50 or int(returnList.get(0))<0:
+ owner.sendSystemMessage('Property tax value is out of range of accepteable values.', 0)
+ handleSetPropertyTax(owner)
+ return
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ playerCity.setIncomeTax(int(returnList.get(0)))
+ owner.sendSystemMessage('@city/city:set_property_tax', 0)
+ return
+
+def handleSetTravelTax(owner):
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ if playerCity.hasShuttlePort()==0:
+ owner.sendSystemMessage('@city/city:no_shuttleport', 0)
+ return
+
+ window = main.NGECore.getInstance().suiService.createInputBox(2,'@city/city:set_tax_t_travel','@city/city:set_tax_d_travel \n \n @city/city:travel_tax_prompt : %s' % playerCity.getTravelTax(), owner, owner, 0)
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleSetTravelTaxCallBack)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ main.NGECore.getInstance().suiService.openSUIWindow(window);
+ return
+
+def handleSetTravelTaxCallBack(owner, window, eventType, returnList):
+ if int(returnList.get(0))>500 or int(returnList.get(0))<1:
+ owner.sendSystemMessage('Travel tax value is out of range of accepteable values.', 0)
+ handleSetIncomeTax(owner)
+ return
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ playerCity.setTravelTax(int(returnList.get(0)))
+ owner.sendSystemMessage('@city/city:set_travel_fee', 0)
+ return
+
+def handleSetGarageTax(owner):
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ window = main.NGECore.getInstance().suiService.createInputBox(2,'@city/city:set_tax_t_garage','@city/city:set_tax_d_garage \n\n @city/city:garage_tax : %s' % playerCity.getGarageTax(), owner, owner, 0)
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleSetGarageTaxCallBack)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ main.NGECore.getInstance().suiService.openSUIWindow(window);
+ return
+
+def handleSetGarageTaxCallBack(owner, window, eventType, returnList):
+ if int(returnList.get(0))>500 or int(returnList.get(0))<1:
+ owner.sendSystemMessage('Garage tax value is out of range of accepteable values.', 0)
+ handleSetIncomeTax(owner)
+ return
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ playerCity.setGarageTax(int(returnList.get(0)))
+ owner.sendSystemMessage('@city/city:set_garage_tax', 0)
+ return
+
+def handleWithdrawal(core, owner, target, option):
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ window = core.suiService.createSUIWindow("Script.transfer", owner, target, 10)
+
+ window.setProperty("bg.caption.lblTitle:Text", "@city/city:treasury_withdraw_subject")
+ window.setProperty("Prompt.lblPrompt:Text", "@city/city:treasury_withdraw_prompt" + "\n \n @city/city:treasury_status : %s" % playerCity.getCityTreasury())
+
+ window.setProperty("msgPayMaintenance", "transaction.txtInputFrom");
+
+ window.setProperty("transaction.lblFrom:Text", "@city/city:treasury_balance_t");
+ window.setProperty("transaction.lblTo:Text", "@city/city:treasury_withdraw");
+ window.setProperty("transaction.lblFrom", "@city/city:treasury_balance_t");
+ window.setProperty("transaction.lblTo", "@city/city:treasury_withdraw");
+
+ window.setProperty("transaction.lblStartingFrom:Text", '%s' % playerCity.getCityTreasury());
+ window.setProperty("transaction.lblStartingTo:Text", '0');
+
+ window.setProperty("transaction:InputFrom", "555555");
+ window.setProperty("transaction:InputTo", "666666");
+
+ window.setProperty("transaction:txtInputFrom", '%s' % playerCity.getCityTreasury());
+ window.setProperty("transaction:txtInputTo", "1");
+ window.setProperty("transaction.txtInputFrom:Text", '%s' % playerCity.getCityTreasury());
+ window.setProperty("transaction.txtInputTo:Text", "" + "0");
+
+ window.setProperty("transaction.ConversionRatioFrom", "1");
+ window.setProperty("transaction.ConversionRatioTo", "0");
+
+ window.setProperty("btnOk:visible", "True");
+ window.setProperty("btnCancel:visible", "True");
+ window.setProperty("btnOk:Text", "@ok");
+ window.setProperty("btnCancel:Text", "@cancel");
+
+ returnList = Vector()
+ returnList.add('transaction.txtInputFrom:Text')
+ returnList.add('ransaction.txtInputTo:Text')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setWithdrawalCallBack)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setWithdrawalCallBack)
+ core.suiService.openSUIWindow(window);
+ return
+
+def setWithdrawalCallBack(owner, window, eventType, returnList):
+ if returnList.size()==0:
+ return
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ playerCity.setCityName(returnList.get(0))
+ owner.sendSystemMessage('@city/city:name_changed', 0)
+ return
+
+def handleCitizenList(core, owner, target, option):
+ window = core.suiService.createSUIWindow('Script.listBox', owner, target, 0);
+ window.setProperty('bg.caption.lblTitle:Text', '@city/city:citizen_list_t')
+ window.setProperty('Prompt.lblPrompt:Text', '@city/city:citizen_list_prompt')
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ index = 1;
+ for citizen in playerCity.getCitizens():
+ citizenObject = core.objectService.getObject(citizen)
+ window.addListBoxMenuItem(citizenObject.getCustomName(),index)
+ index += 1
+
+ window.setProperty('btnOk:visible', 'True')
+ window.setProperty('btnCancel:visible', 'True')
+ window.setProperty('btnOk:Text', '@ok')
+ window.setProperty('btnCancel:Text', '@cancel')
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setCitizenListCallBack)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setCitizenListCallBack)
+ core.suiService.openSUIWindow(window);
+ return
+
+def setCitizenListCallBack(owner, window, eventType, returnList):
+ #handle waypoint creation to citizen's house
+ return
+
+def handleCityRankInfo(core, owner, target, option):
+ window = core.suiService.createSUIWindow('Script.listBox', owner, target, 0);
+ window.setProperty('bg.caption.lblTitle:Text', '@city/city:rank_info_t')
+ window.setProperty('Prompt.lblPrompt:Text', '@city/city:rank_info_d')
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+
+ window.addListBoxMenuItem('City : ' + playerCity.getCityName(),0)
+ window.addListBoxMenuItem('@city/city:radius_prompt : %s' % playerCity.getCityRadius(),1)
+ window.addListBoxMenuItem('@city/city:city_rank_prompt : @city/city:rank' + str(playerCity.getRank()),2)
+ window.addListBoxMenuItem('@city/city:reg_citizen_prompt : %s' % len(playerCity.getCitizens()),3)
+ if playerCity.getRank()>=3 and playerCity.getSpecialization()>-1:
+ window.addListBoxMenuItem('@city/city:specialization_prompt : @city/city:' + playerCity.getSpecializationSTFNamesAsList().get(playerCity.getSpecialization()),4)
+
+
+ window.setProperty('btnOk:visible', 'True')
+ window.setProperty('btnCancel:visible', 'True')
+ window.setProperty('btnOk:Text', '@ok')
+ window.setProperty('btnCancel:Text', '@cancel')
+ window.setProperty('btnCancel:Text', '@cancel')
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setCityInfoCallBack)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setCitizenListCallBack)
+ core.suiService.openSUIWindow(window);
+ return
+
+def setCityInfoCallBack(owner, window, eventType, returnList):
+ #handle waypoint creation to citizen's house
+ return
+
+def handleRegisterMap(core, owner, target, option):
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ if playerCity.getRank()<3:
+ owner.sendSystemMessage('@city/city:cant_register_rank', 0)
+ return
+
+ if owner.getObjectId()!=playerCity.getMayorID():
+ owner.sendSystemMessage('@city/city:cant_register', 0)
+ return
+
+ # now register it somehow
+
+ return
+
+def setRegisterMapCallBack(owner, window, eventType, returnList):
+ if returnList.size()==0:
+ return
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ playerCity.setCityName(returnList.get(0))
+ owner.sendSystemMessage('@city/city:name_changed', 0)
+ return
+
+def handleSpecialization(core, owner, target, option):
+
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ if playerCity.getRank()<3:
+ owner.sendSystemMessage('@city/city:no_rank_spec', 0)
+ return
+
+ window = core.suiService.createSUIWindow('Script.listBox', owner, target, 0);
+ window.setProperty('bg.caption.lblTitle:Text', '@city/city:city_specs_t')
+ window.setProperty('Prompt.lblPrompt:Text', '@city/city:city_specs_d')
+
+ window.addListBoxMenuItem('@city/city:city_spec_cloning',0)
+ window.addListBoxMenuItem('@city/city:city_spec_bm_incubator',1)
+ window.addListBoxMenuItem('@city/city:city_spec_storyteller',2)
+ window.addListBoxMenuItem('@city/city:city_spec_entertainer',3)
+ window.addListBoxMenuItem('@city/city:city_spec_missions',4)
+ window.addListBoxMenuItem('@city/city:city_spec_industry',5)
+ window.addListBoxMenuItem('@city/city:city_spec_doctor',6)
+ window.addListBoxMenuItem('@city/city:city_spec_research',7)
+ window.addListBoxMenuItem('@city/city:city_spec_sample_rich',8)
+ window.addListBoxMenuItem('@city/city:city_spec_master_manufacturing',9)
+ window.addListBoxMenuItem('@city/city:city_spec_master_healing',10)
+ window.addListBoxMenuItem('@city/city:city_spec_stronghold',11)
+
+ window.setProperty('btnOk:visible', 'True')
+ window.setProperty('btnCancel:visible', 'True')
+ window.setProperty('btnOk:Text', '@ok')
+ window.setProperty('btnCancel:Text', '@cancel')
+
+ returnList = Vector()
+ returnList.add('List.lstList:SelectedRow')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, setSpecializationCallBack)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ core.suiService.openSUIWindow(window);
+ return
+
+def setSpecializationCancelCallBack(owner, window, eventType, returnList):
+ return
+
+def setSpecializationCallBack(owner, window, eventType, returnList):
+
+ if returnList.size()==0:
+ owner.sendSystemMessage('NULL', 0)
+ return
+
+ if returnList.get(0)=='0':
+ showCloning(owner)
+ return
+ if returnList.get(0)=='1':
+ showDNA(owner)
+ return
+ if returnList.get(0)=='2':
+ showEncore(owner)
+ return
+ if returnList.get(0)=='3':
+ showEntertainment(owner)
+ return
+ if returnList.get(0)=='4':
+ showImproved(owner)
+ return
+ if returnList.get(0)=='5':
+ showManufacturing(owner)
+ return
+ if returnList.get(0)=='6':
+ showMedical(owner)
+ return
+ if returnList.get(0)=='7':
+ showResearch(owner)
+ return
+ if returnList.get(0)=='8':
+ showSample(owner)
+ return
+
+ return
+
+def showCloning(owner):
+ window = main.NGECore.getInstance().suiService.createSUIWindow('Script.messageBox', owner, owner, 0)
+ window.setProperty('bg.caption.lblTitle:Text', '@city/city:city_spec_cloning')
+ window.setProperty('Prompt.lblPrompt:Text', '@city/city:city_spec_cloning_d')
+ window.setProperty("btnOk:visible", "True")
+ window.setProperty("btnCancel:visible", "True")
+ window.setProperty("btnOk:Text", "Select")
+ window.setProperty("btnCancel:Text", "@cancel")
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleCloningCallback)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ main.NGECore.getInstance().suiService.openSUIWindow(window);
+ return
+
+def handleCloningCallback(owner, window, eventType, returnList):
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ owner.setAttachment('ChosenCitySpec',1)
+ showSpecConfirmWindow(owner)
+ return
+
+def showDNA(owner):
+ window = main.NGECore.getInstance().suiService.createSUIWindow('Script.messageBox', owner, owner, 0)
+ window.setProperty('bg.caption.lblTitle:Text', '@city/city:city_spec_bm_incubator')
+ window.setProperty('Prompt.lblPrompt:Text', '@city/city:city_spec_bm_incubator_d')
+ window.setProperty("btnOk:visible", "True")
+ window.setProperty("btnCancel:visible", "True")
+ window.setProperty("btnOk:Text", "Select")
+ window.setProperty("btnCancel:Text", "@cancel")
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleDNACallback)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ main.NGECore.getInstance().suiService.openSUIWindow(window);
+ return
+
+def handleDNACallback(owner, window, eventType, returnList):
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ owner.setAttachment('ChosenCitySpec',2)
+ showSpecConfirmWindow(owner)
+ return
+
+def showEncore(owner):
+ window = main.NGECore.getInstance().suiService.createSUIWindow('Script.messageBox', owner, owner, 0)
+ window.setProperty('bg.caption.lblTitle:Text', '@city/city:city_spec_storyteller')
+ window.setProperty('Prompt.lblPrompt:Text', '@city/city:city_spec_storyteller_d')
+ window.setProperty("btnOk:visible", "True")
+ window.setProperty("btnCancel:visible", "True")
+ window.setProperty("btnOk:Text", "Select")
+ window.setProperty("btnCancel:Text", "@cancel")
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleEncoreCallback)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ main.NGECore.getInstance().suiService.openSUIWindow(window);
+ return
+
+def handleEncoreCallback(owner, window, eventType, returnList):
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ owner.setAttachment('ChosenCitySpec',3)
+ showSpecConfirmWindow(owner)
+ return
+
+
+def showEntertainment(owner):
+ window = main.NGECore.getInstance().suiService.createSUIWindow('Script.messageBox', owner, owner, 0)
+ window.setProperty('bg.caption.lblTitle:Text', '@city/city:city_spec_entertainer')
+ window.setProperty('Prompt.lblPrompt:Text', '@city/city:city_spec_entertainer_d')
+ window.setProperty("btnOk:visible", "True")
+ window.setProperty("btnCancel:visible", "True")
+ window.setProperty("btnOk:Text", "Select")
+ window.setProperty("btnCancel:Text", "@cancel")
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleEntertainmentCallback)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ main.NGECore.getInstance().suiService.openSUIWindow(window);
+ return
+
+def handleEntertainmentCallback(owner, window, eventType, returnList):
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ owner.setAttachment('ChosenCitySpec',4)
+ showSpecConfirmWindow(owner)
+ return
+
+def showImproved(owner):
+ window = main.NGECore.getInstance().suiService.createSUIWindow('Script.messageBox', owner, owner, 0)
+ window.setProperty('bg.caption.lblTitle:Text', '@city/city:city_spec_missions')
+ window.setProperty('Prompt.lblPrompt:Text', '@city/city:city_spec_missions_d')
+ window.setProperty("btnOk:visible", "True")
+ window.setProperty("btnCancel:visible", "True")
+ window.setProperty("btnOk:Text", "Select")
+ window.setProperty("btnCancel:Text", "@cancel")
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleImprovedCallback)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ main.NGECore.getInstance().suiService.openSUIWindow(window);
+ return
+
+def handleImprovedCallback(owner, window, eventType, returnList):
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ owner.setAttachment('ChosenCitySpec',5)
+ showSpecConfirmWindow(owner)
+ return
+
+def showManufacturing(owner):
+ window = main.NGECore.getInstance().suiService.createSUIWindow('Script.messageBox', owner, owner, 0)
+ window.setProperty('bg.caption.lblTitle:Text', '@city/city:city_spec_industry')
+ window.setProperty('Prompt.lblPrompt:Text', '@city/city:city_spec_industry_d')
+ window.setProperty("btnOk:visible", "True")
+ window.setProperty("btnCancel:visible", "True")
+ window.setProperty("btnOk:Text", "Select")
+ window.setProperty("btnCancel:Text", "@cancel")
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleManufacturingCallback)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ main.NGECore.getInstance().suiService.openSUIWindow(window);
+ return
+
+def handleManufacturingCallback(owner, window, eventType, returnList):
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ owner.setAttachment('ChosenCitySpec',6)
+ showSpecConfirmWindow(owner)
+ return
+
+def showMedical(owner):
+ window = main.NGECore.getInstance().suiService.createSUIWindow('Script.messageBox', owner, owner, 0)
+ window.setProperty('bg.caption.lblTitle:Text', '@city/city:city_spec_doctor')
+ window.setProperty('Prompt.lblPrompt:Text', '@city/city:city_spec_doctor_d')
+ window.setProperty("btnOk:visible", "True")
+ window.setProperty("btnCancel:visible", "True")
+ window.setProperty("btnOk:Text", "Select")
+ window.setProperty("btnCancel:Text", "@cancel")
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleMedicalCallback)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ main.NGECore.getInstance().suiService.openSUIWindow(window);
+ return
+
+def handleMedicalCallback(owner, window, eventType, returnList):
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ owner.setAttachment('ChosenCitySpec',7)
+ showSpecConfirmWindow(owner)
+ return
+
+def showResearch(owner):
+ window = main.NGECore.getInstance().suiService.createSUIWindow('Script.messageBox', owner, owner, 0)
+ window.setProperty('bg.caption.lblTitle:Text', '@city/city:city_spec_research')
+ window.setProperty('Prompt.lblPrompt:Text', '@city/city:city_spec_research_d')
+ window.setProperty("btnOk:visible", "True")
+ window.setProperty("btnCancel:visible", "True")
+ window.setProperty("btnOk:Text", "Select")
+ window.setProperty("btnCancel:Text", "@cancel")
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleResearchCallback)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ main.NGECore.getInstance().suiService.openSUIWindow(window);
+ return
+
+def handleResearchCallback(owner, window, eventType, returnList):
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ owner.setAttachment('ChosenCitySpec',8)
+ showSpecConfirmWindow(owner)
+ return
+
+def showSample(owner):
+ window = main.NGECore.getInstance().suiService.createSUIWindow('Script.messageBox', owner, owner, 0)
+ window.setProperty('bg.caption.lblTitle:Text', '@city/city:city_spec_sample_rich')
+ window.setProperty('Prompt.lblPrompt:Text', '@city/city:city_spec_sample_rich_d')
+ window.setProperty("btnOk:visible", "True")
+ window.setProperty("btnCancel:visible", "True")
+ window.setProperty("btnOk:Text", "Select")
+ window.setProperty("btnCancel:Text", "@cancel")
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleSampleCallback)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, setSpecializationCancelCallBack)
+ main.NGECore.getInstance().suiService.openSUIWindow(window);
+ return
+
+def handleSampleCallback(owner, window, eventType, returnList):
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ owner.setAttachment('ChosenCitySpec',9)
+ showSpecConfirmWindow(owner)
+ return
+
+def showSpecConfirmWindow(owner):
+ window = main.NGECore.getInstance().suiService.createSUIWindow('Script.messageBox', owner, owner, 0)
+ window.setProperty('bg.caption.lblTitle:Text', '@city/city:confirm_spec_t')
+ window.setProperty('Prompt.lblPrompt:Text', '@city/city:confirm_spec_d')
+ window.setProperty("btnOk:visible", "True")
+ window.setProperty("btnCancel:visible", "True")
+ window.setProperty("btnOk:Text", "Yes")
+ window.setProperty("btnCancel:Text", "No")
+ returnList = Vector()
+ returnList.add('txtInput:LocalText')
+ window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, handleSpecConfirmCallback)
+ window.addHandler(1, '', Trigger.TRIGGER_CANCEL, returnList, handleSpecConfirmCallback)
+ main.NGECore.getInstance().suiService.openSUIWindow(window);
+ return
+
+def handleSpecConfirmCallback(owner, window, eventType, returnList):
+ playerCity = main.NGECore.getInstance().playerCityService.getPlayerCity(owner)
+ chosenSpec = owner.getAttachment('ChosenCitySpec')
+ playerCity.setSpecialisation(chosenSpec)
+ return
\ No newline at end of file
diff --git a/scripts/radial/cloning_terminal.py b/scripts/radial/terminal/cloning_terminal.py
similarity index 52%
rename from scripts/radial/cloning_terminal.py
rename to scripts/radial/terminal/cloning_terminal.py
index 4809d1d6..1cf0e065 100644
--- a/scripts/radial/cloning_terminal.py
+++ b/scripts/radial/terminal/cloning_terminal.py
@@ -10,8 +10,19 @@ def createRadial(core, owner, target, radials):
def handleSelection(core, owner, target, option):
if option == 21 and target:
+ # REALLY Dirty hack until this can be resolved SWG way !!
+ stra = "Will you pay the %DI credits to clone yourself here?"
+ level = int(owner.getLevel())
+
+ if level <= 10:
+ cloningFee = 100
+ elif level >= 11:
+ cloningFee = (((owner.getLevel() + 17) * owner.getLevel())/2)
+ elif level == 90:
+ cloningFee = 5000
+
suiSvc = core.suiService
- suiWindow = suiSvc.createMessageBox(MessageBoxType.MESSAGE_BOX_OK_CANCEL, '@base_player:clone_confirm_title', '@base_player:clone_confirm_prompt', owner, target, 15)
+ suiWindow = suiSvc.createMessageBox(MessageBoxType.MESSAGE_BOX_OK_CANCEL, '@base_player:clone_confirm_title', stra.replace ("%DI" , str(cloningFee)), owner, target, 15)
returnParams = Vector()
returnParams.add('btnOk:Text')
returnParams.add('btnCancel:Text')
@@ -24,17 +35,26 @@ def handleSelection(core, owner, target, option):
def handleSUI(owner, window, eventType, returnList):
if eventType == 0:
+ level = int(owner.getLevel())
+ if level <= 10:
+ cloningFee = 100
+ elif level >= 11:
+ cloningFee = (((owner.getLevel() + 17) * owner.getLevel())/2)
+ elif level == 90:
+ cloningFee = 5000
+
cash = owner.getCashCredits()
bank = owner.getBankCredits()
- if bank < 1000 and cash < 1000:
+
+ if bank < cloningFee and cash < cloningFee:
owner.sendSystemMessage('You lack the credits required to cover the cost of cloning.', 0)
return
- elif bank > 1000:
- owner.setBankCredits(bank - 1000)
- elif cash > 1000 and bank < 1000:
- owner.setCashCredits(cash - 1000)
+ elif bank >= cloningFee:
+ owner.setBankCredits(bank - cloningFee)
+ elif cash >= cloningFee and bank < cloningFee:
+ owner.setCashCredits(cash - cloningFee)
- owner.setAttachment('preDesignatedCloner', window.getRangeObject().getGrandparent().getObjectID())
+ owner.getPlayerObject().setBindLocation(window.getRangeObject().getGrandparent().getObjectID())
owner.sendSystemMessage('@base_player:clone_success', 0)
diff --git a/scripts/radial/travel_terminal.py b/scripts/radial/terminal/travel_terminal.py
similarity index 73%
rename from scripts/radial/travel_terminal.py
rename to scripts/radial/terminal/travel_terminal.py
index f8b984fb..a579af12 100644
--- a/scripts/radial/travel_terminal.py
+++ b/scripts/radial/terminal/travel_terminal.py
@@ -8,13 +8,13 @@ def createRadial(core, owner, target, radials):
def handleSelection(core, owner, target, option):
if option == 21 and target:
- print ('Owner: ' + str(owner.getObjectId()))
-
+
if owner is not None:
+ if owner.getCombatFlag() == 1:
+ owner.sendSystemMessage('You can\'t use that while in combat.', 0)
+ return
tpm = EnterTicketPurchaseModeMessage(owner.getPlanet().getName(), core.mapService.getClosestCityName(owner), owner)
owner.getClient().getSession().write(tpm.serialize())
- print ('Planet name: ' + owner.getPlanet().getName())
- print ('City name: ' + core.mapService.getClosestCityName(owner))
return
return
diff --git a/scripts/radial/terminal/vendor.py b/scripts/radial/terminal/vendor.py
new file mode 100644
index 00000000..1ebb5c4b
--- /dev/null
+++ b/scripts/radial/terminal/vendor.py
@@ -0,0 +1,130 @@
+from resources.common import RadialOptions, ProsePackage, OutOfBand
+from java.util import HashMap
+from java.lang import Long
+from services.sui.SUIService import ListBoxType
+from services.sui.SUIService import InputBoxType
+from services.sui.SUIWindow import Trigger
+import sys
+
+def createRadial(core, owner, target, radials):
+ radials.clear()
+ radials.add(RadialOptions(0, 7, 1, ''))
+ radials.add(RadialOptions(0, 11, 1, ''))
+ if not long(target.getAttachment('vendorOwner')) == owner.getObjectID():
+ return
+ radials.add(RadialOptions(0, 55, 0, ''))
+ radials.add(RadialOptions(0, 52, 0, ''))
+ radials.add(RadialOptions(0, 112, 3, '@player_structure:vendor_control'))
+ radials.add(RadialOptions(3, 56, 1, ''))
+ radials.add(RadialOptions(3, 57, 1, ''))
+ radials.add(RadialOptions(3, 58, 1, ''))
+ radials.add(RadialOptions(3, 59, 1, ''))
+ radials.add(RadialOptions(4, 53, 1, ''))
+ radials.add(RadialOptions(4, 54, 1, ''))
+
+
+ if target.getAttachment('initialized') == False:
+ radials.add(RadialOptions(5, 118, 3, '@player_structure:vendor_init'))
+ else:
+ # soe reuses option 118
+ radials.add(RadialOptions(5, 118, 3, '@player_structure:vendor_status'))
+ radials.add(RadialOptions(5, 217, 3, '@player_structure:give_maintenance'))
+ radials.add(RadialOptions(5, 115, 3, '@player_structure:take_maintenance'))
+ if owner.getSkillModBase('private_register_vendor') >= 1:
+ radials.add(RadialOptions(5, 116, 3, '@player_structure:register_vendor'))
+ radials.add(RadialOptions(5, 205, 3, '@player_structure:enable_vendor_search'))
+ radials.add(RadialOptions(5, 206, 3, '@player_structure:disable_vendor_search'))
+ radials.add(RadialOptions(5, 121, 3, '@player_structure:customize_vendor'))
+
+ radials.add(RadialOptions(5, 114, 3, '@player_structure:vendor_pack'))
+ radials.add(RadialOptions(5, 117, 3, '@player_structure:remove_vendor'))
+
+ return
+
+def handleSelection(core, owner, target, option):
+
+ if not target.getAttachment('vendorOwner') == owner.getObjectID():
+ return
+
+ if target.getAttachment('initialized') == False:
+ if option == 118:
+ owner.sendSystemMessage('@player_structure:vendor_initialized', 0)
+ target.setAttachment('initialized', True)
+ core.bazaarService.startVendorUpdateTask(owner, target)
+ else:
+ if option == 118:
+ suiOptions = HashMap()
+ suiOptions.put(Long(1), 'Owner: ' + owner.getCustomName())
+ suiOptions.put(Long(2), 'Maintenance Pool: ' + str(target.getAttachment('maintenanceAmount')) + ' cr')
+ maintenanceRate = 15
+ if target.getAttachment('onMap') is True:
+ maintenanceRate += 6
+ suiOptions.put(Long(3), 'Maintenance Rate: ' + str(maintenanceRate) + ' cr/hr')
+ suiOptions.put(Long(4), 'Number of Items For Sale: ' + str(core.bazaarService.getNumberOfItemsForSale(target.getObjectID())))
+ window = core.suiService.createListBox(ListBoxType.LIST_BOX_OK_CANCEL, '@player_structure:vendor_status', 'Vendor Status', suiOptions, owner, None, 5)
+ core.suiService.openSUIWindow(window)
+ if option == 205:
+ target.setAttachment('vendorSearchEnabled', True)
+ owner.sendSystemMessage('@player_structure:vendor_search_enabled', 0)
+ if option == 206:
+ target.setAttachment('vendorSearchEnabled', False)
+ owner.sendSystemMessage('@player_structure:vendor_search_disabled', 0)
+ if option == 217:
+ window = core.suiService.createInputBox(InputBoxType.INPUT_BOX_OK_CANCEL, '@player_structure:pay_vendor_t', '@player_structure:pay_vendor_d', owner, target, 5, handlePayMaintenance)
+ core.suiService.openSUIWindow(window)
+ if option == 115:
+ window = core.suiService.createInputBox(InputBoxType.INPUT_BOX_OK_CANCEL, '@player_structure:withdraw_vendor_t', '@player_structure:withdraw_vendor_d', owner, target, 5, handleWithdrawMaintenance)
+ core.suiService.openSUIWindow(window)
+
+
+
+
+
+
+ return
+
+def handlePayMaintenance(actor, window, eventType, returnList):
+
+ value = int(returnList.get(0))
+
+ if value > 100000:
+ actor.sendSystemMessage('@player_structure:vendor_maint_invalid', 0)
+ return
+ if value <= 0:
+ actor.sendSystemMessage('@player_structure:amt_greater_than_zero', 0)
+ return
+ if actor.getBankCredits() + actor.getCashCredits() <= value:
+ actor.sendSystemMessage('@player_structure:vendor_maint_denied', 0)
+ return
+
+ if actor.getBankCredits() < value:
+ actor.setCashCredits(actor.getCashCredits() - (value - actor.getBankCredits()))
+ actor.setBankCredits(0)
+ else:
+ actor.setBankCredits(actor.getBankCredits() - value)
+
+ maintAmount = window.getRangeObject().getAttachment('maintenanceAmount')
+ maintAmount += value
+ window.getRangeObject().setAttachment('maintenanceAmount', maintAmount)
+
+ #actor.sendSystemMessage('@player_structure:vendor_maint_accepted', OutOfBand(ProsePackage(maintAmount)), 0)
+
+ return
+
+def handleWithdrawMaintenance(actor, window, eventType, returnList):
+
+ value = int(returnList.get(0))
+ maintAmount = window.getRangeObject().getAttachment('maintenanceAmount')
+
+ if value > maintAmount:
+ #actor.sendSystemMessage('@player_structure:vendor_withdraw_fail', OutOfBand(ProsePackage(value)), 0)
+ return
+ if value <= 0:
+ actor.sendSystemMessage('@player_structure:amt_greater_than_zero', 0)
+
+ maintAmount -= value
+ window.getRangeObject().setAttachment('maintenanceAmount', maintAmount)
+ #actor.sendSystemMessage('@player_structure:vendor_withdraw', OutOfBand(ProsePackage(value)), 0)
+
+ return
+
\ No newline at end of file
diff --git a/scripts/roadmap/bounty_hunter_1a.py b/scripts/roadmap/bounty_hunter_1a.py
index 7bb425e3..0c708fec 100644
--- a/scripts/roadmap/bounty_hunter_1a.py
+++ b/scripts/roadmap/bounty_hunter_1a.py
@@ -23,3 +23,97 @@ def getHealth():
def getAction():
return 75
+
+def getRewards(name):
+ if name == 'item_bounty_hunter_backpack_01_02':
+ return "object/tangible/wearables/backpack/shared_backpack_s05.iff"
+
+ if name == 'armor_bounty_hunter_roadmap_bicep_l_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff"
+
+ if name == 'armor_bounty_hunter_roadmap_bicep_r_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_bicep_r.iff"
+
+ if name == 'armor_bounty_hunter_roadmap_bracer_l_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_bracer_l.iff"
+
+ if name == 'armor_bounty_hunter_roadmap_bracer_r_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_bracer_r.iff"
+
+ if name == 'armor_bounty_hunter_roadmap_boots_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_boots.iff"
+
+ if name == 'armor_bounty_hunter_roadmap_chest_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_chest_plate.iff"
+
+ if name == 'armor_bounty_hunter_roadmap_gloves_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_gloves.iff"
+
+ if name == 'armor_bounty_hunter_roadmap_helmet_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_helmet.iff"
+
+ if name == 'armor_bounty_hunter_roadmap_leggings_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_leggings.iff"
+
+ if name == 'armor_wookiee_roadmap_chest_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_chestplate.iff"
+
+ if name == 'armor_wookiee_roadmap_leggings_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_leggings.iff"
+
+ if name == 'armor_wookiee_roadmap_bicep_l_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_l.iff"
+
+ if name == 'armor_wookiee_roadmap_bicep_r_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_r.iff"
+
+ if name == 'armor_wookiee_roadmap_bracer_l_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_l.iff"
+
+ if name == 'armor_wookiee_roadmap_bracer_r_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_r.iff"
+
+ if name == 'armor_ithorian_roadmap_chest_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_chest_plate.iff"
+
+ if name == 'armor_ithorian_roadmap_leggings_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_leggings.iff"
+
+ if name == 'armor_ithorian_roadmap_helmet_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_helmet.iff"
+
+ if name == 'armor_ithorian_roadmap_bicep_l_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_l.iff"
+
+ if name == 'armor_ithorian_roadmap_bicep_r_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_r.iff"
+
+ if name == 'armor_ithorian_roadmap_bracer_l_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_l.iff"
+
+ if name == 'armor_ithorian_roadmap_bracer_r_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_r.iff"
+
+ if name == 'armor_ithorian_roadmap_boots_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_boots.iff"
+
+ if name == 'armor_ithorian_roadmap_gloves_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_gloves.iff"
+
+ if name == 'weapon_carbine_bh_roadmap_01_02':
+ return "object/weapon/ranged/carbine/shared_carbine_ee3.iff"
+
+ if name == 'item_bounty_hunter_ring_01_02':
+ return "object/tangible/wearables/ring/shared_ring_s02.iff"
+
+ if name == 'weapon_rifle_bh_roadmap_01_02':
+ return "object/weapon/ranged/rifle/shared_rifle_lightning.iff"
+
+ if name == 'item_bounty_hunter_pendant_01_02':
+ return "object/tangible/wearables/necklace/shared_necklace_s02.iff"
+
+ if name == 'item_bounty_hunter_clicky_01_02':
+ return "object/tangible/loot/generic_usable/shared_survey_pad_adv_generic.iff"
+
+ if name == 'item_roadmap_belt_bounty_hunter_01_02':
+ return "object/tangible/wearables/armor/zam/shared_armor_zam_wesell_belt.iff"
\ No newline at end of file
diff --git a/scripts/roadmap/commando_1a.py b/scripts/roadmap/commando_1a.py
index 8d9253ae..c63fd717 100644
--- a/scripts/roadmap/commando_1a.py
+++ b/scripts/roadmap/commando_1a.py
@@ -23,3 +23,97 @@ def getHealth():
def getAction():
return 75
+
+def getRewards(name):
+ if name == 'item_bounty_hunter_backpack_01_02':
+ return "object/tangible/wearables/backpack/shared_backpack_s04.iff"
+
+ if name == 'armor_commando_roadmap_bicep_l_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff"
+
+ if name == 'armor_commando_roadmap_bicep_r_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_bicep_r.iff"
+
+ if name == 'armor_commando_roadmap_bracer_l_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_bracer_l.iff"
+
+ if name == 'armor_commando_roadmap_bracer_r_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_bracer_r.iff"
+
+ if name == 'armor_commando_roadmap_boots_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_boots.iff"
+
+ if name == 'armor_commando_roadmap_chest_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_chest_plate.iff"
+
+ if name == 'armor_commando_roadmap_gloves_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_gloves.iff"
+
+ if name == 'armor_commando_roadmap_helmet_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_helmet.iff"
+
+ if name == 'armor_commando_roadmap_leggings_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_leggings.iff"
+
+ if name == 'armor_wookiee_roadmap_chest_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_chestplate.iff"
+
+ if name == 'armor_wookiee_roadmap_leggings_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_leggings.iff"
+
+ if name == 'armor_wookiee_roadmap_bicep_l_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_l.iff"
+
+ if name == 'armor_wookiee_roadmap_bicep_r_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_r.iff"
+
+ if name == 'armor_wookiee_roadmap_bracer_l_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_l.iff"
+
+ if name == 'armor_wookiee_roadmap_bracer_r_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_r.iff"
+
+ if name == 'armor_ithorian_roadmap_chest_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_chest_plate.iff"
+
+ if name == 'armor_ithorian_roadmap_leggings_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_leggings.iff"
+
+ if name == 'armor_ithorian_roadmap_helmet_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_helmet.iff"
+
+ if name == 'armor_ithorian_roadmap_bicep_l_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_l.iff"
+
+ if name == 'armor_ithorian_roadmap_bicep_r_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_r.iff"
+
+ if name == 'armor_ithorian_roadmap_bracer_l_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_l.iff"
+
+ if name == 'armor_ithorian_roadmap_bracer_r_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_r.iff"
+
+ if name == 'armor_ithorian_roadmap_boots_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_boots.iff"
+
+ if name == 'armor_ithorian_roadmap_gloves_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_gloves.iff"
+
+ if name == 'weapon_lightningbeam_commando_roadmap_01_02':
+ return "object/weapon/ranged/rifle/shared_rifle_dlt20.iff"
+
+ if name == 'item_commando_ring_01_02':
+ return "object/tangible/wearables/ring/shared_ring_s03.iff"
+
+ if name == 'weapon_acidbeam_commando_roadmap_01_02':
+ return "object/weapon/ranged/carbine/shared_carbine_e11.iff"
+
+ if name == 'item_commando_pendant_01_02':
+ return "object/tangible/wearables/necklace/shared_necklace_s07.iff"
+
+ if name == 'item_commando_clicky_01_02':
+ return "object/tangible/loot/generic_usable/shared_survey_pad_adv_generic.iff"
+
+ if name == 'item_roadmap_belt_commando_01_02':
+ return "object/tangible/wearables/armor/zam/shared_armor_zam_wesell_belt.iff"
\ No newline at end of file
diff --git a/scripts/roadmap/entertainer_1a.py b/scripts/roadmap/entertainer_1a.py
index 0541cc93..efe33465 100644
--- a/scripts/roadmap/entertainer_1a.py
+++ b/scripts/roadmap/entertainer_1a.py
@@ -23,3 +23,6 @@ def getHealth():
def getAction():
return 75
+
+def getRewards(name):
+ return
\ No newline at end of file
diff --git a/scripts/roadmap/force_sensitive_1a.py b/scripts/roadmap/force_sensitive_1a.py
index 2d9241b0..9fd5ca69 100644
--- a/scripts/roadmap/force_sensitive_1a.py
+++ b/scripts/roadmap/force_sensitive_1a.py
@@ -23,3 +23,28 @@ def getHealth():
def getAction():
return 75
+
+def getRewards(name):
+ if name == 'item_force_sensitive_ring_02_01':
+ return "object/tangible/wearables/ring/shared_ring_s02.iff"
+
+ if name == 'item_npe_fs_robe_02_02':
+ return "object/tangible/wearables/robe/shared_robe_jedi_padawan.iff"
+
+ if name == 'weapon_roadmap_lightsaber_02_02':
+ return "object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_s1.iff"
+
+ if name == 'item_force_sensitive_ring_01_02':
+ return "object/tangible/wearables/ring/shared_ring_s01.iff"
+
+ if name == 'item_krayt_pearl_04_01':
+ return "object/tangible/component/weapon/lightsaber/shared_lightsaber_module_krayt_dragon_pearl.iff"
+
+ if name == 'item_force_sensitive_pendant_01_02':
+ return "object/tangible/wearables/necklace/shared_necklace_s12.iff"
+
+ if name == 'item_force_sensitive_clicky_01_02':
+ return "object/tangible/loot/generic_usable/shared_generic_crystal.iff"
+
+ if name == 'item_roadmap_belt_force_sensitive_01_02':
+ return "object/tangible/wearables/armor/zam/shared_armor_zam_wesell_belt.iff"
\ No newline at end of file
diff --git a/scripts/roadmap/medic_1a.py b/scripts/roadmap/medic_1a.py
index 6b84327b..dd0ffb66 100644
--- a/scripts/roadmap/medic_1a.py
+++ b/scripts/roadmap/medic_1a.py
@@ -23,3 +23,97 @@ def getHealth():
def getAction():
return 75
+
+def getRewards(name):
+ if name == 'item_medic_backpack_01_02':
+ return "object/tangible/wearables/backpack/shared_backpack_s02.iff"
+
+ if name == 'armor_medic_roadmap_bicep_l_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_bicep_l.iff"
+
+ if name == 'armor_medic_roadmap_bicep_r_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_bicep_r.iff"
+
+ if name == 'armor_medic_roadmap_bracer_l_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_bracer_l.iff"
+
+ if name == 'armor_medic_roadmap_bracer_r_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_bracer_r.iff"
+
+ if name == 'armor_medic_roadmap_boots_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_boots.iff"
+
+ if name == 'armor_medic_roadmap_chest_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_chest_plate.iff"
+
+ if name == 'armor_medic_roadmap_gloves_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_gloves.iff"
+
+ if name == 'armor_medic_roadmap_helmet_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_helmet.iff"
+
+ if name == 'armor_medic_roadmap_leggings_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_leggings.iff"
+
+ if name == 'armor_wookiee_roadmap_chest_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_chestplate.iff"
+
+ if name == 'armor_wookiee_roadmap_leggings_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_leggings.iff"
+
+ if name == 'armor_wookiee_roadmap_bicep_l_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_l.iff"
+
+ if name == 'armor_wookiee_roadmap_bicep_r_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_r.iff"
+
+ if name == 'armor_wookiee_roadmap_bracer_l_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_l.iff"
+
+ if name == 'armor_wookiee_roadmap_bracer_r_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_r.iff"
+
+ if name == 'armor_ithorian_roadmap_chest_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_chest_plate.iff"
+
+ if name == 'armor_ithorian_roadmap_leggings_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_leggings.iff"
+
+ if name == 'armor_ithorian_roadmap_helmet_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_helmet.iff"
+
+ if name == 'armor_ithorian_roadmap_bicep_l_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_l.iff"
+
+ if name == 'armor_ithorian_roadmap_bicep_r_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_r.iff"
+
+ if name == 'armor_ithorian_roadmap_bracer_l_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_l.iff"
+
+ if name == 'armor_ithorian_roadmap_bracer_r_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_r.iff"
+
+ if name == 'armor_ithorian_roadmap_boots_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_boots.iff"
+
+ if name == 'armor_ithorian_roadmap_gloves_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_gloves.iff"
+
+ if name == 'weapon_carbine_me_roadmap_01_02':
+ return "object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff"
+
+ if name == 'item_medic_ring_01_02':
+ return "object/tangible/wearables/ring/shared_ring_s02.iff"
+
+ if name == 'weapon_rifle_me_roadmap_01_02':
+ return "object/weapon/ranged/carbine/shared_carbine_laser.iff"
+
+ if name == 'item_medic_pendant_01_02':
+ return "object/tangible/wearables/necklace/shared_necklace_s02.iff"
+
+ if name == 'item_medic_clicky_01_02':
+ return "object/tangible/loot/generic_usable/shared_survey_pad_adv_generic.iff"
+
+ if name == 'item_roadmap_belt_medic_01_02':
+ return "object/tangible/wearables/armor/zam/shared_armor_zam_wesell_belt.iff"
diff --git a/scripts/roadmap/officer_1a.py b/scripts/roadmap/officer_1a.py
new file mode 100644
index 00000000..3a139591
--- /dev/null
+++ b/scripts/roadmap/officer_1a.py
@@ -0,0 +1,120 @@
+import sys
+
+def getLuck():
+ return 20
+
+def getPrecision():
+ return 70
+
+def getStrength():
+ return 50
+
+def getConstitution():
+ return 80
+
+def getStamina():
+ return 80
+
+def getAgility():
+ return 60
+
+def getHealth():
+ return 100
+
+def getAction():
+ return 75
+
+def getRewards(name):
+
+ if name == 'item_officer_backpack_01_02':
+ return "object/tangible/wearables/backpack/shared_backpack_s03.iff"
+
+ if name == 'armor_officer_roadmap_bicep_l_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_bicep_l.iff"
+
+ if name == 'armor_officer_roadmap_bicep_r_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_bicep_r.iff"
+
+ if name == 'armor_officer_roadmap_bracer_l_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_bracer_l.iff"
+
+ if name == 'armor_officer_roadmap_bracer_r_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_bracer_r.iff"
+
+ if name == 'armor_officer_roadmap_boots_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_boots.iff"
+
+ if name == 'armor_officer_roadmap_chest_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_chest_plate.iff"
+
+ if name == 'armor_officer_roadmap_gloves_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_gloves.iff"
+
+ if name == 'armor_officer_roadmap_helmet_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_helmet.iff"
+
+ if name == 'armor_officer_roadmap_leggings_02_01':
+ return "object/tangible/wearables/armor/composite/shared_armor_composite_leggings.iff"
+
+ if name == 'armor_wookiee_roadmap_chest_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_chestplate.iff"
+
+ if name == 'armor_wookiee_roadmap_leggings_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_leggings.iff"
+
+ if name == 'armor_wookiee_roadmap_bicep_l_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_l.iff"
+
+ if name == 'armor_wookiee_roadmap_bicep_r_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_r.iff"
+
+ if name == 'armor_wookiee_roadmap_bracer_l_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_l.iff"
+
+ if name == 'armor_wookiee_roadmap_bracer_r_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_r.iff"
+
+ if name == 'armor_ithorian_roadmap_chest_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_chest_plate.iff"
+
+ if name == 'armor_ithorian_roadmap_leggings_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_leggings.iff"
+
+ if name == 'armor_ithorian_roadmap_helmet_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_helmet.iff"
+
+ if name == 'armor_ithorian_roadmap_bicep_l_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_l.iff"
+
+ if name == 'armor_ithorian_roadmap_bicep_r_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_r.iff"
+
+ if name == 'armor_ithorian_roadmap_bracer_l_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_l.iff"
+
+ if name == 'armor_ithorian_roadmap_bracer_r_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_r.iff"
+
+ if name == 'armor_ithorian_roadmap_boots_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_boots.iff"
+
+ if name == 'armor_ithorian_roadmap_gloves_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_gloves.iff"
+
+ if name == 'weapon_pistol_sp_roadmap_01_02':
+ return "object/weapon/ranged/pistol/shared_pistol_dl44.iff"
+
+ if name == 'item_officer_ring_01_02':
+ return "object/tangible/wearables/ring/shared_ring_s02.iff"
+
+ if name == 'weapon_carbine_of_roadmap_01_02':
+ return "object/weapon/ranged/pistol/shared_pistol_dl44_metal.iff"
+
+ if name == 'item_officer_pendant_01_02':
+ return "object/tangible/wearables/necklace/shared_necklace_s02.iff"
+
+ if name == 'item_officer_clicky_01_02':
+ return "object/tangible/loot/generic_usable/shared_survey_pad_adv_generic.iff"
+
+ if name == 'item_roadmap_belt_officer_01_02':
+ return "object/tangible/wearables/armor/zam/shared_armor_zam_wesell_belt.iff"
diff --git a/scripts/roadmap/roadmap_rewards.py b/scripts/roadmap/roadmap_rewards.py
deleted file mode 100644
index 2f11d77e..00000000
--- a/scripts/roadmap/roadmap_rewards.py
+++ /dev/null
@@ -1,4 +0,0 @@
-import sys
-
-def get(name):
- return ""
diff --git a/scripts/roadmap/smuggler_1a.py b/scripts/roadmap/smuggler_1a.py
index 8084fcd2..44a2d32c 100644
--- a/scripts/roadmap/smuggler_1a.py
+++ b/scripts/roadmap/smuggler_1a.py
@@ -23,3 +23,97 @@ def getHealth():
def getAction():
return 75
+
+def getRewards(name):
+ if name == 'item_smuggler_backpack_01_02':
+ return "object/tangible/wearables/backpack/shared_backpack_s02.iff"
+
+ if name == 'armor_smuggler_roadmap_bicep_l_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_bicep_l.iff"
+
+ if name == 'armor_smuggler_roadmap_bicep_r_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_bicep_r.iff"
+
+ if name == 'armor_smuggler_roadmap_bracer_l_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_bracer_l.iff"
+
+ if name == 'armor_smuggler_roadmap_bracer_r_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_bracer_r.iff"
+
+ if name == 'armor_smuggler_roadmap_boots_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_boots.iff"
+
+ if name == 'armor_smuggler_roadmap_chest_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_chest_plate.iff"
+
+ if name == 'armor_smuggler_roadmap_gloves_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_gloves.iff"
+
+ if name == 'armor_smuggler_roadmap_helmet_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_helmet.iff"
+
+ if name == 'armor_smuggler_roadmap_leggings_02_01':
+ return "object/tangible/wearables/armor/tantel/shared_armor_tantel_skreej_leggings.iff"
+
+ if name == 'armor_wookiee_roadmap_chest_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_chestplate.iff"
+
+ if name == 'armor_wookiee_roadmap_leggings_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_leggings.iff"
+
+ if name == 'armor_wookiee_roadmap_bicep_l_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_l.iff"
+
+ if name == 'armor_wookiee_roadmap_bicep_r_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_r.iff"
+
+ if name == 'armor_wookiee_roadmap_bracer_l_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_l.iff"
+
+ if name == 'armor_wookiee_roadmap_bracer_r_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_r.iff"
+
+ if name == 'armor_ithorian_roadmap_chest_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_chest_plate.iff"
+
+ if name == 'armor_ithorian_roadmap_leggings_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_leggings.iff"
+
+ if name == 'armor_ithorian_roadmap_helmet_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_helmet.iff"
+
+ if name == 'armor_ithorian_roadmap_bicep_l_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_l.iff"
+
+ if name == 'armor_ithorian_roadmap_bicep_r_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_r.iff"
+
+ if name == 'armor_ithorian_roadmap_bracer_l_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_l.iff"
+
+ if name == 'armor_ithorian_roadmap_bracer_r_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_r.iff"
+
+ if name == 'armor_ithorian_roadmap_boots_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_boots.iff"
+
+ if name == 'armor_ithorian_roadmap_gloves_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_gloves.iff"
+
+ if name == 'weapon_pistol_sm_roadmap_01_02':
+ return "object/weapon/ranged/pistol/shared_pistol_striker.iff"
+
+ if name == 'item_smuggler_ring_01_02':
+ return "object/tangible/wearables/ring/shared_ring_s02.iff"
+
+ if name == 'weapon_carbine_sm_roadmap_01_02':
+ return "object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff"
+
+ if name == 'item_smuggler_pendant_01_02':
+ return "object/tangible/wearables/necklace/shared_necklace_s02.iff"
+
+ if name == 'item_smuggler_clicky_01_02':
+ return "object/tangible/loot/generic_usable/shared_survey_pad_adv_generic.iff"
+
+ if name == 'item_roadmap_belt_smuggler_01_02':
+ return "object/tangible/wearables/armor/zam/shared_armor_zam_wesell_belt.iff"
diff --git a/scripts/roadmap/spy_1a.py b/scripts/roadmap/spy_1a.py
index 6fe7c37a..65d40d6c 100644
--- a/scripts/roadmap/spy_1a.py
+++ b/scripts/roadmap/spy_1a.py
@@ -23,3 +23,98 @@ def getHealth():
def getAction():
return 75
+
+def getRewards(name):
+
+ if name == 'item_spy_backpack_01_02':
+ return "object/tangible/wearables/backpack/shared_backpack_s04.iff"
+
+ if name == 'armor_spy_roadmap_bicep_l_02_01':
+ return "object/tangible/wearables/armor/padded/shared_armor_padded_s01_bicep_l.iff"
+
+ if name == 'armor_spy_roadmap_bicep_r_02_01':
+ return "object/tangible/wearables/armor/padded/shared_armor_padded_s01_bicep_r.iff"
+
+ if name == 'armor_spy_roadmap_bracer_l_02_01':
+ return "object/tangible/wearables/armor/padded/shared_armor_padded_s01_bracer_l.iff"
+
+ if name == 'armor_spy_roadmap_bracer_r_02_01':
+ return "object/tangible/wearables/armor/padded/shared_armor_padded_s01_bracer_r.iff"
+
+ if name == 'armor_spy_roadmap_boots_02_01':
+ return "object/tangible/wearables/armor/padded/shared_armor_padded_s01_boots.iff"
+
+ if name == 'armor_spy_roadmap_chest_02_01':
+ return "object/tangible/wearables/armor/padded/shared_armor_padded_s01_chest_plate.iff"
+
+ if name == 'armor_spy_roadmap_gloves_02_01':
+ return "object/tangible/wearables/armor/padded/shared_armor_padded_s01_gloves.iff"
+
+ if name == 'armor_spy_roadmap_helmet_02_01':
+ return "object/tangible/wearables/armor/padded/shared_armor_padded_s01_helmet.iff"
+
+ if name == 'armor_spy_roadmap_leggings_02_01':
+ return "object/tangible/wearables/armor/padded/shared_armor_padded_s01_leggings.iff"
+
+ if name == 'armor_wookiee_roadmap_chest_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_chestplate.iff"
+
+ if name == 'armor_wookiee_roadmap_leggings_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_leggings.iff"
+
+ if name == 'armor_wookiee_roadmap_bicep_l_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_l.iff"
+
+ if name == 'armor_wookiee_roadmap_bicep_r_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bicep_r.iff"
+
+ if name == 'armor_wookiee_roadmap_bracer_l_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_l.iff"
+
+ if name == 'armor_wookiee_roadmap_bracer_r_02_03':
+ return "object/tangible/wearables/armor/kashyyykian_hunting/shared_armor_kashyyykian_hunting_bracer_r.iff"
+
+ if name == 'armor_ithorian_roadmap_chest_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_chest_plate.iff"
+
+ if name == 'armor_ithorian_roadmap_leggings_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_leggings.iff"
+
+ if name == 'armor_ithorian_roadmap_helmet_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_helmet.iff"
+
+ if name == 'armor_ithorian_roadmap_bicep_l_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_l.iff"
+
+ if name == 'armor_ithorian_roadmap_bicep_r_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bicep_r.iff"
+
+ if name == 'armor_ithorian_roadmap_bracer_l_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_l.iff"
+
+ if name == 'armor_ithorian_roadmap_bracer_r_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_bracer_r.iff"
+
+ if name == 'armor_ithorian_roadmap_boots_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_boots.iff"
+
+ if name == 'armor_ithorian_roadmap_gloves_02_03':
+ return "object/tangible/wearables/armor/ithorian_sentinel/shared_ith_armor_s03_gloves.iff"
+
+ if name == 'weapon_pistol_sp_roadmap_01_02':
+ return "object/weapon/ranged/pistol/shared_pistol_striker.iff"
+
+ if name == 'item_spy_ring_01_02':
+ return "object/tangible/wearables/ring/shared_ring_s02.iff"
+
+ if name == 'weapon_carbine_sp_roadmap_01_02':
+ return "object/weapon/ranged/carbine/shared_carbine_e11.iff"
+
+ if name == 'item_spy_pendant_01_02':
+ return "object/tangible/wearables/necklace/shared_necklace_s02.iff"
+
+ if name == 'item_spy_clicky_01_02':
+ return "object/tangible/loot/generic_usable/shared_survey_pad_adv_generic.iff"
+
+ if name == 'item_roadmap_belt_spy_01_02':
+ return "object/tangible/wearables/armor/zam/shared_armor_zam_wesell_belt.iff"
diff --git a/scripts/roadmap/trader_0a.py b/scripts/roadmap/trader_0a.py
index 2846dee7..c0ae1ee4 100644
--- a/scripts/roadmap/trader_0a.py
+++ b/scripts/roadmap/trader_0a.py
@@ -23,3 +23,32 @@ def getHealth():
def getAction():
return 75
+
+def getRewards(name):
+ if name == 'item_npe_gen_craft_tool_trader_03_01':
+ return "object/tangible/crafting/base/shared_generic_base_tool.iff"
+
+ if name == 'item_trader_backpack_01_02':
+ return "object/tangible/wearables/backpack/shared_backpack_s04.iff"
+
+ if name == 'weapon_knife_trader_roadmap_01_02':
+ return "object/weapon/melee/knife/shared_knife_dagger.iff"
+
+ if name == 'item_trader_ring_01_02':
+ return "object/tangible/wearables/ring/shared_ring_s02.iff"
+
+ if name == 'item_trader_roadmap_jumpsuit_02_02':
+ return "object/tangible/wearables/bodysuit/shared_bodysuit_s01.iff"
+
+ if name == 'weapon_pistol_trader_roadmap_01_02':
+ return "object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff"
+
+ if name == 'item_trader_pendant_01_02':
+ return "object/tangible/wearables/necklace/shared_necklace_s07.iff"
+
+ if name == 'item_trader_clicky_01_02':
+ return "object/tangible/crafting/station/shared_generic_generic_tool.iff"
+
+ if name == 'item_roadmap_belt_trader_01_02':
+ return "object/tangible/wearables/armor/zam/shared_armor_zam_wesell_belt.iff"
+ return
\ No newline at end of file
diff --git a/scripts/roadmap/trader_0b.py b/scripts/roadmap/trader_0b.py
index 2846dee7..c3a7e4ec 100644
--- a/scripts/roadmap/trader_0b.py
+++ b/scripts/roadmap/trader_0b.py
@@ -23,3 +23,33 @@ def getHealth():
def getAction():
return 75
+
+
+def getRewards(name):
+ if name == 'item_npe_gen_craft_tool_trader_03_01':
+ return "object/tangible/crafting/base/shared_generic_base_tool.iff"
+
+ if name == 'item_trader_backpack_01_02':
+ return "object/tangible/wearables/backpack/shared_backpack_s04.iff"
+
+ if name == 'weapon_knife_trader_roadmap_01_02':
+ return "object/weapon/melee/knife/shared_knife_dagger.iff"
+
+ if name == 'item_trader_ring_01_02':
+ return "object/tangible/wearables/ring/shared_ring_s02.iff"
+
+ if name == 'item_trader_roadmap_jumpsuit_02_02':
+ return "object/tangible/wearables/bodysuit/shared_bodysuit_s01.iff"
+
+ if name == 'weapon_pistol_trader_roadmap_01_02':
+ return "object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff"
+
+ if name == 'item_trader_pendant_01_02':
+ return "object/tangible/wearables/necklace/shared_necklace_s07.iff"
+
+ if name == 'item_trader_clicky_01_02':
+ return "object/tangible/crafting/station/shared_generic_generic_tool.iff"
+
+ if name == 'item_roadmap_belt_trader_01_02':
+ return "object/tangible/wearables/armor/zam/shared_armor_zam_wesell_belt.iff"
+ return
\ No newline at end of file
diff --git a/scripts/roadmap/trader_0c.py b/scripts/roadmap/trader_0c.py
index 2846dee7..7ac4a0d7 100644
--- a/scripts/roadmap/trader_0c.py
+++ b/scripts/roadmap/trader_0c.py
@@ -23,3 +23,32 @@ def getHealth():
def getAction():
return 75
+
+def getRewards(name):
+ if name == 'item_npe_gen_craft_tool_trader_03_01':
+ return "object/tangible/crafting/base/shared_generic_base_tool.iff"
+
+ if name == 'item_trader_backpack_01_02':
+ return "object/tangible/wearables/backpack/shared_backpack_s04.iff"
+
+ if name == 'weapon_knife_trader_roadmap_01_02':
+ return "object/weapon/melee/knife/shared_knife_dagger.iff"
+
+ if name == 'item_trader_ring_01_02':
+ return "object/tangible/wearables/ring/shared_ring_s02.iff"
+
+ if name == 'item_trader_roadmap_jumpsuit_02_02':
+ return "object/tangible/wearables/bodysuit/shared_bodysuit_s01.iff"
+
+ if name == 'weapon_pistol_trader_roadmap_01_02':
+ return "object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff"
+
+ if name == 'item_trader_pendant_01_02':
+ return "object/tangible/wearables/necklace/shared_necklace_s07.iff"
+
+ if name == 'item_trader_clicky_01_02':
+ return "object/tangible/crafting/station/shared_generic_generic_tool.iff"
+
+ if name == 'item_roadmap_belt_trader_01_02':
+ return "object/tangible/wearables/armor/zam/shared_armor_zam_wesell_belt.iff"
+ return
\ No newline at end of file
diff --git a/scripts/roadmap/trader_0d.py b/scripts/roadmap/trader_0d.py
index 2846dee7..7ac4a0d7 100644
--- a/scripts/roadmap/trader_0d.py
+++ b/scripts/roadmap/trader_0d.py
@@ -23,3 +23,32 @@ def getHealth():
def getAction():
return 75
+
+def getRewards(name):
+ if name == 'item_npe_gen_craft_tool_trader_03_01':
+ return "object/tangible/crafting/base/shared_generic_base_tool.iff"
+
+ if name == 'item_trader_backpack_01_02':
+ return "object/tangible/wearables/backpack/shared_backpack_s04.iff"
+
+ if name == 'weapon_knife_trader_roadmap_01_02':
+ return "object/weapon/melee/knife/shared_knife_dagger.iff"
+
+ if name == 'item_trader_ring_01_02':
+ return "object/tangible/wearables/ring/shared_ring_s02.iff"
+
+ if name == 'item_trader_roadmap_jumpsuit_02_02':
+ return "object/tangible/wearables/bodysuit/shared_bodysuit_s01.iff"
+
+ if name == 'weapon_pistol_trader_roadmap_01_02':
+ return "object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff"
+
+ if name == 'item_trader_pendant_01_02':
+ return "object/tangible/wearables/necklace/shared_necklace_s07.iff"
+
+ if name == 'item_trader_clicky_01_02':
+ return "object/tangible/crafting/station/shared_generic_generic_tool.iff"
+
+ if name == 'item_roadmap_belt_trader_01_02':
+ return "object/tangible/wearables/armor/zam/shared_armor_zam_wesell_belt.iff"
+ return
\ No newline at end of file
diff --git a/scripts/skillMods/absorption_bleeding.py b/scripts/skillMods/absorption_bleeding.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/absorption_bleeding.py
+++ b/scripts/skillMods/absorption_bleeding.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/absorption_disease.py b/scripts/skillMods/absorption_disease.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/absorption_disease.py
+++ b/scripts/skillMods/absorption_disease.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/absorption_fire.py b/scripts/skillMods/absorption_fire.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/absorption_fire.py
+++ b/scripts/skillMods/absorption_fire.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/absorption_poison.py b/scripts/skillMods/absorption_poison.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/absorption_poison.py
+++ b/scripts/skillMods/absorption_poison.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/accuracy_modifier.py b/scripts/skillMods/accuracy_modifier.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/accuracy_modifier.py
+++ b/scripts/skillMods/accuracy_modifier.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/acid.py b/scripts/skillMods/acid.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/acid.py
+++ b/scripts/skillMods/acid.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/action.py b/scripts/skillMods/action.py
new file mode 100644
index 00000000..b5c5e291
--- /dev/null
+++ b/scripts/skillMods/action.py
@@ -0,0 +1,8 @@
+import sys
+
+def add(core, actor, skillMod, value):
+ return
+
+def deduct(core, actor, skillMod, value):
+ return
+
\ No newline at end of file
diff --git a/scripts/skillMods/actionPercent.py b/scripts/skillMods/actionPercent.py
new file mode 100644
index 00000000..a2fabea0
--- /dev/null
+++ b/scripts/skillMods/actionPercent.py
@@ -0,0 +1,12 @@
+import sys
+
+# Temporarily disabled until the skillmod calculation system is refactored
+
+def add(core, actor, skillMod, divisor):
+ #actor.setMaxAction(actor.getMaxAction() + int((float(actor.getMaxAction()) * (float(skillMod.getBase()) / float(100)))))
+ return
+
+def deduct(core, actor, skillMod, divisor):
+ #actor.setMaxAction(actor.getMaxAction() - int((float(actor.getMaxAction()) * (float(skillMod.getBase()) / float(100)))))
+ return
+
\ No newline at end of file
diff --git a/scripts/skillMods/action_burn.py b/scripts/skillMods/action_burn.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/action_burn.py
+++ b/scripts/skillMods/action_burn.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/advanced_assembly.py b/scripts/skillMods/advanced_assembly.py
index ee7769e2..6cd11173 100644
--- a/scripts/skillMods/advanced_assembly.py
+++ b/scripts/skillMods/advanced_assembly.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, divisor):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, divisor):
return
\ No newline at end of file
diff --git a/scripts/skillMods/advanced_ship_experimentation.py b/scripts/skillMods/advanced_ship_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/advanced_ship_experimentation.py
+++ b/scripts/skillMods/advanced_ship_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/agility.py b/scripts/skillMods/agility.py
index 80b31400..7978281a 100644
--- a/scripts/skillMods/agility.py
+++ b/scripts/skillMods/agility.py
@@ -1,16 +1,14 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- actor.addSkillMod('display_only_dodge', base)
- actor.addSkillMod('display_only_parry', base / 2)
- actor.addSkillMod('display_only_evasion', base)
+def add(core, actor, skillMod, divisor):
+ core.skillModService.addSkillMod(actor, 'display_only_dodge', skillMod.getBase())
+ core.skillModService.addSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2)
+ core.skillModService.addSkillMod(actor, 'display_only_evasion', skillMod.getBase())
+ return
+
+def deduct(core, actor, skillMod, divisor):
+ core.skillModService.deductSkillMod(actor, 'display_only_dodge', skillMod.getBase())
+ core.skillModService.deductSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2)
+ core.skillModService.deductSkillMod(actor, 'display_only_evasion', skillMod.getBase())
return
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- actor.deductSkillMod('display_only_dodge', base)
- actor.deductSkillMod('display_only_parry', base / 2)
- actor.deductSkillMod('display_only_evasion', base)
- return
-
\ No newline at end of file
diff --git a/scripts/skillMods/agility_modified.py b/scripts/skillMods/agility_modified.py
index 80b31400..7978281a 100644
--- a/scripts/skillMods/agility_modified.py
+++ b/scripts/skillMods/agility_modified.py
@@ -1,16 +1,14 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- actor.addSkillMod('display_only_dodge', base)
- actor.addSkillMod('display_only_parry', base / 2)
- actor.addSkillMod('display_only_evasion', base)
+def add(core, actor, skillMod, divisor):
+ core.skillModService.addSkillMod(actor, 'display_only_dodge', skillMod.getBase())
+ core.skillModService.addSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2)
+ core.skillModService.addSkillMod(actor, 'display_only_evasion', skillMod.getBase())
+ return
+
+def deduct(core, actor, skillMod, divisor):
+ core.skillModService.deductSkillMod(actor, 'display_only_dodge', skillMod.getBase())
+ core.skillModService.deductSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2)
+ core.skillModService.deductSkillMod(actor, 'display_only_evasion', skillMod.getBase())
return
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- actor.deductSkillMod('display_only_dodge', base)
- actor.deductSkillMod('display_only_parry', base / 2)
- actor.deductSkillMod('display_only_evasion', base)
- return
-
\ No newline at end of file
diff --git a/scripts/skillMods/area_damage_resist_full_percentage.py b/scripts/skillMods/area_damage_resist_full_percentage.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/area_damage_resist_full_percentage.py
+++ b/scripts/skillMods/area_damage_resist_full_percentage.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/armor_assembly.py b/scripts/skillMods/armor_assembly.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/armor_assembly.py
+++ b/scripts/skillMods/armor_assembly.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/armor_customization.py b/scripts/skillMods/armor_customization.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/armor_customization.py
+++ b/scripts/skillMods/armor_customization.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/armor_experimentation.py b/scripts/skillMods/armor_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/armor_experimentation.py
+++ b/scripts/skillMods/armor_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/bh_dire_root.py b/scripts/skillMods/bh_dire_root.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/bh_dire_root.py
+++ b/scripts/skillMods/bh_dire_root.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/bh_dire_snare.py b/scripts/skillMods/bh_dire_snare.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/bh_dire_snare.py
+++ b/scripts/skillMods/bh_dire_snare.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/bm_creature_knowledge.py b/scripts/skillMods/bm_creature_knowledge.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/bm_creature_knowledge.py
+++ b/scripts/skillMods/bm_creature_knowledge.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/bm_incubator_dps_armor.py b/scripts/skillMods/bm_incubator_dps_armor.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/bm_incubator_dps_armor.py
+++ b/scripts/skillMods/bm_incubator_dps_armor.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/bm_mutation_chance_increase.py b/scripts/skillMods/bm_mutation_chance_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/bm_mutation_chance_increase.py
+++ b/scripts/skillMods/bm_mutation_chance_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/bm_xp_mod_boost.py b/scripts/skillMods/bm_xp_mod_boost.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/bm_xp_mod_boost.py
+++ b/scripts/skillMods/bm_xp_mod_boost.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/booster_assembly.py b/scripts/skillMods/booster_assembly.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/booster_assembly.py
+++ b/scripts/skillMods/booster_assembly.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/booster_experimentation.py b/scripts/skillMods/booster_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/booster_experimentation.py
+++ b/scripts/skillMods/booster_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/bounty_hunter.py b/scripts/skillMods/bounty_hunter.py
index ee7769e2..6cd11173 100644
--- a/scripts/skillMods/bounty_hunter.py
+++ b/scripts/skillMods/bounty_hunter.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, divisor):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, divisor):
return
\ No newline at end of file
diff --git a/scripts/skillMods/bounty_mission_level.py b/scripts/skillMods/bounty_mission_level.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/bounty_mission_level.py
+++ b/scripts/skillMods/bounty_mission_level.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/camouflage.py b/scripts/skillMods/camouflage.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/camouflage.py
+++ b/scripts/skillMods/camouflage.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/chassis_assembly.py b/scripts/skillMods/chassis_assembly.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/chassis_assembly.py
+++ b/scripts/skillMods/chassis_assembly.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/chassis_experimentation.py b/scripts/skillMods/chassis_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/chassis_experimentation.py
+++ b/scripts/skillMods/chassis_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/clothing_assembly.py b/scripts/skillMods/clothing_assembly.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/clothing_assembly.py
+++ b/scripts/skillMods/clothing_assembly.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/clothing_customization.py b/scripts/skillMods/clothing_customization.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/clothing_customization.py
+++ b/scripts/skillMods/clothing_customization.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/clothing_experimentation.py b/scripts/skillMods/clothing_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/clothing_experimentation.py
+++ b/scripts/skillMods/clothing_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/cold.py b/scripts/skillMods/cold.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/cold.py
+++ b/scripts/skillMods/cold.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/combat_block_chance.py b/scripts/skillMods/combat_block_chance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/combat_block_chance.py
+++ b/scripts/skillMods/combat_block_chance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/combat_block_value.py b/scripts/skillMods/combat_block_value.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/combat_block_value.py
+++ b/scripts/skillMods/combat_block_value.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/combat_critical_hit_reduction.py b/scripts/skillMods/combat_critical_hit_reduction.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/combat_critical_hit_reduction.py
+++ b/scripts/skillMods/combat_critical_hit_reduction.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/combat_divide_damage_dealt.py b/scripts/skillMods/combat_divide_damage_dealt.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/combat_divide_damage_dealt.py
+++ b/scripts/skillMods/combat_divide_damage_dealt.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/combat_divide_damage_taken.py b/scripts/skillMods/combat_divide_damage_taken.py
index 8d3e11e4..b5c5e291 100644
--- a/scripts/skillMods/combat_divide_damage_taken.py
+++ b/scripts/skillMods/combat_divide_damage_taken.py
@@ -1,9 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
+
\ No newline at end of file
diff --git a/scripts/skillMods/combat_dodge.py b/scripts/skillMods/combat_dodge.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/combat_dodge.py
+++ b/scripts/skillMods/combat_dodge.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/combat_evasion_chance.py b/scripts/skillMods/combat_evasion_chance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/combat_evasion_chance.py
+++ b/scripts/skillMods/combat_evasion_chance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/combat_evasion_value.py b/scripts/skillMods/combat_evasion_value.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/combat_evasion_value.py
+++ b/scripts/skillMods/combat_evasion_value.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/combat_parry.py b/scripts/skillMods/combat_parry.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/combat_parry.py
+++ b/scripts/skillMods/combat_parry.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/combat_slow.py b/scripts/skillMods/combat_slow.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/combat_slow.py
+++ b/scripts/skillMods/combat_slow.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/combat_strikethrough_chance.py b/scripts/skillMods/combat_strikethrough_chance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/combat_strikethrough_chance.py
+++ b/scripts/skillMods/combat_strikethrough_chance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/combat_strikethrough_value.py b/scripts/skillMods/combat_strikethrough_value.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/combat_strikethrough_value.py
+++ b/scripts/skillMods/combat_strikethrough_value.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/constitution.py b/scripts/skillMods/constitution.py
index edf5e01c..299bf30d 100644
--- a/scripts/skillMods/constitution.py
+++ b/scripts/skillMods/constitution.py
@@ -1,14 +1,12 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- actor.setMaxHealth(actor.getMaxHealth() + base * 8)
- actor.setMaxAction(actor.getMaxAction() + base * 2)
+def add(core, actor, skillMod, value):
+ actor.setMaxHealth(actor.getMaxHealth() + skillMod.getBase() * 8)
+ actor.setMaxAction(actor.getMaxAction() + skillMod.getBase() * 2)
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- actor.setMaxHealth(actor.getMaxHealth() - base * 8)
- actor.setMaxAction(actor.getMaxAction() - base * 2)
+
+def deduct(core, actor, skillMod, value):
+ actor.setMaxHealth(actor.getMaxHealth() - skillMod.getBase() * 8)
+ actor.setMaxAction(actor.getMaxAction() - skillMod.getBase() * 2)
return
-
+
\ No newline at end of file
diff --git a/scripts/skillMods/constitution_modified.py b/scripts/skillMods/constitution_modified.py
index edf5e01c..299bf30d 100644
--- a/scripts/skillMods/constitution_modified.py
+++ b/scripts/skillMods/constitution_modified.py
@@ -1,14 +1,12 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- actor.setMaxHealth(actor.getMaxHealth() + base * 8)
- actor.setMaxAction(actor.getMaxAction() + base * 2)
+def add(core, actor, skillMod, value):
+ actor.setMaxHealth(actor.getMaxHealth() + skillMod.getBase() * 8)
+ actor.setMaxAction(actor.getMaxAction() + skillMod.getBase() * 2)
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- actor.setMaxHealth(actor.getMaxHealth() - base * 8)
- actor.setMaxAction(actor.getMaxAction() - base * 2)
+
+def deduct(core, actor, skillMod, value):
+ actor.setMaxHealth(actor.getMaxHealth() - skillMod.getBase() * 8)
+ actor.setMaxAction(actor.getMaxAction() - skillMod.getBase() * 2)
return
-
+
\ No newline at end of file
diff --git a/scripts/skillMods/cooldown_percent_of_group_buff.py b/scripts/skillMods/cooldown_percent_of_group_buff.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/cooldown_percent_of_group_buff.py
+++ b/scripts/skillMods/cooldown_percent_of_group_buff.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/crafting_critical_success_bonus.py b/scripts/skillMods/crafting_critical_success_bonus.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/crafting_critical_success_bonus.py
+++ b/scripts/skillMods/crafting_critical_success_bonus.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/creature_harvesting.py b/scripts/skillMods/creature_harvesting.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/creature_harvesting.py
+++ b/scripts/skillMods/creature_harvesting.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/critical_damage_vulnerability.py b/scripts/skillMods/critical_damage_vulnerability.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/critical_damage_vulnerability.py
+++ b/scripts/skillMods/critical_damage_vulnerability.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/critical_hit_vulnerable.py b/scripts/skillMods/critical_hit_vulnerable.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/critical_hit_vulnerable.py
+++ b/scripts/skillMods/critical_hit_vulnerable.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/cybernetic_assembly.py b/scripts/skillMods/cybernetic_assembly.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/cybernetic_assembly.py
+++ b/scripts/skillMods/cybernetic_assembly.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/cybernetic_customization.py b/scripts/skillMods/cybernetic_customization.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/cybernetic_customization.py
+++ b/scripts/skillMods/cybernetic_customization.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/cybernetic_experimentation.py b/scripts/skillMods/cybernetic_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/cybernetic_experimentation.py
+++ b/scripts/skillMods/cybernetic_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/cybernetic_psychosis_resistance.py b/scripts/skillMods/cybernetic_psychosis_resistance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/cybernetic_psychosis_resistance.py
+++ b/scripts/skillMods/cybernetic_psychosis_resistance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/damage_decrease_percentage.py b/scripts/skillMods/damage_decrease_percentage.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/damage_decrease_percentage.py
+++ b/scripts/skillMods/damage_decrease_percentage.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/debuff_purge.py b/scripts/skillMods/debuff_purge.py
index f198037b..b5c5e291 100644
--- a/scripts/skillMods/debuff_purge.py
+++ b/scripts/skillMods/debuff_purge.py
@@ -1,9 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- return
\ No newline at end of file
+
+def deduct(core, actor, skillMod, value):
+ return
+
\ No newline at end of file
diff --git a/scripts/skillMods/defense_reverse.py b/scripts/skillMods/defense_reverse.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/defense_reverse.py
+++ b/scripts/skillMods/defense_reverse.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/detect_hidden.py b/scripts/skillMods/detect_hidden.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/detect_hidden.py
+++ b/scripts/skillMods/detect_hidden.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/display_only_block.py b/scripts/skillMods/display_only_block.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/display_only_block.py
+++ b/scripts/skillMods/display_only_block.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/display_only_critical.py b/scripts/skillMods/display_only_critical.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/display_only_critical.py
+++ b/scripts/skillMods/display_only_critical.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/display_only_dodge.py b/scripts/skillMods/display_only_dodge.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/display_only_dodge.py
+++ b/scripts/skillMods/display_only_dodge.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/display_only_evasion.py b/scripts/skillMods/display_only_evasion.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/display_only_evasion.py
+++ b/scripts/skillMods/display_only_evasion.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/display_only_expertise_critical_hit_pvp_reduction.py b/scripts/skillMods/display_only_expertise_critical_hit_pvp_reduction.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/display_only_expertise_critical_hit_pvp_reduction.py
+++ b/scripts/skillMods/display_only_expertise_critical_hit_pvp_reduction.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/display_only_expertise_critical_hit_reduction.py b/scripts/skillMods/display_only_expertise_critical_hit_reduction.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/display_only_expertise_critical_hit_reduction.py
+++ b/scripts/skillMods/display_only_expertise_critical_hit_reduction.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/display_only_glancing_blow.py b/scripts/skillMods/display_only_glancing_blow.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/display_only_glancing_blow.py
+++ b/scripts/skillMods/display_only_glancing_blow.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/display_only_opp_block_reduction.py b/scripts/skillMods/display_only_opp_block_reduction.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/display_only_opp_block_reduction.py
+++ b/scripts/skillMods/display_only_opp_block_reduction.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/display_only_opp_dodge_reduction.py b/scripts/skillMods/display_only_opp_dodge_reduction.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/display_only_opp_dodge_reduction.py
+++ b/scripts/skillMods/display_only_opp_dodge_reduction.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/display_only_parry.py b/scripts/skillMods/display_only_parry.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/display_only_parry.py
+++ b/scripts/skillMods/display_only_parry.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/display_only_parry_reduction.py b/scripts/skillMods/display_only_parry_reduction.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/display_only_parry_reduction.py
+++ b/scripts/skillMods/display_only_parry_reduction.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/display_only_strikethrough.py b/scripts/skillMods/display_only_strikethrough.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/display_only_strikethrough.py
+++ b/scripts/skillMods/display_only_strikethrough.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/display_only_tohit.py b/scripts/skillMods/display_only_tohit.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/display_only_tohit.py
+++ b/scripts/skillMods/display_only_tohit.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/dot_bleed.py b/scripts/skillMods/dot_bleed.py
index f198037b..b5c5e291 100644
--- a/scripts/skillMods/dot_bleed.py
+++ b/scripts/skillMods/dot_bleed.py
@@ -1,9 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- return
\ No newline at end of file
+
+def deduct(core, actor, skillMod, value):
+ return
+
\ No newline at end of file
diff --git a/scripts/skillMods/dot_divisor_all.py b/scripts/skillMods/dot_divisor_all.py
index f198037b..b5c5e291 100644
--- a/scripts/skillMods/dot_divisor_all.py
+++ b/scripts/skillMods/dot_divisor_all.py
@@ -1,9 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- return
\ No newline at end of file
+
+def deduct(core, actor, skillMod, value):
+ return
+
\ No newline at end of file
diff --git a/scripts/skillMods/dot_fire.py b/scripts/skillMods/dot_fire.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/dot_fire.py
+++ b/scripts/skillMods/dot_fire.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/dot_poison.py b/scripts/skillMods/dot_poison.py
index f198037b..b5c5e291 100644
--- a/scripts/skillMods/dot_poison.py
+++ b/scripts/skillMods/dot_poison.py
@@ -1,9 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- return
\ No newline at end of file
+
+def deduct(core, actor, skillMod, value):
+ return
+
\ No newline at end of file
diff --git a/scripts/skillMods/dot_resist_all.py b/scripts/skillMods/dot_resist_all.py
index f198037b..b5c5e291 100644
--- a/scripts/skillMods/dot_resist_all.py
+++ b/scripts/skillMods/dot_resist_all.py
@@ -1,9 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- return
\ No newline at end of file
+
+def deduct(core, actor, skillMod, value):
+ return
+
\ No newline at end of file
diff --git a/scripts/skillMods/droid_assembly.py b/scripts/skillMods/droid_assembly.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/droid_assembly.py
+++ b/scripts/skillMods/droid_assembly.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/droid_customization.py b/scripts/skillMods/droid_customization.py
index ee7769e2..6cd11173 100644
--- a/scripts/skillMods/droid_customization.py
+++ b/scripts/skillMods/droid_customization.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, divisor):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, divisor):
return
\ No newline at end of file
diff --git a/scripts/skillMods/droid_experimentation.py b/scripts/skillMods/droid_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/droid_experimentation.py
+++ b/scripts/skillMods/droid_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/droid_find_chance.py b/scripts/skillMods/droid_find_chance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/droid_find_chance.py
+++ b/scripts/skillMods/droid_find_chance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/droid_find_speed.py b/scripts/skillMods/droid_find_speed.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/droid_find_speed.py
+++ b/scripts/skillMods/droid_find_speed.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/droid_track_chance.py b/scripts/skillMods/droid_track_chance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/droid_track_chance.py
+++ b/scripts/skillMods/droid_track_chance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/droid_track_speed.py b/scripts/skillMods/droid_track_speed.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/droid_track_speed.py
+++ b/scripts/skillMods/droid_track_speed.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/droid_tracks.py b/scripts/skillMods/droid_tracks.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/droid_tracks.py
+++ b/scripts/skillMods/droid_tracks.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/electricity.py b/scripts/skillMods/electricity.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/electricity.py
+++ b/scripts/skillMods/electricity.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/energy.py b/scripts/skillMods/energy.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/energy.py
+++ b/scripts/skillMods/energy.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/engine_assembly.py b/scripts/skillMods/engine_assembly.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/engine_assembly.py
+++ b/scripts/skillMods/engine_assembly.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/engine_experimentation.py b/scripts/skillMods/engine_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/engine_experimentation.py
+++ b/scripts/skillMods/engine_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/engineering_reverse.py b/scripts/skillMods/engineering_reverse.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/engineering_reverse.py
+++ b/scripts/skillMods/engineering_reverse.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_all.py b/scripts/skillMods/expertise_action_all.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_all.py
+++ b/scripts/skillMods/expertise_action_all.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_carbine.py b/scripts/skillMods/expertise_action_carbine.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_carbine.py
+++ b/scripts/skillMods/expertise_action_carbine.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_damage_line_of_sure.py b/scripts/skillMods/expertise_action_damage_line_of_sure.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_damage_line_of_sure.py
+++ b/scripts/skillMods/expertise_action_damage_line_of_sure.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_co_dm.py b/scripts/skillMods/expertise_action_line_co_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_co_dm.py
+++ b/scripts/skillMods/expertise_action_line_co_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_co_grenade.py b/scripts/skillMods/expertise_action_line_co_grenade.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_co_grenade.py
+++ b/scripts/skillMods/expertise_action_line_co_grenade.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_dm.py b/scripts/skillMods/expertise_action_line_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_dm.py
+++ b/scripts/skillMods/expertise_action_line_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_dm_cc.py b/scripts/skillMods/expertise_action_line_dm_cc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_dm_cc.py
+++ b/scripts/skillMods/expertise_action_line_dm_cc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_dm_crit.py b/scripts/skillMods/expertise_action_line_dm_crit.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_dm_crit.py
+++ b/scripts/skillMods/expertise_action_line_dm_crit.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_fs_ae_dm_cc.py b/scripts/skillMods/expertise_action_line_fs_ae_dm_cc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_fs_ae_dm_cc.py
+++ b/scripts/skillMods/expertise_action_line_fs_ae_dm_cc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_fs_cc_crit.py b/scripts/skillMods/expertise_action_line_fs_cc_crit.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_fs_cc_crit.py
+++ b/scripts/skillMods/expertise_action_line_fs_cc_crit.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_fs_dm.py b/scripts/skillMods/expertise_action_line_fs_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_fs_dm.py
+++ b/scripts/skillMods/expertise_action_line_fs_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_fs_sweep.py b/scripts/skillMods/expertise_action_line_fs_sweep.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_fs_sweep.py
+++ b/scripts/skillMods/expertise_action_line_fs_sweep.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_me_burst.py b/scripts/skillMods/expertise_action_line_me_burst.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_me_burst.py
+++ b/scripts/skillMods/expertise_action_line_me_burst.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_me_dm.py b/scripts/skillMods/expertise_action_line_me_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_me_dm.py
+++ b/scripts/skillMods/expertise_action_line_me_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_me_heal.py b/scripts/skillMods/expertise_action_line_me_heal.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_me_heal.py
+++ b/scripts/skillMods/expertise_action_line_me_heal.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_me_smash.py b/scripts/skillMods/expertise_action_line_me_smash.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_me_smash.py
+++ b/scripts/skillMods/expertise_action_line_me_smash.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_of_aoe.py b/scripts/skillMods/expertise_action_line_of_aoe.py
index f4c71024..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_of_aoe.py
+++ b/scripts/skillMods/expertise_action_line_of_aoe.py
@@ -1,11 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
-
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_of_group_buff.py b/scripts/skillMods/expertise_action_line_of_group_buff.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_of_group_buff.py
+++ b/scripts/skillMods/expertise_action_line_of_group_buff.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_of_paint.py b/scripts/skillMods/expertise_action_line_of_paint.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_of_paint.py
+++ b/scripts/skillMods/expertise_action_line_of_paint.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_of_sure.py b/scripts/skillMods/expertise_action_line_of_sure.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_of_sure.py
+++ b/scripts/skillMods/expertise_action_line_of_sure.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_sm_dm.py b/scripts/skillMods/expertise_action_line_sm_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_sm_dm.py
+++ b/scripts/skillMods/expertise_action_line_sm_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_sp_burst_shadows.py b/scripts/skillMods/expertise_action_line_sp_burst_shadows.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_sp_burst_shadows.py
+++ b/scripts/skillMods/expertise_action_line_sp_burst_shadows.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_sp_dm.py b/scripts/skillMods/expertise_action_line_sp_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_sp_dm.py
+++ b/scripts/skillMods/expertise_action_line_sp_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_sp_dot.py b/scripts/skillMods/expertise_action_line_sp_dot.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_sp_dot.py
+++ b/scripts/skillMods/expertise_action_line_sp_dot.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_sp_hd_melee.py b/scripts/skillMods/expertise_action_line_sp_hd_melee.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_sp_hd_melee.py
+++ b/scripts/skillMods/expertise_action_line_sp_hd_melee.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_sp_smoke.py b/scripts/skillMods/expertise_action_line_sp_smoke.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_sp_smoke.py
+++ b/scripts/skillMods/expertise_action_line_sp_smoke.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_sp_stealth_melee.py b/scripts/skillMods/expertise_action_line_sp_stealth_melee.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_sp_stealth_melee.py
+++ b/scripts/skillMods/expertise_action_line_sp_stealth_melee.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_sp_stealth_ranged.py b/scripts/skillMods/expertise_action_line_sp_stealth_ranged.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_sp_stealth_ranged.py
+++ b/scripts/skillMods/expertise_action_line_sp_stealth_ranged.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_sp_without_trace.py b/scripts/skillMods/expertise_action_line_sp_without_trace.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_sp_without_trace.py
+++ b/scripts/skillMods/expertise_action_line_sp_without_trace.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_line_trap.py b/scripts/skillMods/expertise_action_line_trap.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_line_trap.py
+++ b/scripts/skillMods/expertise_action_line_trap.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_rifle.py b/scripts/skillMods/expertise_action_rifle.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_rifle.py
+++ b/scripts/skillMods/expertise_action_rifle.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_weapon_0.py b/scripts/skillMods/expertise_action_weapon_0.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_weapon_0.py
+++ b/scripts/skillMods/expertise_action_weapon_0.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_weapon_1.py b/scripts/skillMods/expertise_action_weapon_1.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_weapon_1.py
+++ b/scripts/skillMods/expertise_action_weapon_1.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_weapon_10.py b/scripts/skillMods/expertise_action_weapon_10.py
index ee7769e2..6cd11173 100644
--- a/scripts/skillMods/expertise_action_weapon_10.py
+++ b/scripts/skillMods/expertise_action_weapon_10.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, divisor):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, divisor):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_weapon_11.py b/scripts/skillMods/expertise_action_weapon_11.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_weapon_11.py
+++ b/scripts/skillMods/expertise_action_weapon_11.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_weapon_2.py b/scripts/skillMods/expertise_action_weapon_2.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_weapon_2.py
+++ b/scripts/skillMods/expertise_action_weapon_2.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_weapon_3.py b/scripts/skillMods/expertise_action_weapon_3.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_weapon_3.py
+++ b/scripts/skillMods/expertise_action_weapon_3.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_weapon_4.py b/scripts/skillMods/expertise_action_weapon_4.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_weapon_4.py
+++ b/scripts/skillMods/expertise_action_weapon_4.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_weapon_5.py b/scripts/skillMods/expertise_action_weapon_5.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_weapon_5.py
+++ b/scripts/skillMods/expertise_action_weapon_5.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_weapon_6.py b/scripts/skillMods/expertise_action_weapon_6.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_weapon_6.py
+++ b/scripts/skillMods/expertise_action_weapon_6.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_weapon_7.py b/scripts/skillMods/expertise_action_weapon_7.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_weapon_7.py
+++ b/scripts/skillMods/expertise_action_weapon_7.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_weapon_9.py b/scripts/skillMods/expertise_action_weapon_9.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_weapon_9.py
+++ b/scripts/skillMods/expertise_action_weapon_9.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_action_weapon_melee.py b/scripts/skillMods/expertise_action_weapon_melee.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_action_weapon_melee.py
+++ b/scripts/skillMods/expertise_action_weapon_melee.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_aggro_channel.py b/scripts/skillMods/expertise_aggro_channel.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_aggro_channel.py
+++ b/scripts/skillMods/expertise_aggro_channel.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_agro_healing.py b/scripts/skillMods/expertise_agro_healing.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_agro_healing.py
+++ b/scripts/skillMods/expertise_agro_healing.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_area_size_line_co_grenade.py b/scripts/skillMods/expertise_area_size_line_co_grenade.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_area_size_line_co_grenade.py
+++ b/scripts/skillMods/expertise_area_size_line_co_grenade.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_area_size_line_co_remote_detonator.py b/scripts/skillMods/expertise_area_size_line_co_remote_detonator.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_area_size_line_co_remote_detonator.py
+++ b/scripts/skillMods/expertise_area_size_line_co_remote_detonator.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_area_size_line_diretrap.py b/scripts/skillMods/expertise_area_size_line_diretrap.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_area_size_line_diretrap.py
+++ b/scripts/skillMods/expertise_area_size_line_diretrap.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_area_size_line_trap.py b/scripts/skillMods/expertise_area_size_line_trap.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_area_size_line_trap.py
+++ b/scripts/skillMods/expertise_area_size_line_trap.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_area_size_single_fs_mind_trick_2.py b/scripts/skillMods/expertise_area_size_single_fs_mind_trick_2.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_area_size_single_fs_mind_trick_2.py
+++ b/scripts/skillMods/expertise_area_size_single_fs_mind_trick_2.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_armorset_glancing_blow_melee_2.py b/scripts/skillMods/expertise_armorset_glancing_blow_melee_2.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_armorset_glancing_blow_melee_2.py
+++ b/scripts/skillMods/expertise_armorset_glancing_blow_melee_2.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_armorset_glancing_blow_ranged_2.py b/scripts/skillMods/expertise_armorset_glancing_blow_ranged_2.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_armorset_glancing_blow_ranged_2.py
+++ b/scripts/skillMods/expertise_armorset_glancing_blow_ranged_2.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_armorset_melee_block_2.py b/scripts/skillMods/expertise_armorset_melee_block_2.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_armorset_melee_block_2.py
+++ b/scripts/skillMods/expertise_armorset_melee_block_2.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_armorset_protection_1_energy.py b/scripts/skillMods/expertise_armorset_protection_1_energy.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_armorset_protection_1_energy.py
+++ b/scripts/skillMods/expertise_armorset_protection_1_energy.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_armorset_protection_1_kinetic.py b/scripts/skillMods/expertise_armorset_protection_1_kinetic.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_armorset_protection_1_kinetic.py
+++ b/scripts/skillMods/expertise_armorset_protection_1_kinetic.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_armorset_protection_2_energy.py b/scripts/skillMods/expertise_armorset_protection_2_energy.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_armorset_protection_2_energy.py
+++ b/scripts/skillMods/expertise_armorset_protection_2_energy.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_armorset_protection_2_kinetic.py b/scripts/skillMods/expertise_armorset_protection_2_kinetic.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_armorset_protection_2_kinetic.py
+++ b/scripts/skillMods/expertise_armorset_protection_2_kinetic.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_armorset_ranged_dodge_2.py b/scripts/skillMods/expertise_armorset_ranged_dodge_2.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_armorset_ranged_dodge_2.py
+++ b/scripts/skillMods/expertise_armorset_ranged_dodge_2.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_assembly_increase_architect.py b/scripts/skillMods/expertise_assembly_increase_architect.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_assembly_increase_architect.py
+++ b/scripts/skillMods/expertise_assembly_increase_architect.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_assembly_increase_armorsmith.py b/scripts/skillMods/expertise_assembly_increase_armorsmith.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_assembly_increase_armorsmith.py
+++ b/scripts/skillMods/expertise_assembly_increase_armorsmith.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_assembly_increase_artisan.py b/scripts/skillMods/expertise_assembly_increase_artisan.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_assembly_increase_artisan.py
+++ b/scripts/skillMods/expertise_assembly_increase_artisan.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_assembly_increase_chef.py b/scripts/skillMods/expertise_assembly_increase_chef.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_assembly_increase_chef.py
+++ b/scripts/skillMods/expertise_assembly_increase_chef.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_assembly_increase_droid.py b/scripts/skillMods/expertise_assembly_increase_droid.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_assembly_increase_droid.py
+++ b/scripts/skillMods/expertise_assembly_increase_droid.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_assembly_increase_shipwright.py b/scripts/skillMods/expertise_assembly_increase_shipwright.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_assembly_increase_shipwright.py
+++ b/scripts/skillMods/expertise_assembly_increase_shipwright.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_assembly_increase_tailor.py b/scripts/skillMods/expertise_assembly_increase_tailor.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_assembly_increase_tailor.py
+++ b/scripts/skillMods/expertise_assembly_increase_tailor.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_assembly_increase_weaponsmith.py b/scripts/skillMods/expertise_assembly_increase_weaponsmith.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_assembly_increase_weaponsmith.py
+++ b/scripts/skillMods/expertise_assembly_increase_weaponsmith.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_assult_action_buff.py b/scripts/skillMods/expertise_assult_action_buff.py
index ee7769e2..6fd75693 100644
--- a/scripts/skillMods/expertise_assult_action_buff.py
+++ b/scripts/skillMods/expertise_assult_action_buff.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_attacker_action_gain.py b/scripts/skillMods/expertise_attacker_action_gain.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_attacker_action_gain.py
+++ b/scripts/skillMods/expertise_attacker_action_gain.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_aura_maintain.py b/scripts/skillMods/expertise_aura_maintain.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_aura_maintain.py
+++ b/scripts/skillMods/expertise_aura_maintain.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_avoidance_overpower.py b/scripts/skillMods/expertise_avoidance_overpower.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_avoidance_overpower.py
+++ b/scripts/skillMods/expertise_avoidance_overpower.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bh_detect_camo_chance.py b/scripts/skillMods/expertise_bh_detect_camo_chance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bh_detect_camo_chance.py
+++ b/scripts/skillMods/expertise_bh_detect_camo_chance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_add_pet_bar.py b/scripts/skillMods/expertise_bm_add_pet_bar.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_add_pet_bar.py
+++ b/scripts/skillMods/expertise_bm_add_pet_bar.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_dna_harvesting_1.py b/scripts/skillMods/expertise_bm_dna_harvesting_1.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_dna_harvesting_1.py
+++ b/scripts/skillMods/expertise_bm_dna_harvesting_1.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_enhanced_skill_acquisition.py b/scripts/skillMods/expertise_bm_enhanced_skill_acquisition.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_enhanced_skill_acquisition.py
+++ b/scripts/skillMods/expertise_bm_enhanced_skill_acquisition.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_enzyme_enhancement.py b/scripts/skillMods/expertise_bm_enzyme_enhancement.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_enzyme_enhancement.py
+++ b/scripts/skillMods/expertise_bm_enzyme_enhancement.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_genetic_engineering.py b/scripts/skillMods/expertise_bm_genetic_engineering.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_genetic_engineering.py
+++ b/scripts/skillMods/expertise_bm_genetic_engineering.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_improved_pet_heal.py b/scripts/skillMods/expertise_bm_improved_pet_heal.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_improved_pet_heal.py
+++ b/scripts/skillMods/expertise_bm_improved_pet_heal.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_incubation_quality.py b/scripts/skillMods/expertise_bm_incubation_quality.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_incubation_quality.py
+++ b/scripts/skillMods/expertise_bm_incubation_quality.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_incubation_time.py b/scripts/skillMods/expertise_bm_incubation_time.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_incubation_time.py
+++ b/scripts/skillMods/expertise_bm_incubation_time.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_pet_armor.py b/scripts/skillMods/expertise_bm_pet_armor.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_pet_armor.py
+++ b/scripts/skillMods/expertise_bm_pet_armor.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_pet_attack_speed.py b/scripts/skillMods/expertise_bm_pet_attack_speed.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_pet_attack_speed.py
+++ b/scripts/skillMods/expertise_bm_pet_attack_speed.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_pet_damage.py b/scripts/skillMods/expertise_bm_pet_damage.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_pet_damage.py
+++ b/scripts/skillMods/expertise_bm_pet_damage.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_pet_evade_chance.py b/scripts/skillMods/expertise_bm_pet_evade_chance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_pet_evade_chance.py
+++ b/scripts/skillMods/expertise_bm_pet_evade_chance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_pet_evade_value.py b/scripts/skillMods/expertise_bm_pet_evade_value.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_pet_evade_value.py
+++ b/scripts/skillMods/expertise_bm_pet_evade_value.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_pet_happiness.py b/scripts/skillMods/expertise_bm_pet_happiness.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_pet_happiness.py
+++ b/scripts/skillMods/expertise_bm_pet_happiness.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_pet_health.py b/scripts/skillMods/expertise_bm_pet_health.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_pet_health.py
+++ b/scripts/skillMods/expertise_bm_pet_health.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_pet_movement_rate.py b/scripts/skillMods/expertise_bm_pet_movement_rate.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_pet_movement_rate.py
+++ b/scripts/skillMods/expertise_bm_pet_movement_rate.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_pet_recovery.py b/scripts/skillMods/expertise_bm_pet_recovery.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_pet_recovery.py
+++ b/scripts/skillMods/expertise_bm_pet_recovery.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_pet_regen.py b/scripts/skillMods/expertise_bm_pet_regen.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_pet_regen.py
+++ b/scripts/skillMods/expertise_bm_pet_regen.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_pet_revive_time.py b/scripts/skillMods/expertise_bm_pet_revive_time.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_pet_revive_time.py
+++ b/scripts/skillMods/expertise_bm_pet_revive_time.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_self_debuff_reduction.py b/scripts/skillMods/expertise_bm_self_debuff_reduction.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_self_debuff_reduction.py
+++ b/scripts/skillMods/expertise_bm_self_debuff_reduction.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_bm_train_mount.py b/scripts/skillMods/expertise_bm_train_mount.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_bm_train_mount.py
+++ b/scripts/skillMods/expertise_bm_train_mount.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_best_deal_ever.py b/scripts/skillMods/expertise_buff_best_deal_ever.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_best_deal_ever.py
+++ b/scripts/skillMods/expertise_buff_best_deal_ever.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_chance_fs_force_throw_root.py b/scripts/skillMods/expertise_buff_chance_fs_force_throw_root.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_chance_fs_force_throw_root.py
+++ b/scripts/skillMods/expertise_buff_chance_fs_force_throw_root.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_chance_line_fs_ae_dm_cc.py b/scripts/skillMods/expertise_buff_chance_line_fs_ae_dm_cc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_chance_line_fs_ae_dm_cc.py
+++ b/scripts/skillMods/expertise_buff_chance_line_fs_ae_dm_cc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_chance_line_fs_force_throw.py b/scripts/skillMods/expertise_buff_chance_line_fs_force_throw.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_chance_line_fs_force_throw.py
+++ b/scripts/skillMods/expertise_buff_chance_line_fs_force_throw.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_chance_line_fs_heal.py b/scripts/skillMods/expertise_buff_chance_line_fs_heal.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_chance_line_fs_heal.py
+++ b/scripts/skillMods/expertise_buff_chance_line_fs_heal.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_group_snare.py b/scripts/skillMods/expertise_buff_duration_group_snare.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_group_snare.py
+++ b/scripts/skillMods/expertise_buff_duration_group_snare.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_bh_return_fire.py b/scripts/skillMods/expertise_buff_duration_line_bh_return_fire.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_bh_return_fire.py
+++ b/scripts/skillMods/expertise_buff_duration_line_bh_return_fire.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_en_debuff_thrill.py b/scripts/skillMods/expertise_buff_duration_line_en_debuff_thrill.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_en_debuff_thrill.py
+++ b/scripts/skillMods/expertise_buff_duration_line_en_debuff_thrill.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_en_unhealthy_fixation_debuff.py b/scripts/skillMods/expertise_buff_duration_line_en_unhealthy_fixation_debuff.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_en_unhealthy_fixation_debuff.py
+++ b/scripts/skillMods/expertise_buff_duration_line_en_unhealthy_fixation_debuff.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_fs_ae_dm_cc.py b/scripts/skillMods/expertise_buff_duration_line_fs_ae_dm_cc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_fs_ae_dm_cc.py
+++ b/scripts/skillMods/expertise_buff_duration_line_fs_ae_dm_cc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_fs_dm_cc.py b/scripts/skillMods/expertise_buff_duration_line_fs_dm_cc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_fs_dm_cc.py
+++ b/scripts/skillMods/expertise_buff_duration_line_fs_dm_cc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_fs_force_run.py b/scripts/skillMods/expertise_buff_duration_line_fs_force_run.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_fs_force_run.py
+++ b/scripts/skillMods/expertise_buff_duration_line_fs_force_run.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_fs_force_throw.py b/scripts/skillMods/expertise_buff_duration_line_fs_force_throw.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_fs_force_throw.py
+++ b/scripts/skillMods/expertise_buff_duration_line_fs_force_throw.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_fs_heal.py b/scripts/skillMods/expertise_buff_duration_line_fs_heal.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_fs_heal.py
+++ b/scripts/skillMods/expertise_buff_duration_line_fs_heal.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_fs_mind_trick.py b/scripts/skillMods/expertise_buff_duration_line_fs_mind_trick.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_fs_mind_trick.py
+++ b/scripts/skillMods/expertise_buff_duration_line_fs_mind_trick.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_me_debuff.py b/scripts/skillMods/expertise_buff_duration_line_me_debuff.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_me_debuff.py
+++ b/scripts/skillMods/expertise_buff_duration_line_me_debuff.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_me_enhance.py b/scripts/skillMods/expertise_buff_duration_line_me_enhance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_me_enhance.py
+++ b/scripts/skillMods/expertise_buff_duration_line_me_enhance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_of_group_buff.py b/scripts/skillMods/expertise_buff_duration_line_of_group_buff.py
index f4c71024..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_of_group_buff.py
+++ b/scripts/skillMods/expertise_buff_duration_line_of_group_buff.py
@@ -1,11 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
-
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_sm_false_hope.py b/scripts/skillMods/expertise_buff_duration_line_sm_false_hope.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_sm_false_hope.py
+++ b/scripts/skillMods/expertise_buff_duration_line_sm_false_hope.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_sm_impossible_odds.py b/scripts/skillMods/expertise_buff_duration_line_sm_impossible_odds.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_sm_impossible_odds.py
+++ b/scripts/skillMods/expertise_buff_duration_line_sm_impossible_odds.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_sm_skullduggery.py b/scripts/skillMods/expertise_buff_duration_line_sm_skullduggery.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_sm_skullduggery.py
+++ b/scripts/skillMods/expertise_buff_duration_line_sm_skullduggery.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_sp_burst_shadows.py b/scripts/skillMods/expertise_buff_duration_line_sp_burst_shadows.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_sp_burst_shadows.py
+++ b/scripts/skillMods/expertise_buff_duration_line_sp_burst_shadows.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_sp_decoy.py b/scripts/skillMods/expertise_buff_duration_line_sp_decoy.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_sp_decoy.py
+++ b/scripts/skillMods/expertise_buff_duration_line_sp_decoy.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_duration_line_sp_preparation.py b/scripts/skillMods/expertise_buff_duration_line_sp_preparation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_duration_line_sp_preparation.py
+++ b/scripts/skillMods/expertise_buff_duration_line_sp_preparation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_buff_en_void_dance_buff.py b/scripts/skillMods/expertise_buff_en_void_dance_buff.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_buff_en_void_dance_buff.py
+++ b/scripts/skillMods/expertise_buff_en_void_dance_buff.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_burst_fire_devastation_bonus.py b/scripts/skillMods/expertise_burst_fire_devastation_bonus.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_burst_fire_devastation_bonus.py
+++ b/scripts/skillMods/expertise_burst_fire_devastation_bonus.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_co_burst_fire_proc.py b/scripts/skillMods/expertise_co_burst_fire_proc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_co_burst_fire_proc.py
+++ b/scripts/skillMods/expertise_co_burst_fire_proc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_co_flash_bang.py b/scripts/skillMods/expertise_co_flash_bang.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_co_flash_bang.py
+++ b/scripts/skillMods/expertise_co_flash_bang.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_co_muscle_spasm.py b/scripts/skillMods/expertise_co_muscle_spasm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_co_muscle_spasm.py
+++ b/scripts/skillMods/expertise_co_muscle_spasm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_complexity_decrease_architect.py b/scripts/skillMods/expertise_complexity_decrease_architect.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_complexity_decrease_architect.py
+++ b/scripts/skillMods/expertise_complexity_decrease_architect.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_complexity_decrease_armorsmith.py b/scripts/skillMods/expertise_complexity_decrease_armorsmith.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_complexity_decrease_armorsmith.py
+++ b/scripts/skillMods/expertise_complexity_decrease_armorsmith.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_complexity_decrease_chef.py b/scripts/skillMods/expertise_complexity_decrease_chef.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_complexity_decrease_chef.py
+++ b/scripts/skillMods/expertise_complexity_decrease_chef.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_complexity_decrease_droid.py b/scripts/skillMods/expertise_complexity_decrease_droid.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_complexity_decrease_droid.py
+++ b/scripts/skillMods/expertise_complexity_decrease_droid.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_complexity_decrease_shipwright.py b/scripts/skillMods/expertise_complexity_decrease_shipwright.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_complexity_decrease_shipwright.py
+++ b/scripts/skillMods/expertise_complexity_decrease_shipwright.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_complexity_decrease_tailor.py b/scripts/skillMods/expertise_complexity_decrease_tailor.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_complexity_decrease_tailor.py
+++ b/scripts/skillMods/expertise_complexity_decrease_tailor.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_complexity_decrease_weaponsmith.py b/scripts/skillMods/expertise_complexity_decrease_weaponsmith.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_complexity_decrease_weaponsmith.py
+++ b/scripts/skillMods/expertise_complexity_decrease_weaponsmith.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_bh_flawless_strike.py b/scripts/skillMods/expertise_cooldown_line_bh_flawless_strike.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_bh_flawless_strike.py
+++ b/scripts/skillMods/expertise_cooldown_line_bh_flawless_strike.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_bh_return_fire.py b/scripts/skillMods/expertise_cooldown_line_bh_return_fire.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_bh_return_fire.py
+++ b/scripts/skillMods/expertise_cooldown_line_bh_return_fire.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_co_riddle_armor.py b/scripts/skillMods/expertise_cooldown_line_co_riddle_armor.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_co_riddle_armor.py
+++ b/scripts/skillMods/expertise_cooldown_line_co_riddle_armor.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_dm.py b/scripts/skillMods/expertise_cooldown_line_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_dm.py
+++ b/scripts/skillMods/expertise_cooldown_line_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_dm_cc.py b/scripts/skillMods/expertise_cooldown_line_dm_cc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_dm_cc.py
+++ b/scripts/skillMods/expertise_cooldown_line_dm_cc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_dm_crit.py b/scripts/skillMods/expertise_cooldown_line_dm_crit.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_dm_crit.py
+++ b/scripts/skillMods/expertise_cooldown_line_dm_crit.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_fs_ae_dm_cc.py b/scripts/skillMods/expertise_cooldown_line_fs_ae_dm_cc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_fs_ae_dm_cc.py
+++ b/scripts/skillMods/expertise_cooldown_line_fs_ae_dm_cc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_fs_cc_crit.py b/scripts/skillMods/expertise_cooldown_line_fs_cc_crit.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_fs_cc_crit.py
+++ b/scripts/skillMods/expertise_cooldown_line_fs_cc_crit.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_fs_dm.py b/scripts/skillMods/expertise_cooldown_line_fs_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_fs_dm.py
+++ b/scripts/skillMods/expertise_cooldown_line_fs_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_fs_sweep.py b/scripts/skillMods/expertise_cooldown_line_fs_sweep.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_fs_sweep.py
+++ b/scripts/skillMods/expertise_cooldown_line_fs_sweep.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_me_aoe_revive.py b/scripts/skillMods/expertise_cooldown_line_me_aoe_revive.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_me_aoe_revive.py
+++ b/scripts/skillMods/expertise_cooldown_line_me_aoe_revive.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_me_dot.py b/scripts/skillMods/expertise_cooldown_line_me_dot.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_me_dot.py
+++ b/scripts/skillMods/expertise_cooldown_line_me_dot.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_me_evasion.py b/scripts/skillMods/expertise_cooldown_line_me_evasion.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_me_evasion.py
+++ b/scripts/skillMods/expertise_cooldown_line_me_evasion.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_me_revive.py b/scripts/skillMods/expertise_cooldown_line_me_revive.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_me_revive.py
+++ b/scripts/skillMods/expertise_cooldown_line_me_revive.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_me_stasis_self.py b/scripts/skillMods/expertise_cooldown_line_me_stasis_self.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_me_stasis_self.py
+++ b/scripts/skillMods/expertise_cooldown_line_me_stasis_self.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_of_firepower.py b/scripts/skillMods/expertise_cooldown_line_of_firepower.py
index ab7fca99..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_of_firepower.py
+++ b/scripts/skillMods/expertise_cooldown_line_of_firepower.py
@@ -1,19 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- return
- import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_of_heal.py b/scripts/skillMods/expertise_cooldown_line_of_heal.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_of_heal.py
+++ b/scripts/skillMods/expertise_cooldown_line_of_heal.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_of_paint.py b/scripts/skillMods/expertise_cooldown_line_of_paint.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_of_paint.py
+++ b/scripts/skillMods/expertise_cooldown_line_of_paint.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_of_purge.py b/scripts/skillMods/expertise_cooldown_line_of_purge.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_of_purge.py
+++ b/scripts/skillMods/expertise_cooldown_line_of_purge.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_of_sup.py b/scripts/skillMods/expertise_cooldown_line_of_sup.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_of_sup.py
+++ b/scripts/skillMods/expertise_cooldown_line_of_sup.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_of_sure.py b/scripts/skillMods/expertise_cooldown_line_of_sure.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_of_sure.py
+++ b/scripts/skillMods/expertise_cooldown_line_of_sure.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_sh.py b/scripts/skillMods/expertise_cooldown_line_sh.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_sh.py
+++ b/scripts/skillMods/expertise_cooldown_line_sh.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_sm_dm.py b/scripts/skillMods/expertise_cooldown_line_sm_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_sm_dm.py
+++ b/scripts/skillMods/expertise_cooldown_line_sm_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_sm_dm_cc.py b/scripts/skillMods/expertise_cooldown_line_sm_dm_cc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_sm_dm_cc.py
+++ b/scripts/skillMods/expertise_cooldown_line_sm_dm_cc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_sm_false_hope.py b/scripts/skillMods/expertise_cooldown_line_sm_false_hope.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_sm_false_hope.py
+++ b/scripts/skillMods/expertise_cooldown_line_sm_false_hope.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_sp_burst_of_shadows.py b/scripts/skillMods/expertise_cooldown_line_sp_burst_of_shadows.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_sp_burst_of_shadows.py
+++ b/scripts/skillMods/expertise_cooldown_line_sp_burst_of_shadows.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_sp_dm.py b/scripts/skillMods/expertise_cooldown_line_sp_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_sp_dm.py
+++ b/scripts/skillMods/expertise_cooldown_line_sp_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_sp_preparation.py b/scripts/skillMods/expertise_cooldown_line_sp_preparation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_sp_preparation.py
+++ b/scripts/skillMods/expertise_cooldown_line_sp_preparation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_sp_reveal_shadows.py b/scripts/skillMods/expertise_cooldown_line_sp_reveal_shadows.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_sp_reveal_shadows.py
+++ b/scripts/skillMods/expertise_cooldown_line_sp_reveal_shadows.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_sp_smoke.py b/scripts/skillMods/expertise_cooldown_line_sp_smoke.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_sp_smoke.py
+++ b/scripts/skillMods/expertise_cooldown_line_sp_smoke.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_cooldown_line_sp_without_trace.py b/scripts/skillMods/expertise_cooldown_line_sp_without_trace.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_cooldown_line_sp_without_trace.py
+++ b/scripts/skillMods/expertise_cooldown_line_sp_without_trace.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_1h.py b/scripts/skillMods/expertise_critical_1h.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_1h.py
+++ b/scripts/skillMods/expertise_critical_1h.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_2h.py b/scripts/skillMods/expertise_critical_2h.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_2h.py
+++ b/scripts/skillMods/expertise_critical_2h.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_carbine.py b/scripts/skillMods/expertise_critical_carbine.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_carbine.py
+++ b/scripts/skillMods/expertise_critical_carbine.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_heavy.py b/scripts/skillMods/expertise_critical_heavy.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_heavy.py
+++ b/scripts/skillMods/expertise_critical_heavy.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_line_co_dm.py b/scripts/skillMods/expertise_critical_line_co_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_line_co_dm.py
+++ b/scripts/skillMods/expertise_critical_line_co_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_line_dm.py b/scripts/skillMods/expertise_critical_line_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_line_dm.py
+++ b/scripts/skillMods/expertise_critical_line_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_line_dm_crit.py b/scripts/skillMods/expertise_critical_line_dm_crit.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_line_dm_crit.py
+++ b/scripts/skillMods/expertise_critical_line_dm_crit.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_line_en_spiral_kick.py b/scripts/skillMods/expertise_critical_line_en_spiral_kick.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_line_en_spiral_kick.py
+++ b/scripts/skillMods/expertise_critical_line_en_spiral_kick.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_line_fldmot.py b/scripts/skillMods/expertise_critical_line_fldmot.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_line_fldmot.py
+++ b/scripts/skillMods/expertise_critical_line_fldmot.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_line_fs_dm.py b/scripts/skillMods/expertise_critical_line_fs_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_line_fs_dm.py
+++ b/scripts/skillMods/expertise_critical_line_fs_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_line_me_dm.py b/scripts/skillMods/expertise_critical_line_me_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_line_me_dm.py
+++ b/scripts/skillMods/expertise_critical_line_me_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_line_of_aoe.py b/scripts/skillMods/expertise_critical_line_of_aoe.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_line_of_aoe.py
+++ b/scripts/skillMods/expertise_critical_line_of_aoe.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_line_of_sure.py b/scripts/skillMods/expertise_critical_line_of_sure.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_line_of_sure.py
+++ b/scripts/skillMods/expertise_critical_line_of_sure.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_line_sm_dm.py b/scripts/skillMods/expertise_critical_line_sm_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_line_sm_dm.py
+++ b/scripts/skillMods/expertise_critical_line_sm_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_line_sp_dm.py b/scripts/skillMods/expertise_critical_line_sp_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_line_sp_dm.py
+++ b/scripts/skillMods/expertise_critical_line_sp_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_line_sp_stealth_melee.py b/scripts/skillMods/expertise_critical_line_sp_stealth_melee.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_line_sp_stealth_melee.py
+++ b/scripts/skillMods/expertise_critical_line_sp_stealth_melee.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_line_sp_stealth_ranged.py b/scripts/skillMods/expertise_critical_line_sp_stealth_ranged.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_line_sp_stealth_ranged.py
+++ b/scripts/skillMods/expertise_critical_line_sp_stealth_ranged.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_melee.py b/scripts/skillMods/expertise_critical_melee.py
index ee7769e2..4757f6ed 100644
--- a/scripts/skillMods/expertise_critical_melee.py
+++ b/scripts/skillMods/expertise_critical_melee.py
@@ -1,10 +1,16 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
+ core.skillModService.addSkillMod(actor, "expertise_critical_1h", value)
+ core.skillModService.addSkillMod(actor, "expertise_critical_2h", value)
+ core.skillModService.addSkillMod(actor, "expertise_critical_unarmed", value)
+ core.skillModService.addSkillMod(actor, "expertise_critical_polearm", value)
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
+ core.skillModService.deductSkillMod(actor, "expertise_critical_1h", value)
+ core.skillModService.deductSkillMod(actor, "expertise_critical_2h", value)
+ core.skillModService.deductSkillMod(actor, "expertise_critical_unarmed", value)
+ core.skillModService.deductSkillMod(actor, "expertise_critical_polearm", value)
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_niche_all.py b/scripts/skillMods/expertise_critical_niche_all.py
index 4f2871ac..f2d7d723 100644
--- a/scripts/skillMods/expertise_critical_niche_all.py
+++ b/scripts/skillMods/expertise_critical_niche_all.py
@@ -1,12 +1,10 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- core.skillModService.addSkillMod(actor, 'display_only_critical', 100 * (actor.getSkillModBase('expertise_critical_niche_all')))
+def add(core, actor, skillMod, value):
+ core.skillModService.addSkillMod(actor, 'display_only_critical', 100 * skillMod.getBase())
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- core.skillModService.deductSkillMod(actor, 'display_only_critical', 100 * (actor.getSkillModBase('expertise_critical_niche_all')))
+
+def deduct(core, actor, skillMod, value):
+ core.skillModService.deductSkillMod(actor, 'display_only_critical', 100 * skillMod.getBase())
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_niche_creature.py b/scripts/skillMods/expertise_critical_niche_creature.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_niche_creature.py
+++ b/scripts/skillMods/expertise_critical_niche_creature.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_niche_droid.py b/scripts/skillMods/expertise_critical_niche_droid.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_niche_droid.py
+++ b/scripts/skillMods/expertise_critical_niche_droid.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_niche_npc.py b/scripts/skillMods/expertise_critical_niche_npc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_niche_npc.py
+++ b/scripts/skillMods/expertise_critical_niche_npc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_niche_pvp.py b/scripts/skillMods/expertise_critical_niche_pvp.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_niche_pvp.py
+++ b/scripts/skillMods/expertise_critical_niche_pvp.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_pistol.py b/scripts/skillMods/expertise_critical_pistol.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_pistol.py
+++ b/scripts/skillMods/expertise_critical_pistol.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_polearm.py b/scripts/skillMods/expertise_critical_polearm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_polearm.py
+++ b/scripts/skillMods/expertise_critical_polearm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_rifle.py b/scripts/skillMods/expertise_critical_rifle.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_rifle.py
+++ b/scripts/skillMods/expertise_critical_rifle.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_critical_unarmed.py b/scripts/skillMods/expertise_critical_unarmed.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_critical_unarmed.py
+++ b/scripts/skillMods/expertise_critical_unarmed.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_add_to_action.py b/scripts/skillMods/expertise_damage_add_to_action.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_add_to_action.py
+++ b/scripts/skillMods/expertise_damage_add_to_action.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_all.py b/scripts/skillMods/expertise_damage_all.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_all.py
+++ b/scripts/skillMods/expertise_damage_all.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_area_effect.py b/scripts/skillMods/expertise_damage_area_effect.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_area_effect.py
+++ b/scripts/skillMods/expertise_damage_area_effect.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_attacker_action.py b/scripts/skillMods/expertise_damage_attacker_action.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_attacker_action.py
+++ b/scripts/skillMods/expertise_damage_attacker_action.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_convert_to_action.py b/scripts/skillMods/expertise_damage_convert_to_action.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_convert_to_action.py
+++ b/scripts/skillMods/expertise_damage_convert_to_action.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_decrease_chance.py b/scripts/skillMods/expertise_damage_decrease_chance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_decrease_chance.py
+++ b/scripts/skillMods/expertise_damage_decrease_chance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_decrease_percentage.py b/scripts/skillMods/expertise_damage_decrease_percentage.py
index f4c71024..c23ada08 100644
--- a/scripts/skillMods/expertise_damage_decrease_percentage.py
+++ b/scripts/skillMods/expertise_damage_decrease_percentage.py
@@ -1,11 +1,9 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_co_dm.py b/scripts/skillMods/expertise_damage_line_co_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_co_dm.py
+++ b/scripts/skillMods/expertise_damage_line_co_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_co_grenade.py b/scripts/skillMods/expertise_damage_line_co_grenade.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_co_grenade.py
+++ b/scripts/skillMods/expertise_damage_line_co_grenade.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_co_remote_detonator.py b/scripts/skillMods/expertise_damage_line_co_remote_detonator.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_co_remote_detonator.py
+++ b/scripts/skillMods/expertise_damage_line_co_remote_detonator.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_dm.py b/scripts/skillMods/expertise_damage_line_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_dm.py
+++ b/scripts/skillMods/expertise_damage_line_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_dm_cc.py b/scripts/skillMods/expertise_damage_line_dm_cc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_dm_cc.py
+++ b/scripts/skillMods/expertise_damage_line_dm_cc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_dm_crit.py b/scripts/skillMods/expertise_damage_line_dm_crit.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_dm_crit.py
+++ b/scripts/skillMods/expertise_damage_line_dm_crit.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_en_sweeping_pirouette.py b/scripts/skillMods/expertise_damage_line_en_sweeping_pirouette.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_en_sweeping_pirouette.py
+++ b/scripts/skillMods/expertise_damage_line_en_sweeping_pirouette.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_fldmot.py b/scripts/skillMods/expertise_damage_line_fldmot.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_fldmot.py
+++ b/scripts/skillMods/expertise_damage_line_fldmot.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_fs_ae_dm_cc.py b/scripts/skillMods/expertise_damage_line_fs_ae_dm_cc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_fs_ae_dm_cc.py
+++ b/scripts/skillMods/expertise_damage_line_fs_ae_dm_cc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_fs_cc_crit.py b/scripts/skillMods/expertise_damage_line_fs_cc_crit.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_fs_cc_crit.py
+++ b/scripts/skillMods/expertise_damage_line_fs_cc_crit.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_fs_dm.py b/scripts/skillMods/expertise_damage_line_fs_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_fs_dm.py
+++ b/scripts/skillMods/expertise_damage_line_fs_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_fs_dm_cc.py b/scripts/skillMods/expertise_damage_line_fs_dm_cc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_fs_dm_cc.py
+++ b/scripts/skillMods/expertise_damage_line_fs_dm_cc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_fs_force_throw.py b/scripts/skillMods/expertise_damage_line_fs_force_throw.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_fs_force_throw.py
+++ b/scripts/skillMods/expertise_damage_line_fs_force_throw.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_fs_saber_reflect.py b/scripts/skillMods/expertise_damage_line_fs_saber_reflect.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_fs_saber_reflect.py
+++ b/scripts/skillMods/expertise_damage_line_fs_saber_reflect.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_fs_sweep.py b/scripts/skillMods/expertise_damage_line_fs_sweep.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_fs_sweep.py
+++ b/scripts/skillMods/expertise_damage_line_fs_sweep.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_me_dm.py b/scripts/skillMods/expertise_damage_line_me_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_me_dm.py
+++ b/scripts/skillMods/expertise_damage_line_me_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_me_dot.py b/scripts/skillMods/expertise_damage_line_me_dot.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_me_dot.py
+++ b/scripts/skillMods/expertise_damage_line_me_dot.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_of_aoe.py b/scripts/skillMods/expertise_damage_line_of_aoe.py
index f4c71024..c23ada08 100644
--- a/scripts/skillMods/expertise_damage_line_of_aoe.py
+++ b/scripts/skillMods/expertise_damage_line_of_aoe.py
@@ -1,11 +1,9 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_of_paint.py b/scripts/skillMods/expertise_damage_line_of_paint.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_of_paint.py
+++ b/scripts/skillMods/expertise_damage_line_of_paint.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_of_sure.py b/scripts/skillMods/expertise_damage_line_of_sure.py
index f4c71024..c23ada08 100644
--- a/scripts/skillMods/expertise_damage_line_of_sure.py
+++ b/scripts/skillMods/expertise_damage_line_of_sure.py
@@ -1,11 +1,9 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_sm_dm.py b/scripts/skillMods/expertise_damage_line_sm_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_sm_dm.py
+++ b/scripts/skillMods/expertise_damage_line_sm_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_sp_dm.py b/scripts/skillMods/expertise_damage_line_sp_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_sp_dm.py
+++ b/scripts/skillMods/expertise_damage_line_sp_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_sp_hd_melee.py b/scripts/skillMods/expertise_damage_line_sp_hd_melee.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_sp_hd_melee.py
+++ b/scripts/skillMods/expertise_damage_line_sp_hd_melee.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_sp_stealth_melee.py b/scripts/skillMods/expertise_damage_line_sp_stealth_melee.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_sp_stealth_melee.py
+++ b/scripts/skillMods/expertise_damage_line_sp_stealth_melee.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_sp_stealth_ranged.py b/scripts/skillMods/expertise_damage_line_sp_stealth_ranged.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_sp_stealth_ranged.py
+++ b/scripts/skillMods/expertise_damage_line_sp_stealth_ranged.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_vulnerability_of_buff_def.py b/scripts/skillMods/expertise_damage_line_vulnerability_of_buff_def.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_vulnerability_of_buff_def.py
+++ b/scripts/skillMods/expertise_damage_line_vulnerability_of_buff_def.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_line_vulnerability_of_dm.py b/scripts/skillMods/expertise_damage_line_vulnerability_of_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_line_vulnerability_of_dm.py
+++ b/scripts/skillMods/expertise_damage_line_vulnerability_of_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_melee.py b/scripts/skillMods/expertise_damage_melee.py
index f4c71024..c23ada08 100644
--- a/scripts/skillMods/expertise_damage_melee.py
+++ b/scripts/skillMods/expertise_damage_melee.py
@@ -1,11 +1,9 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_pistol.py b/scripts/skillMods/expertise_damage_pistol.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_pistol.py
+++ b/scripts/skillMods/expertise_damage_pistol.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_ranged.py b/scripts/skillMods/expertise_damage_ranged.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_ranged.py
+++ b/scripts/skillMods/expertise_damage_ranged.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_to_healing_fs_ae_dm_cc.py b/scripts/skillMods/expertise_damage_to_healing_fs_ae_dm_cc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_to_healing_fs_ae_dm_cc.py
+++ b/scripts/skillMods/expertise_damage_to_healing_fs_ae_dm_cc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_unarmed.py b/scripts/skillMods/expertise_damage_unarmed.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_unarmed.py
+++ b/scripts/skillMods/expertise_damage_unarmed.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_weapon_0.py b/scripts/skillMods/expertise_damage_weapon_0.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_weapon_0.py
+++ b/scripts/skillMods/expertise_damage_weapon_0.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_weapon_1.py b/scripts/skillMods/expertise_damage_weapon_1.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_weapon_1.py
+++ b/scripts/skillMods/expertise_damage_weapon_1.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_weapon_10.py b/scripts/skillMods/expertise_damage_weapon_10.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_weapon_10.py
+++ b/scripts/skillMods/expertise_damage_weapon_10.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_weapon_11.py b/scripts/skillMods/expertise_damage_weapon_11.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_weapon_11.py
+++ b/scripts/skillMods/expertise_damage_weapon_11.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_weapon_2.py b/scripts/skillMods/expertise_damage_weapon_2.py
index f4c71024..c23ada08 100644
--- a/scripts/skillMods/expertise_damage_weapon_2.py
+++ b/scripts/skillMods/expertise_damage_weapon_2.py
@@ -1,11 +1,9 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_weapon_29.py b/scripts/skillMods/expertise_damage_weapon_29.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_weapon_29.py
+++ b/scripts/skillMods/expertise_damage_weapon_29.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_weapon_3.py b/scripts/skillMods/expertise_damage_weapon_3.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_weapon_3.py
+++ b/scripts/skillMods/expertise_damage_weapon_3.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_weapon_4.py b/scripts/skillMods/expertise_damage_weapon_4.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_weapon_4.py
+++ b/scripts/skillMods/expertise_damage_weapon_4.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_weapon_5.py b/scripts/skillMods/expertise_damage_weapon_5.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_weapon_5.py
+++ b/scripts/skillMods/expertise_damage_weapon_5.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_weapon_6.py b/scripts/skillMods/expertise_damage_weapon_6.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_weapon_6.py
+++ b/scripts/skillMods/expertise_damage_weapon_6.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_weapon_7.py b/scripts/skillMods/expertise_damage_weapon_7.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_weapon_7.py
+++ b/scripts/skillMods/expertise_damage_weapon_7.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_weapon_9.py b/scripts/skillMods/expertise_damage_weapon_9.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_weapon_9.py
+++ b/scripts/skillMods/expertise_damage_weapon_9.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_damage_weapon_all.py b/scripts/skillMods/expertise_damage_weapon_all.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_damage_weapon_all.py
+++ b/scripts/skillMods/expertise_damage_weapon_all.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_delay_line_co_remote_detonator.py b/scripts/skillMods/expertise_delay_line_co_remote_detonator.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_delay_line_co_remote_detonator.py
+++ b/scripts/skillMods/expertise_delay_line_co_remote_detonator.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_devastation_bonus.py b/scripts/skillMods/expertise_devastation_bonus.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_devastation_bonus.py
+++ b/scripts/skillMods/expertise_devastation_bonus.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_dodge.py b/scripts/skillMods/expertise_dodge.py
index f4c71024..c23ada08 100644
--- a/scripts/skillMods/expertise_dodge.py
+++ b/scripts/skillMods/expertise_dodge.py
@@ -1,11 +1,9 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_dot_absorption_all.py b/scripts/skillMods/expertise_dot_absorption_all.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_dot_absorption_all.py
+++ b/scripts/skillMods/expertise_dot_absorption_all.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_dot_damage_line_sp_stealth_melee.py b/scripts/skillMods/expertise_dot_damage_line_sp_stealth_melee.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_dot_damage_line_sp_stealth_melee.py
+++ b/scripts/skillMods/expertise_dot_damage_line_sp_stealth_melee.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_dot_damage_line_sp_stealth_ranged.py b/scripts/skillMods/expertise_dot_damage_line_sp_stealth_ranged.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_dot_damage_line_sp_stealth_ranged.py
+++ b/scripts/skillMods/expertise_dot_damage_line_sp_stealth_ranged.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_dot_duration_line_co_armor_splash.py b/scripts/skillMods/expertise_dot_duration_line_co_armor_splash.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_dot_duration_line_co_armor_splash.py
+++ b/scripts/skillMods/expertise_dot_duration_line_co_armor_splash.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_dot_duration_line_co_grenade.py b/scripts/skillMods/expertise_dot_duration_line_co_grenade.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_dot_duration_line_co_grenade.py
+++ b/scripts/skillMods/expertise_dot_duration_line_co_grenade.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_dot_duration_line_co_it_burns.py b/scripts/skillMods/expertise_dot_duration_line_co_it_burns.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_dot_duration_line_co_it_burns.py
+++ b/scripts/skillMods/expertise_dot_duration_line_co_it_burns.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_dot_duration_line_co_shock_tracer.py b/scripts/skillMods/expertise_dot_duration_line_co_shock_tracer.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_dot_duration_line_co_shock_tracer.py
+++ b/scripts/skillMods/expertise_dot_duration_line_co_shock_tracer.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_dot_duration_line_me_dot.py b/scripts/skillMods/expertise_dot_duration_line_me_dot.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_dot_duration_line_me_dot.py
+++ b/scripts/skillMods/expertise_dot_duration_line_me_dot.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_dot_increase.py b/scripts/skillMods/expertise_dot_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_dot_increase.py
+++ b/scripts/skillMods/expertise_dot_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_double_deal_chance.py b/scripts/skillMods/expertise_double_deal_chance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_double_deal_chance.py
+++ b/scripts/skillMods/expertise_double_deal_chance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_double_hit_chance.py b/scripts/skillMods/expertise_double_hit_chance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_double_hit_chance.py
+++ b/scripts/skillMods/expertise_double_hit_chance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_dueterium_rounds_proc.py b/scripts/skillMods/expertise_dueterium_rounds_proc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_dueterium_rounds_proc.py
+++ b/scripts/skillMods/expertise_dueterium_rounds_proc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_en_combat_buff_increase.py b/scripts/skillMods/expertise_en_combat_buff_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_en_combat_buff_increase.py
+++ b/scripts/skillMods/expertise_en_combat_buff_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_en_debuff_thrill_increase.py b/scripts/skillMods/expertise_en_debuff_thrill_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_en_debuff_thrill_increase.py
+++ b/scripts/skillMods/expertise_en_debuff_thrill_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_en_holographic_additional_backup.py b/scripts/skillMods/expertise_en_holographic_additional_backup.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_en_holographic_additional_backup.py
+++ b/scripts/skillMods/expertise_en_holographic_additional_backup.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_en_improv.py b/scripts/skillMods/expertise_en_improv.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_en_improv.py
+++ b/scripts/skillMods/expertise_en_improv.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_en_inspire_attrib_increase.py b/scripts/skillMods/expertise_en_inspire_attrib_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_en_inspire_attrib_increase.py
+++ b/scripts/skillMods/expertise_en_inspire_attrib_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_en_inspire_base_point_increase.py b/scripts/skillMods/expertise_en_inspire_base_point_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_en_inspire_base_point_increase.py
+++ b/scripts/skillMods/expertise_en_inspire_base_point_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_en_inspire_buff_duration_increase.py b/scripts/skillMods/expertise_en_inspire_buff_duration_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_en_inspire_buff_duration_increase.py
+++ b/scripts/skillMods/expertise_en_inspire_buff_duration_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_en_inspire_proc_chance_increase.py b/scripts/skillMods/expertise_en_inspire_proc_chance_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_en_inspire_proc_chance_increase.py
+++ b/scripts/skillMods/expertise_en_inspire_proc_chance_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_en_inspire_pulse_duration_increase.py b/scripts/skillMods/expertise_en_inspire_pulse_duration_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_en_inspire_pulse_duration_increase.py
+++ b/scripts/skillMods/expertise_en_inspire_pulse_duration_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_en_inspire_resist_increase.py b/scripts/skillMods/expertise_en_inspire_resist_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_en_inspire_resist_increase.py
+++ b/scripts/skillMods/expertise_en_inspire_resist_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_en_inspire_trader_increase.py b/scripts/skillMods/expertise_en_inspire_trader_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_en_inspire_trader_increase.py
+++ b/scripts/skillMods/expertise_en_inspire_trader_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_en_performance_increase.py b/scripts/skillMods/expertise_en_performance_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_en_performance_increase.py
+++ b/scripts/skillMods/expertise_en_performance_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_evasion_chance.py b/scripts/skillMods/expertise_evasion_chance.py
index 44fc827c..ad63a264 100644
--- a/scripts/skillMods/expertise_evasion_chance.py
+++ b/scripts/skillMods/expertise_evasion_chance.py
@@ -1,12 +1,10 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- core.skillModService.addSkillMod(actor, 'display_only_evasion', 100 * (actor.getSkillModBase('expertise_evasion_chance')))
+def add(core, actor, skillMod, divisor):
+ core.skillModService.addSkillMod(actor, 'display_only_evasion', 100 * skillMod.getBase())
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- core.skillModService.deductSkillMod(actor, 'display_only_evasion', 100 * (actor.getSkillModBase('expertise_evasion_chance')))
+
+def deduct(core, actor, skillMod, divisor):
+ core.skillModService.deductSkillMod(actor, 'display_only_evasion', 100 * skillMod.getBase())
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_evasion_value.py b/scripts/skillMods/expertise_evasion_value.py
index fa2af1aa..b5ccba7f 100644
--- a/scripts/skillMods/expertise_evasion_value.py
+++ b/scripts/skillMods/expertise_evasion_value.py
@@ -1,12 +1,10 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- core.skillModService.addSkillMod(actor, 'combat_evasion_value', (actor.getSkillModBase('expertise_evasion_value')))
+def add(core, actor, skillMod, divisor):
+ core.skillModService.addSkillMod(actor, 'combat_evasion_value', skillMod)
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- core.skillModService.deductSkillMod(actor, 'combat_evasion_value', (actor.getSkillModBase('expertise_evasion_value')))
+
+def deduct(core, actor, skillMod, divisor):
+ core.skillModService.deductSkillMod(actor, 'combat_evasion_value', skillMod)
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_increase_architect.py b/scripts/skillMods/expertise_experimentation_increase_architect.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_increase_architect.py
+++ b/scripts/skillMods/expertise_experimentation_increase_architect.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_increase_armorsmith.py b/scripts/skillMods/expertise_experimentation_increase_armorsmith.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_increase_armorsmith.py
+++ b/scripts/skillMods/expertise_experimentation_increase_armorsmith.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_increase_artisan.py b/scripts/skillMods/expertise_experimentation_increase_artisan.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_increase_artisan.py
+++ b/scripts/skillMods/expertise_experimentation_increase_artisan.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_increase_chef.py b/scripts/skillMods/expertise_experimentation_increase_chef.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_increase_chef.py
+++ b/scripts/skillMods/expertise_experimentation_increase_chef.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_increase_cybernetic.py b/scripts/skillMods/expertise_experimentation_increase_cybernetic.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_increase_cybernetic.py
+++ b/scripts/skillMods/expertise_experimentation_increase_cybernetic.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_increase_droid.py b/scripts/skillMods/expertise_experimentation_increase_droid.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_increase_droid.py
+++ b/scripts/skillMods/expertise_experimentation_increase_droid.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_increase_shipwright.py b/scripts/skillMods/expertise_experimentation_increase_shipwright.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_increase_shipwright.py
+++ b/scripts/skillMods/expertise_experimentation_increase_shipwright.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_increase_tailor.py b/scripts/skillMods/expertise_experimentation_increase_tailor.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_increase_tailor.py
+++ b/scripts/skillMods/expertise_experimentation_increase_tailor.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_increase_weaponsmith.py b/scripts/skillMods/expertise_experimentation_increase_weaponsmith.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_increase_weaponsmith.py
+++ b/scripts/skillMods/expertise_experimentation_increase_weaponsmith.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_point_architect.py b/scripts/skillMods/expertise_experimentation_point_architect.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_point_architect.py
+++ b/scripts/skillMods/expertise_experimentation_point_architect.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_point_armorsmith.py b/scripts/skillMods/expertise_experimentation_point_armorsmith.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_point_armorsmith.py
+++ b/scripts/skillMods/expertise_experimentation_point_armorsmith.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_point_artisan.py b/scripts/skillMods/expertise_experimentation_point_artisan.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_point_artisan.py
+++ b/scripts/skillMods/expertise_experimentation_point_artisan.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_point_chef.py b/scripts/skillMods/expertise_experimentation_point_chef.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_point_chef.py
+++ b/scripts/skillMods/expertise_experimentation_point_chef.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_point_droid.py b/scripts/skillMods/expertise_experimentation_point_droid.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_point_droid.py
+++ b/scripts/skillMods/expertise_experimentation_point_droid.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_point_shipwright.py b/scripts/skillMods/expertise_experimentation_point_shipwright.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_point_shipwright.py
+++ b/scripts/skillMods/expertise_experimentation_point_shipwright.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_point_tailor.py b/scripts/skillMods/expertise_experimentation_point_tailor.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_point_tailor.py
+++ b/scripts/skillMods/expertise_experimentation_point_tailor.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_experimentation_point_weaponsmith.py b/scripts/skillMods/expertise_experimentation_point_weaponsmith.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_experimentation_point_weaponsmith.py
+++ b/scripts/skillMods/expertise_experimentation_point_weaponsmith.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_factory_energy_decrease.py b/scripts/skillMods/expertise_factory_energy_decrease.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_factory_energy_decrease.py
+++ b/scripts/skillMods/expertise_factory_energy_decrease.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_factory_maintenance_decrease.py b/scripts/skillMods/expertise_factory_maintenance_decrease.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_factory_maintenance_decrease.py
+++ b/scripts/skillMods/expertise_factory_maintenance_decrease.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_factory_production_increase.py b/scripts/skillMods/expertise_factory_production_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_factory_production_increase.py
+++ b/scripts/skillMods/expertise_factory_production_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_fast_talk_bonus.py b/scripts/skillMods/expertise_fast_talk_bonus.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_fast_talk_bonus.py
+++ b/scripts/skillMods/expertise_fast_talk_bonus.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_fast_talk_rank.py b/scripts/skillMods/expertise_fast_talk_rank.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_fast_talk_rank.py
+++ b/scripts/skillMods/expertise_fast_talk_rank.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_focus.py b/scripts/skillMods/expertise_focus.py
index 0d10255e..17feedf8 100644
--- a/scripts/skillMods/expertise_focus.py
+++ b/scripts/skillMods/expertise_focus.py
@@ -1,15 +1,13 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- core.skillModService.addSkillMod(actor, 'stamina_modified', (actor.getSkillModBase('expertise_stance_constitution')))
+def add(core, actor, skillMod, divisor):
+ core.skillModService.addSkillMod(actor, 'stamina_modified', (actor.getSkillModBase('expertise_focus_stamina')))
core.skillModService.addSkillMod(actor, 'display_only_critical', 100 * (actor.getSkillModBase('expertise_focus_critical_buff_line')))
core.skillModService.addSkillMod(actor, 'expertise_damage_melee', 1 * (actor.getSkillModBase('expertise_focus_damage_increase')))
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- core.skillModService.deductSkillMod(actor, 'stamina_modified', (actor.getSkillModBase('expertise_stance_constitution')))
+
+def deduct(core, actor, skillMod, divisor):
+ core.skillModService.deductSkillMod(actor, 'stamina_modified', (actor.getSkillModBase('expertise_focus_stamina')))
core.skillModService.deductSkillMod(actor, 'display_only_critical', 100 * (actor.getSkillModBase('expertise_focus_critical_buff_line')))
core.skillModService.deductSkillMod(actor, 'expertise_damage_melee', 1 * (actor.getSkillModBase('expertise_focus_damage_increase')))
return
diff --git a/scripts/skillMods/expertise_focus_critical_buff_line.py b/scripts/skillMods/expertise_focus_critical_buff_line.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_focus_critical_buff_line.py
+++ b/scripts/skillMods/expertise_focus_critical_buff_line.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_focus_damage_increase.py b/scripts/skillMods/expertise_focus_damage_increase.py
new file mode 100644
index 00000000..b5c5e291
--- /dev/null
+++ b/scripts/skillMods/expertise_focus_damage_increase.py
@@ -0,0 +1,8 @@
+import sys
+
+def add(core, actor, skillMod, value):
+ return
+
+def deduct(core, actor, skillMod, value):
+ return
+
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_focus_stamina.py b/scripts/skillMods/expertise_focus_stamina.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_focus_stamina.py
+++ b/scripts/skillMods/expertise_focus_stamina.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_focus_strength.py b/scripts/skillMods/expertise_focus_strength.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_focus_strength.py
+++ b/scripts/skillMods/expertise_focus_strength.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_force_cloak_combat_escape.py b/scripts/skillMods/expertise_force_cloak_combat_escape.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_force_cloak_combat_escape.py
+++ b/scripts/skillMods/expertise_force_cloak_combat_escape.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_freeshot_co_dm.py b/scripts/skillMods/expertise_freeshot_co_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_freeshot_co_dm.py
+++ b/scripts/skillMods/expertise_freeshot_co_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_freeshot_co_grenade.py b/scripts/skillMods/expertise_freeshot_co_grenade.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_freeshot_co_grenade.py
+++ b/scripts/skillMods/expertise_freeshot_co_grenade.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_freeshot_dm.py b/scripts/skillMods/expertise_freeshot_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_freeshot_dm.py
+++ b/scripts/skillMods/expertise_freeshot_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_freeshot_fs_dm.py b/scripts/skillMods/expertise_freeshot_fs_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_freeshot_fs_dm.py
+++ b/scripts/skillMods/expertise_freeshot_fs_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_freeshot_me_debuff.py b/scripts/skillMods/expertise_freeshot_me_debuff.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_freeshot_me_debuff.py
+++ b/scripts/skillMods/expertise_freeshot_me_debuff.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_freeshot_me_dm.py b/scripts/skillMods/expertise_freeshot_me_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_freeshot_me_dm.py
+++ b/scripts/skillMods/expertise_freeshot_me_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_freeshot_me_heal.py b/scripts/skillMods/expertise_freeshot_me_heal.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_freeshot_me_heal.py
+++ b/scripts/skillMods/expertise_freeshot_me_heal.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_freeshot_of_aoe.py b/scripts/skillMods/expertise_freeshot_of_aoe.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_freeshot_of_aoe.py
+++ b/scripts/skillMods/expertise_freeshot_of_aoe.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_freeshot_of_sure.py b/scripts/skillMods/expertise_freeshot_of_sure.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_freeshot_of_sure.py
+++ b/scripts/skillMods/expertise_freeshot_of_sure.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_freeshot_sm_dm.py b/scripts/skillMods/expertise_freeshot_sm_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_freeshot_sm_dm.py
+++ b/scripts/skillMods/expertise_freeshot_sm_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_freeshot_sm_dm_cc.py b/scripts/skillMods/expertise_freeshot_sm_dm_cc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_freeshot_sm_dm_cc.py
+++ b/scripts/skillMods/expertise_freeshot_sm_dm_cc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_freeshot_sp_dm.py b/scripts/skillMods/expertise_freeshot_sp_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_freeshot_sp_dm.py
+++ b/scripts/skillMods/expertise_freeshot_sp_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_fs_force_clarity_1_proc.py b/scripts/skillMods/expertise_fs_force_clarity_1_proc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_fs_force_clarity_1_proc.py
+++ b/scripts/skillMods/expertise_fs_force_clarity_1_proc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_glancing_blow_all.py b/scripts/skillMods/expertise_glancing_blow_all.py
index 3f89621b..69f34dd8 100644
--- a/scripts/skillMods/expertise_glancing_blow_all.py
+++ b/scripts/skillMods/expertise_glancing_blow_all.py
@@ -1,12 +1,10 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- core.skillModService.addSkillMod(actor, 'display_only_glancing_blow', 100 * (actor.getSkillModBase('expertise_glancing_blow_all')))
+def add(core, actor, skillMod, divisor):
+ core.skillModService.addSkillMod(actor, 'display_only_glancing_blow', 100 * skillMod.getBase())
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- core.skillModService.deductSkillMod(actor, 'display_only_glancing_blow', 100 * (actor.getSkillModBase('expertise_glancing_blow_all')))
+
+def deduct(core, actor, skillMod, divisor):
+ core.skillModService.deductSkillMod(actor, 'display_only_glancing_blow', 100 * skillMod.getBase())
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_glancing_blow_melee.py b/scripts/skillMods/expertise_glancing_blow_melee.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_glancing_blow_melee.py
+++ b/scripts/skillMods/expertise_glancing_blow_melee.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_glancing_blow_melee_defense.py b/scripts/skillMods/expertise_glancing_blow_melee_defense.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_glancing_blow_melee_defense.py
+++ b/scripts/skillMods/expertise_glancing_blow_melee_defense.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_glancing_blow_ranged.py b/scripts/skillMods/expertise_glancing_blow_ranged.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_glancing_blow_ranged.py
+++ b/scripts/skillMods/expertise_glancing_blow_ranged.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_harvester_collection_increase.py b/scripts/skillMods/expertise_harvester_collection_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_harvester_collection_increase.py
+++ b/scripts/skillMods/expertise_harvester_collection_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_harvester_energy_decrease.py b/scripts/skillMods/expertise_harvester_energy_decrease.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_harvester_energy_decrease.py
+++ b/scripts/skillMods/expertise_harvester_energy_decrease.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_harvester_maintenance_decrease.py b/scripts/skillMods/expertise_harvester_maintenance_decrease.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_harvester_maintenance_decrease.py
+++ b/scripts/skillMods/expertise_harvester_maintenance_decrease.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_havester_storage_increase.py b/scripts/skillMods/expertise_havester_storage_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_havester_storage_increase.py
+++ b/scripts/skillMods/expertise_havester_storage_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_healing_all.py b/scripts/skillMods/expertise_healing_all.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_healing_all.py
+++ b/scripts/skillMods/expertise_healing_all.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_healing_line_fs_heal.py b/scripts/skillMods/expertise_healing_line_fs_heal.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_healing_line_fs_heal.py
+++ b/scripts/skillMods/expertise_healing_line_fs_heal.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_healing_line_me_heal.py b/scripts/skillMods/expertise_healing_line_me_heal.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_healing_line_me_heal.py
+++ b/scripts/skillMods/expertise_healing_line_me_heal.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_healing_line_me_hot.py b/scripts/skillMods/expertise_healing_line_me_hot.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_healing_line_me_hot.py
+++ b/scripts/skillMods/expertise_healing_line_me_hot.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_healing_line_me_hot_ae.py b/scripts/skillMods/expertise_healing_line_me_hot_ae.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_healing_line_me_hot_ae.py
+++ b/scripts/skillMods/expertise_healing_line_me_hot_ae.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_healing_line_of_heal.py b/scripts/skillMods/expertise_healing_line_of_heal.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_healing_line_of_heal.py
+++ b/scripts/skillMods/expertise_healing_line_of_heal.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_healing_line_sm_heal.py b/scripts/skillMods/expertise_healing_line_sm_heal.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_healing_line_sm_heal.py
+++ b/scripts/skillMods/expertise_healing_line_sm_heal.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_healing_line_sp_cloaked_heal.py b/scripts/skillMods/expertise_healing_line_sp_cloaked_heal.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_healing_line_sp_cloaked_heal.py
+++ b/scripts/skillMods/expertise_healing_line_sp_cloaked_heal.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_healing_line_sp_heal.py b/scripts/skillMods/expertise_healing_line_sp_heal.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_healing_line_sp_heal.py
+++ b/scripts/skillMods/expertise_healing_line_sp_heal.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_hit_by_luck.py b/scripts/skillMods/expertise_hit_by_luck.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_hit_by_luck.py
+++ b/scripts/skillMods/expertise_hit_by_luck.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_increase_hit_by_luck.py b/scripts/skillMods/expertise_increase_hit_by_luck.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_increase_hit_by_luck.py
+++ b/scripts/skillMods/expertise_increase_hit_by_luck.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_increase_smuggler_loot.py b/scripts/skillMods/expertise_increase_smuggler_loot.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_increase_smuggler_loot.py
+++ b/scripts/skillMods/expertise_increase_smuggler_loot.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_innate_protection_all.py b/scripts/skillMods/expertise_innate_protection_all.py
index ee7769e2..7cf5648d 100644
--- a/scripts/skillMods/expertise_innate_protection_all.py
+++ b/scripts/skillMods/expertise_innate_protection_all.py
@@ -1,10 +1,20 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, divisor):
+ core.skillModService.addSkillMod(actor, 'energy', skillMod)
+ core.skillModService.addSkillMod(actor, 'kinetic', skillMod)
+ core.skillModService.addSkillMod(actor, 'acid', skillMod)
+ core.skillModService.addSkillMod(actor, 'heat', skillMod)
+ core.skillModService.addSkillMod(actor, 'cold', skillMod)
+ core.skillModService.addSkillMod(actor, 'electricity', skillMod)
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, divisor):
+ core.skillModService.deductSkillMod(actor, 'energy', skillMod)
+ core.skillModService.deductSkillMod(actor, 'kinetic', skillMod)
+ core.skillModService.deductSkillMod(actor, 'acid', skillMod)
+ core.skillModService.deductSkillMod(actor, 'heat', skillMod)
+ core.skillModService.deductSkillMod(actor, 'cold', skillMod)
+ core.skillModService.deductSkillMod(actor, 'electricity', skillMod)
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_innate_protection_energy.py b/scripts/skillMods/expertise_innate_protection_energy.py
index ee7769e2..575c6b90 100644
--- a/scripts/skillMods/expertise_innate_protection_energy.py
+++ b/scripts/skillMods/expertise_innate_protection_energy.py
@@ -1,10 +1,10 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, divisor):
+ core.skillModService.addSkillMod(actor, 'energy', skillMod)
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, divisor):
+ core.skillModService.deductSkillMod(actor, 'energy', skillMod)
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_innate_protection_kinetic.py b/scripts/skillMods/expertise_innate_protection_kinetic.py
index ee7769e2..ca7c4cd7 100644
--- a/scripts/skillMods/expertise_innate_protection_kinetic.py
+++ b/scripts/skillMods/expertise_innate_protection_kinetic.py
@@ -1,10 +1,10 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, divisor):
+ core.skillModService.addSkillMod(actor, 'kinetic', skillMod)
return
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+def deduct(core, actor, skillMod, divisor):
+ core.skillModService.deductSkillMod(actor, 'kinetic', skillMod)
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_innate_reduction_all_player.py b/scripts/skillMods/expertise_innate_reduction_all_player.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_innate_reduction_all_player.py
+++ b/scripts/skillMods/expertise_innate_reduction_all_player.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_junk_dealer_cut.py b/scripts/skillMods/expertise_junk_dealer_cut.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_junk_dealer_cut.py
+++ b/scripts/skillMods/expertise_junk_dealer_cut.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_lucky_break_chance.py b/scripts/skillMods/expertise_lucky_break_chance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_lucky_break_chance.py
+++ b/scripts/skillMods/expertise_lucky_break_chance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_miss_by_luck.py b/scripts/skillMods/expertise_miss_by_luck.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_miss_by_luck.py
+++ b/scripts/skillMods/expertise_miss_by_luck.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_movement_buff_fs_force_run.py b/scripts/skillMods/expertise_movement_buff_fs_force_run.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_movement_buff_fs_force_run.py
+++ b/scripts/skillMods/expertise_movement_buff_fs_force_run.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_movement_buff_invis_sp_buff_invis_1.py b/scripts/skillMods/expertise_movement_buff_invis_sp_buff_invis_1.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_movement_buff_invis_sp_buff_invis_1.py
+++ b/scripts/skillMods/expertise_movement_buff_invis_sp_buff_invis_1.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_movement_buff_invis_sp_buff_stealth_1.py b/scripts/skillMods/expertise_movement_buff_invis_sp_buff_stealth_1.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_movement_buff_invis_sp_buff_stealth_1.py
+++ b/scripts/skillMods/expertise_movement_buff_invis_sp_buff_stealth_1.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_on_target_critical.py b/scripts/skillMods/expertise_on_target_critical.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_on_target_critical.py
+++ b/scripts/skillMods/expertise_on_target_critical.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_on_target_protection.py b/scripts/skillMods/expertise_on_target_protection.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_on_target_protection.py
+++ b/scripts/skillMods/expertise_on_target_protection.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_overridable_protection_generic.py b/scripts/skillMods/expertise_overridable_protection_generic.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_overridable_protection_generic.py
+++ b/scripts/skillMods/expertise_overridable_protection_generic.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_parry.py b/scripts/skillMods/expertise_parry.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_parry.py
+++ b/scripts/skillMods/expertise_parry.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_pet_dodge.py b/scripts/skillMods/expertise_pet_dodge.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_pet_dodge.py
+++ b/scripts/skillMods/expertise_pet_dodge.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_poison_knuckle_proc.py b/scripts/skillMods/expertise_poison_knuckle_proc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_poison_knuckle_proc.py
+++ b/scripts/skillMods/expertise_poison_knuckle_proc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_range_bonus_all.py b/scripts/skillMods/expertise_range_bonus_all.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_range_bonus_all.py
+++ b/scripts/skillMods/expertise_range_bonus_all.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_range_bonus_carbine.py b/scripts/skillMods/expertise_range_bonus_carbine.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_range_bonus_carbine.py
+++ b/scripts/skillMods/expertise_range_bonus_carbine.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_range_bonus_melee.py b/scripts/skillMods/expertise_range_bonus_melee.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_range_bonus_melee.py
+++ b/scripts/skillMods/expertise_range_bonus_melee.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_range_bonus_pistol.py b/scripts/skillMods/expertise_range_bonus_pistol.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_range_bonus_pistol.py
+++ b/scripts/skillMods/expertise_range_bonus_pistol.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_range_bonus_ranged.py b/scripts/skillMods/expertise_range_bonus_ranged.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_range_bonus_ranged.py
+++ b/scripts/skillMods/expertise_range_bonus_ranged.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_resource_quality_increase.py b/scripts/skillMods/expertise_resource_quality_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_resource_quality_increase.py
+++ b/scripts/skillMods/expertise_resource_quality_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_resource_sampling_increase.py b/scripts/skillMods/expertise_resource_sampling_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_resource_sampling_increase.py
+++ b/scripts/skillMods/expertise_resource_sampling_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_resource_sampling_time_decrease.py b/scripts/skillMods/expertise_resource_sampling_time_decrease.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_resource_sampling_time_decrease.py
+++ b/scripts/skillMods/expertise_resource_sampling_time_decrease.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_reverse_engineering_bonus.py b/scripts/skillMods/expertise_reverse_engineering_bonus.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_reverse_engineering_bonus.py
+++ b/scripts/skillMods/expertise_reverse_engineering_bonus.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_riddle_armor.py b/scripts/skillMods/expertise_riddle_armor.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_riddle_armor.py
+++ b/scripts/skillMods/expertise_riddle_armor.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_root_chance_fs_dm_cc.py b/scripts/skillMods/expertise_root_chance_fs_dm_cc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_root_chance_fs_dm_cc.py
+++ b/scripts/skillMods/expertise_root_chance_fs_dm_cc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_saber_block.py b/scripts/skillMods/expertise_saber_block.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_saber_block.py
+++ b/scripts/skillMods/expertise_saber_block.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_skill_buff_glancing_blow_vulnerable.py b/scripts/skillMods/expertise_skill_buff_glancing_blow_vulnerable.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_skill_buff_glancing_blow_vulnerable.py
+++ b/scripts/skillMods/expertise_skill_buff_glancing_blow_vulnerable.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_sly_lie_bonus.py b/scripts/skillMods/expertise_sly_lie_bonus.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_sly_lie_bonus.py
+++ b/scripts/skillMods/expertise_sly_lie_bonus.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_sly_lie_rank.py b/scripts/skillMods/expertise_sly_lie_rank.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_sly_lie_rank.py
+++ b/scripts/skillMods/expertise_sly_lie_rank.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_sm_card_melee_proc.py b/scripts/skillMods/expertise_sm_card_melee_proc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_sm_card_melee_proc.py
+++ b/scripts/skillMods/expertise_sm_card_melee_proc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_sm_card_ranged_proc.py b/scripts/skillMods/expertise_sm_card_ranged_proc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_sm_card_ranged_proc.py
+++ b/scripts/skillMods/expertise_sm_card_ranged_proc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_sm_feeling_lucky_chance_proc.py b/scripts/skillMods/expertise_sm_feeling_lucky_chance_proc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_sm_feeling_lucky_chance_proc.py
+++ b/scripts/skillMods/expertise_sm_feeling_lucky_chance_proc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_sm_melee_proc.py b/scripts/skillMods/expertise_sm_melee_proc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_sm_melee_proc.py
+++ b/scripts/skillMods/expertise_sm_melee_proc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_sm_melee_stun_proc.py b/scripts/skillMods/expertise_sm_melee_stun_proc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_sm_melee_stun_proc.py
+++ b/scripts/skillMods/expertise_sm_melee_stun_proc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_sm_ranged_shot_proc.py b/scripts/skillMods/expertise_sm_ranged_shot_proc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_sm_ranged_shot_proc.py
+++ b/scripts/skillMods/expertise_sm_ranged_shot_proc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_sm_rank_damage_bonus.py b/scripts/skillMods/expertise_sm_rank_damage_bonus.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_sm_rank_damage_bonus.py
+++ b/scripts/skillMods/expertise_sm_rank_damage_bonus.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_sm_rank_range_bonus.py b/scripts/skillMods/expertise_sm_rank_range_bonus.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_sm_rank_range_bonus.py
+++ b/scripts/skillMods/expertise_sm_rank_range_bonus.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_socket_increase_tailor.py b/scripts/skillMods/expertise_socket_increase_tailor.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_socket_increase_tailor.py
+++ b/scripts/skillMods/expertise_socket_increase_tailor.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_sp_cripple_trap_proc_increase.py b/scripts/skillMods/expertise_sp_cripple_trap_proc_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_sp_cripple_trap_proc_increase.py
+++ b/scripts/skillMods/expertise_sp_cripple_trap_proc_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_sp_reveal_shadows_detect_chance_increase.py b/scripts/skillMods/expertise_sp_reveal_shadows_detect_chance_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_sp_reveal_shadows_detect_chance_increase.py
+++ b/scripts/skillMods/expertise_sp_reveal_shadows_detect_chance_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_sp_reveal_shadows_distance_increase.py b/scripts/skillMods/expertise_sp_reveal_shadows_distance_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_sp_reveal_shadows_distance_increase.py
+++ b/scripts/skillMods/expertise_sp_reveal_shadows_distance_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_spot_a_sucker_critical_decrease.py b/scripts/skillMods/expertise_spot_a_sucker_critical_decrease.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_spot_a_sucker_critical_decrease.py
+++ b/scripts/skillMods/expertise_spot_a_sucker_critical_decrease.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_spot_a_sucker_glance_chance.py b/scripts/skillMods/expertise_spot_a_sucker_glance_chance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_spot_a_sucker_glance_chance.py
+++ b/scripts/skillMods/expertise_spot_a_sucker_glance_chance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_stance.py b/scripts/skillMods/expertise_stance.py
index 9d6fa7c6..25bfb4cc 100644
--- a/scripts/skillMods/expertise_stance.py
+++ b/scripts/skillMods/expertise_stance.py
@@ -1,16 +1,12 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, divisor):
core.skillModService.addSkillMod(actor, 'constitution_modified', (actor.getSkillModBase('expertise_stance_constitution')))
core.skillModService.addSkillMod(actor, 'display_only_parry', 100 * (actor.getSkillModBase('expertise_stance_parry')))
- core.skillModService.addSkillMod(actor, 'display_only_evasion', 100 *(actor.getSkillModBase('expertise_stance_evasion')))
-
-
+ core.skillModService.addSkillMod(actor, 'display_only_evasion', 100 * (actor.getSkillModBase('expertise_stance_evasion')))
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, divisor):
core.skillModService.deductSkillMod(actor, 'constitution_modified', (actor.getSkillModBase('expertise_stance_constitution')))
core.skillModService.deductSkillMod(actor, 'display_only_parry', 100 * (actor.getSkillModBase('expertise_stance_parry')))
core.skillModService.deductSkillMod(actor, 'display_only_evasion', 100 * (actor.getSkillModBase('expertise_stance_evasion')))
diff --git a/scripts/skillMods/expertise_stance_constitution.py b/scripts/skillMods/expertise_stance_constitution.py
index ee7769e2..6cd11173 100644
--- a/scripts/skillMods/expertise_stance_constitution.py
+++ b/scripts/skillMods/expertise_stance_constitution.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, divisor):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, divisor):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_stance_evasion.py b/scripts/skillMods/expertise_stance_evasion.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_stance_evasion.py
+++ b/scripts/skillMods/expertise_stance_evasion.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_stance_glance_buff_line.py b/scripts/skillMods/expertise_stance_glance_buff_line.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_stance_glance_buff_line.py
+++ b/scripts/skillMods/expertise_stance_glance_buff_line.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_stance_parry.py b/scripts/skillMods/expertise_stance_parry.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_stance_parry.py
+++ b/scripts/skillMods/expertise_stance_parry.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_stance_riposte.py b/scripts/skillMods/expertise_stance_riposte.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_stance_riposte.py
+++ b/scripts/skillMods/expertise_stance_riposte.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_stance_saber_block.py b/scripts/skillMods/expertise_stance_saber_block.py
index ee7769e2..64962f76 100644
--- a/scripts/skillMods/expertise_stance_saber_block.py
+++ b/scripts/skillMods/expertise_stance_saber_block.py
@@ -1,10 +1,10 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
+ core.skillModService.addSkillMod(actor, 'display_only_parry', skillMod.getBase() * 100)
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
+ core.skillModService.deductSkillMod(actor, 'display_only_parry', skillMod.getBase() * 100)
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_strikethrough_chance.py b/scripts/skillMods/expertise_strikethrough_chance.py
index ee7769e2..47e3d763 100644
--- a/scripts/skillMods/expertise_strikethrough_chance.py
+++ b/scripts/skillMods/expertise_strikethrough_chance.py
@@ -1,10 +1,10 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
+ core.skillModService.addSkillMod(actor, 'display_only_strikethrough', 100 * skillMod.getBase())
+ return
+
+def deduct(core, actor, skillMod, value):
+ core.skillModService.deductSkillMod(actor, 'display_only_strikethrough', 100 * skillMod.getBase())
return
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- return
-
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_underworld_boss.py b/scripts/skillMods/expertise_underworld_boss.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_underworld_boss.py
+++ b/scripts/skillMods/expertise_underworld_boss.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_undiminished_critical_melee.py b/scripts/skillMods/expertise_undiminished_critical_melee.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_undiminished_critical_melee.py
+++ b/scripts/skillMods/expertise_undiminished_critical_melee.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_vendor_cost_decrease.py b/scripts/skillMods/expertise_vendor_cost_decrease.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_vendor_cost_decrease.py
+++ b/scripts/skillMods/expertise_vendor_cost_decrease.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_vendor_item_limit.py b/scripts/skillMods/expertise_vendor_item_limit.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_vendor_item_limit.py
+++ b/scripts/skillMods/expertise_vendor_item_limit.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_vendor_limit_increase.py b/scripts/skillMods/expertise_vendor_limit_increase.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_vendor_limit_increase.py
+++ b/scripts/skillMods/expertise_vendor_limit_increase.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/expertise_youll_regret_that.py b/scripts/skillMods/expertise_youll_regret_that.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/expertise_youll_regret_that.py
+++ b/scripts/skillMods/expertise_youll_regret_that.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/face.py b/scripts/skillMods/face.py
new file mode 100644
index 00000000..6cd11173
--- /dev/null
+++ b/scripts/skillMods/face.py
@@ -0,0 +1,8 @@
+import sys
+
+def add(core, actor, skillMod, divisor):
+ return
+
+def deduct(core, actor, skillMod, divisor):
+ return
+
\ No newline at end of file
diff --git a/scripts/skillMods/factory_speed.py b/scripts/skillMods/factory_speed.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/factory_speed.py
+++ b/scripts/skillMods/factory_speed.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/fast_attack_line_co_grenade.py b/scripts/skillMods/fast_attack_line_co_grenade.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/fast_attack_line_co_grenade.py
+++ b/scripts/skillMods/fast_attack_line_co_grenade.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/fast_attack_line_dm_cc.py b/scripts/skillMods/fast_attack_line_dm_cc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/fast_attack_line_dm_cc.py
+++ b/scripts/skillMods/fast_attack_line_dm_cc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/fast_attack_line_fs_powers.py b/scripts/skillMods/fast_attack_line_fs_powers.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/fast_attack_line_fs_powers.py
+++ b/scripts/skillMods/fast_attack_line_fs_powers.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/fast_attack_line_me_debuff.py b/scripts/skillMods/fast_attack_line_me_debuff.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/fast_attack_line_me_debuff.py
+++ b/scripts/skillMods/fast_attack_line_me_debuff.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/fast_attack_line_me_dm.py b/scripts/skillMods/fast_attack_line_me_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/fast_attack_line_me_dm.py
+++ b/scripts/skillMods/fast_attack_line_me_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/fast_attack_line_me_heal.py b/scripts/skillMods/fast_attack_line_me_heal.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/fast_attack_line_me_heal.py
+++ b/scripts/skillMods/fast_attack_line_me_heal.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/fast_attack_line_me_revive.py b/scripts/skillMods/fast_attack_line_me_revive.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/fast_attack_line_me_revive.py
+++ b/scripts/skillMods/fast_attack_line_me_revive.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/fast_attack_line_of_aoe.py b/scripts/skillMods/fast_attack_line_of_aoe.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/fast_attack_line_of_aoe.py
+++ b/scripts/skillMods/fast_attack_line_of_aoe.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/fast_attack_line_of_heal.py b/scripts/skillMods/fast_attack_line_of_heal.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/fast_attack_line_of_heal.py
+++ b/scripts/skillMods/fast_attack_line_of_heal.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/fast_attack_line_sm_dm.py b/scripts/skillMods/fast_attack_line_sm_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/fast_attack_line_sm_dm.py
+++ b/scripts/skillMods/fast_attack_line_sm_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/fast_attack_line_sp_dm.py b/scripts/skillMods/fast_attack_line_sp_dm.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/fast_attack_line_sp_dm.py
+++ b/scripts/skillMods/fast_attack_line_sp_dm.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/fast_attack_line_sp_perfect.py b/scripts/skillMods/fast_attack_line_sp_perfect.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/fast_attack_line_sp_perfect.py
+++ b/scripts/skillMods/fast_attack_line_sp_perfect.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/fast_attack_line_sp_smoke.py b/scripts/skillMods/fast_attack_line_sp_smoke.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/fast_attack_line_sp_smoke.py
+++ b/scripts/skillMods/fast_attack_line_sp_smoke.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/food_assembly.py b/scripts/skillMods/food_assembly.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/food_assembly.py
+++ b/scripts/skillMods/food_assembly.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/food_experimentation.py b/scripts/skillMods/food_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/food_experimentation.py
+++ b/scripts/skillMods/food_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/force_sensitive.py b/scripts/skillMods/force_sensitive.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/force_sensitive.py
+++ b/scripts/skillMods/force_sensitive.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/general_assembly.py b/scripts/skillMods/general_assembly.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/general_assembly.py
+++ b/scripts/skillMods/general_assembly.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/general_experimentation.py b/scripts/skillMods/general_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/general_experimentation.py
+++ b/scripts/skillMods/general_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/glancing_blow_vulnerable.py b/scripts/skillMods/glancing_blow_vulnerable.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/glancing_blow_vulnerable.py
+++ b/scripts/skillMods/glancing_blow_vulnerable.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/hair.py b/scripts/skillMods/hair.py
new file mode 100644
index 00000000..6cd11173
--- /dev/null
+++ b/scripts/skillMods/hair.py
@@ -0,0 +1,8 @@
+import sys
+
+def add(core, actor, skillMod, divisor):
+ return
+
+def deduct(core, actor, skillMod, divisor):
+ return
+
\ No newline at end of file
diff --git a/scripts/skillMods/healing_action.py b/scripts/skillMods/healing_action.py
index f198037b..026370f5 100644
--- a/scripts/skillMods/healing_action.py
+++ b/scripts/skillMods/healing_action.py
@@ -1,9 +1,9 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, divisor):
+ actor.setAction(actor.getAction() + skillMod.getBase())
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- return
\ No newline at end of file
+
+def deduct(core, actor, skillMod, divisor):
+ return
+
\ No newline at end of file
diff --git a/scripts/skillMods/healing_dance_ability.py b/scripts/skillMods/healing_dance_ability.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/healing_dance_ability.py
+++ b/scripts/skillMods/healing_dance_ability.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/healing_dance_wound.py b/scripts/skillMods/healing_dance_wound.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/healing_dance_wound.py
+++ b/scripts/skillMods/healing_dance_wound.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/healing_health.py b/scripts/skillMods/healing_health.py
index ee7769e2..a5613e79 100644
--- a/scripts/skillMods/healing_health.py
+++ b/scripts/skillMods/healing_health.py
@@ -1,10 +1,9 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
+ actor.setHealth(actor.getHealth() + skillMod.getBase())
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/healing_music_ability.py b/scripts/skillMods/healing_music_ability.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/healing_music_ability.py
+++ b/scripts/skillMods/healing_music_ability.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/healing_music_wound.py b/scripts/skillMods/healing_music_wound.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/healing_music_wound.py
+++ b/scripts/skillMods/healing_music_wound.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/health.py b/scripts/skillMods/health.py
new file mode 100644
index 00000000..7915a5a9
--- /dev/null
+++ b/scripts/skillMods/health.py
@@ -0,0 +1,10 @@
+import sys
+
+def add(core, actor, skillMod, divisor):
+ actor.setMaxHealth(actor.getMaxHealth() + skillMod.getBase())
+ return
+
+def deduct(core, actor, skillMod, divisor):
+ actor.setMaxHealth(actor.getMaxHealth() - skillMod.getBase())
+ return
+
\ No newline at end of file
diff --git a/scripts/skillMods/healthPercent.py b/scripts/skillMods/healthPercent.py
new file mode 100644
index 00000000..db2dbd95
--- /dev/null
+++ b/scripts/skillMods/healthPercent.py
@@ -0,0 +1,12 @@
+import sys
+
+# Temporarily disabled until the skillmod calculation system is refactored
+
+def add(core, actor, skillMod, divisor):
+ #actor.setMaxHealth(actor.getMaxHealth() + int((float(actor.getMaxHealth()) * (float(skillMod.getBase()) / float(100)))))
+ return
+
+def deduct(core, actor, skillMod, divisor):
+ #actor.setMaxHealth(actor.getMaxHealth() - int((actor.getMaxHealth() * (float(skillMod.getBase()) / float(100)))))
+ return
+
\ No newline at end of file
diff --git a/scripts/skillMods/heat.py b/scripts/skillMods/heat.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/heat.py
+++ b/scripts/skillMods/heat.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/hiring.py b/scripts/skillMods/hiring.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/hiring.py
+++ b/scripts/skillMods/hiring.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/incubation_time_reduction.py b/scripts/skillMods/incubation_time_reduction.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/incubation_time_reduction.py
+++ b/scripts/skillMods/incubation_time_reduction.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/instrument_assembly.py b/scripts/skillMods/instrument_assembly.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/instrument_assembly.py
+++ b/scripts/skillMods/instrument_assembly.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/instrument_customization.py b/scripts/skillMods/instrument_customization.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/instrument_customization.py
+++ b/scripts/skillMods/instrument_customization.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/invis.py b/scripts/skillMods/invis.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/invis.py
+++ b/scripts/skillMods/invis.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/jedi_saber_assembly.py b/scripts/skillMods/jedi_saber_assembly.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/jedi_saber_assembly.py
+++ b/scripts/skillMods/jedi_saber_assembly.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/jedi_saber_experimentation.py b/scripts/skillMods/jedi_saber_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/jedi_saber_experimentation.py
+++ b/scripts/skillMods/jedi_saber_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/kill_meter_co_armor_splash_proc.py b/scripts/skillMods/kill_meter_co_armor_splash_proc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/kill_meter_co_armor_splash_proc.py
+++ b/scripts/skillMods/kill_meter_co_armor_splash_proc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/kill_meter_co_it_burns_proc.py b/scripts/skillMods/kill_meter_co_it_burns_proc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/kill_meter_co_it_burns_proc.py
+++ b/scripts/skillMods/kill_meter_co_it_burns_proc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/kill_meter_co_youll_regret_that_reac.py b/scripts/skillMods/kill_meter_co_youll_regret_that_reac.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/kill_meter_co_youll_regret_that_reac.py
+++ b/scripts/skillMods/kill_meter_co_youll_regret_that_reac.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/kill_meter_damage_line_co_grenade.py b/scripts/skillMods/kill_meter_damage_line_co_grenade.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/kill_meter_damage_line_co_grenade.py
+++ b/scripts/skillMods/kill_meter_damage_line_co_grenade.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/kill_meter_damage_weapon_all.py b/scripts/skillMods/kill_meter_damage_weapon_all.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/kill_meter_damage_weapon_all.py
+++ b/scripts/skillMods/kill_meter_damage_weapon_all.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/kinetic.py b/scripts/skillMods/kinetic.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/kinetic.py
+++ b/scripts/skillMods/kinetic.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/level_add_to_damage.py b/scripts/skillMods/level_add_to_damage.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/level_add_to_damage.py
+++ b/scripts/skillMods/level_add_to_damage.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/luck.py b/scripts/skillMods/luck.py
index d036f779..c6ae1f0d 100644
--- a/scripts/skillMods/luck.py
+++ b/scripts/skillMods/luck.py
@@ -1,18 +1,16 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- actor.addSkillMod('display_only_dodge', base / 3)
- actor.addSkillMod('display_only_evasion', base / 3)
- actor.addSkillMod('display_only_critical', base / 3)
- actor.addSkillMod('display_only_strikethrough', base / 2)
+def add(core, actor, skillMod, divisor):
+ core.skillModService.addSkillMod(actor, 'display_only_dodge', skillMod.getBase() / 3)
+ core.skillModService.addSkillMod(actor, 'display_only_evasion', skillMod.getBase() / 3)
+ core.skillModService.addSkillMod(actor, 'display_only_critical', skillMod.getBase() / 3)
+ core.skillModService.addSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2)
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- actor.deductSkillMod('display_only_dodge', base / 3)
- actor.deductSkillMod('display_only_evasion', base / 3)
- actor.deductSkillMod('display_only_critical', base / 3)
- actor.deductSkillMod('display_only_strikethrough', base / 2)
+
+def deduct(core, actor, skillMod, divisor):
+ core.skillModService.deductSkillMod(actor, 'display_only_dodge', skillMod.getBase() / 3)
+ core.skillModService.deductSkillMod(actor, 'display_only_evasion', skillMod.getBase() / 3)
+ core.skillModService.deductSkillMod(actor, 'display_only_critical', skillMod.getBase() / 3)
+ core.skillModService.deductSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2)
return
\ No newline at end of file
diff --git a/scripts/skillMods/luck_modified.py b/scripts/skillMods/luck_modified.py
index d036f779..c6ae1f0d 100644
--- a/scripts/skillMods/luck_modified.py
+++ b/scripts/skillMods/luck_modified.py
@@ -1,18 +1,16 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- actor.addSkillMod('display_only_dodge', base / 3)
- actor.addSkillMod('display_only_evasion', base / 3)
- actor.addSkillMod('display_only_critical', base / 3)
- actor.addSkillMod('display_only_strikethrough', base / 2)
+def add(core, actor, skillMod, divisor):
+ core.skillModService.addSkillMod(actor, 'display_only_dodge', skillMod.getBase() / 3)
+ core.skillModService.addSkillMod(actor, 'display_only_evasion', skillMod.getBase() / 3)
+ core.skillModService.addSkillMod(actor, 'display_only_critical', skillMod.getBase() / 3)
+ core.skillModService.addSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2)
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- actor.deductSkillMod('display_only_dodge', base / 3)
- actor.deductSkillMod('display_only_evasion', base / 3)
- actor.deductSkillMod('display_only_critical', base / 3)
- actor.deductSkillMod('display_only_strikethrough', base / 2)
+
+def deduct(core, actor, skillMod, divisor):
+ core.skillModService.deductSkillMod(actor, 'display_only_dodge', skillMod.getBase() / 3)
+ core.skillModService.deductSkillMod(actor, 'display_only_evasion', skillMod.getBase() / 3)
+ core.skillModService.deductSkillMod(actor, 'display_only_critical', skillMod.getBase() / 3)
+ core.skillModService.deductSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2)
return
\ No newline at end of file
diff --git a/scripts/skillMods/manage_vendor.py b/scripts/skillMods/manage_vendor.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/manage_vendor.py
+++ b/scripts/skillMods/manage_vendor.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/markings.py b/scripts/skillMods/markings.py
new file mode 100644
index 00000000..ef489a26
--- /dev/null
+++ b/scripts/skillMods/markings.py
@@ -0,0 +1,7 @@
+import sys
+
+def add(core, actor, skillMod, divisor):
+ return
+
+def deduct(core, actor, skillMod, divisor):
+ return
\ No newline at end of file
diff --git a/scripts/skillMods/me_doom_chance.py b/scripts/skillMods/me_doom_chance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/me_doom_chance.py
+++ b/scripts/skillMods/me_doom_chance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/milk_exceptional_modified.py b/scripts/skillMods/milk_exceptional_modified.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/milk_exceptional_modified.py
+++ b/scripts/skillMods/milk_exceptional_modified.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/milk_quantity_modified.py b/scripts/skillMods/milk_quantity_modified.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/milk_quantity_modified.py
+++ b/scripts/skillMods/milk_quantity_modified.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/milk_stun_modified.py b/scripts/skillMods/milk_stun_modified.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/milk_stun_modified.py
+++ b/scripts/skillMods/milk_stun_modified.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/misc.py b/scripts/skillMods/misc.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/misc.py
+++ b/scripts/skillMods/misc.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/missile_launching.py b/scripts/skillMods/missile_launching.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/missile_launching.py
+++ b/scripts/skillMods/missile_launching.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/movement.py b/scripts/skillMods/movement.py
index 47ce841d..90148d53 100644
--- a/scripts/skillMods/movement.py
+++ b/scripts/skillMods/movement.py
@@ -1,14 +1,10 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- actor.getSkillMod(name).setModifier(10)
- modifier = actor.getSkillMod(name).getModifier()
- actor.setSpeedMultiplierBase(actor.getSpeedMultiplierBase() + float(float(base) / float(modifier)))
+def add(core, actor, skillMod, divisor):
+ actor.setSpeedMultiplierMod(actor.getSpeedMultiplierMod() + (float(skillMod.getBase()) / float(10)))
return
-def deduct(core, actor, name, base):
- modifier = actor.getSkillMod(name).getModifier()
- actor.setSpeedMultiplierBase(actor.getSpeedMultiplierBase() - float(float(base) / float(modifier)))
- actor.deductSkillMod(name, base)
- return
\ No newline at end of file
+def deduct(core, actor, skillMod, divisor):
+ actor.setSpeedMultiplierMod(actor.getSpeedMultiplierMod() - (float(skillMod.getBase()) / float(10)))
+ return
+
\ No newline at end of file
diff --git a/scripts/skillMods/movement_resist_root.py b/scripts/skillMods/movement_resist_root.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/movement_resist_root.py
+++ b/scripts/skillMods/movement_resist_root.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/movement_resist_snare.py b/scripts/skillMods/movement_resist_snare.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/movement_resist_snare.py
+++ b/scripts/skillMods/movement_resist_snare.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/of_inspired_action_chance.py b/scripts/skillMods/of_inspired_action_chance.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/of_inspired_action_chance.py
+++ b/scripts/skillMods/of_inspired_action_chance.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/pilot_special_tactics.py b/scripts/skillMods/pilot_special_tactics.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/pilot_special_tactics.py
+++ b/scripts/skillMods/pilot_special_tactics.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/piloting.py b/scripts/skillMods/piloting.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/piloting.py
+++ b/scripts/skillMods/piloting.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/politics.py b/scripts/skillMods/politics.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/politics.py
+++ b/scripts/skillMods/politics.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/power_systems.py b/scripts/skillMods/power_systems.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/power_systems.py
+++ b/scripts/skillMods/power_systems.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/power_systems_experimentation.py b/scripts/skillMods/power_systems_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/power_systems_experimentation.py
+++ b/scripts/skillMods/power_systems_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/precision.py b/scripts/skillMods/precision.py
index 6d31b77e..b8fa220c 100644
--- a/scripts/skillMods/precision.py
+++ b/scripts/skillMods/precision.py
@@ -1,18 +1,16 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- actor.addSkillMod('display_only_block', base / 2)
- actor.addSkillMod('display_only_parry', base / 2)
- actor.addSkillMod('display_only_critical', base)
- actor.addSkillMod('display_only_strikethrough', base / 2)
+def add(core, actor, skillMod, divisor):
+ core.skillModService.addSkillMod(actor, 'display_only_block', skillMod.getBase() / 2)
+ core.skillModService.addSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2)
+ core.skillModService.addSkillMod(actor, 'display_only_critical', skillMod.getBase())
+ core.skillModService.addSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2)
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- actor.deductSkillMod('display_only_block', base / 2)
- actor.deductSkillMod('display_only_parry', base / 2)
- actor.deductSkillMod('display_only_critical', base)
- actor.deductSkillMod('display_only_strikethrough', base / 2)
+
+def deduct(core, actor, skillMod, divisor):
+ core.skillModService.deductSkillMod(actor, 'display_only_block', skillMod.getBase() / 2)
+ core.skillModService.deductSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2)
+ core.skillModService.deductSkillMod(actor, 'display_only_critical', skillMod.getBase())
+ core.skillModService.deductSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2)
return
\ No newline at end of file
diff --git a/scripts/skillMods/precision_modified.py b/scripts/skillMods/precision_modified.py
index 6d31b77e..b8fa220c 100644
--- a/scripts/skillMods/precision_modified.py
+++ b/scripts/skillMods/precision_modified.py
@@ -1,18 +1,16 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- actor.addSkillMod('display_only_block', base / 2)
- actor.addSkillMod('display_only_parry', base / 2)
- actor.addSkillMod('display_only_critical', base)
- actor.addSkillMod('display_only_strikethrough', base / 2)
+def add(core, actor, skillMod, divisor):
+ core.skillModService.addSkillMod(actor, 'display_only_block', skillMod.getBase() / 2)
+ core.skillModService.addSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2)
+ core.skillModService.addSkillMod(actor, 'display_only_critical', skillMod.getBase())
+ core.skillModService.addSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2)
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- actor.deductSkillMod('display_only_block', base / 2)
- actor.deductSkillMod('display_only_parry', base / 2)
- actor.deductSkillMod('display_only_critical', base)
- actor.deductSkillMod('display_only_strikethrough', base / 2)
+
+def deduct(core, actor, skillMod, divisor):
+ core.skillModService.deductSkillMod(actor, 'display_only_block', skillMod.getBase() / 2)
+ core.skillModService.deductSkillMod(actor, 'display_only_parry', skillMod.getBase() / 2)
+ core.skillModService.deductSkillMod(actor, 'display_only_critical', skillMod.getBase())
+ core.skillModService.deductSkillMod(actor, 'display_only_strikethrough', skillMod.getBase() / 2)
return
\ No newline at end of file
diff --git a/scripts/skillMods/private_place_bank.py b/scripts/skillMods/private_place_bank.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/private_place_bank.py
+++ b/scripts/skillMods/private_place_bank.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/private_place_cityhall.py b/scripts/skillMods/private_place_cityhall.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/private_place_cityhall.py
+++ b/scripts/skillMods/private_place_cityhall.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/private_place_cloning.py b/scripts/skillMods/private_place_cloning.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/private_place_cloning.py
+++ b/scripts/skillMods/private_place_cloning.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/private_place_exotic_garden.py b/scripts/skillMods/private_place_exotic_garden.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/private_place_exotic_garden.py
+++ b/scripts/skillMods/private_place_exotic_garden.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/private_place_garage.py b/scripts/skillMods/private_place_garage.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/private_place_garage.py
+++ b/scripts/skillMods/private_place_garage.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/private_place_hospital.py b/scripts/skillMods/private_place_hospital.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/private_place_hospital.py
+++ b/scripts/skillMods/private_place_hospital.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/private_place_large_garden.py b/scripts/skillMods/private_place_large_garden.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/private_place_large_garden.py
+++ b/scripts/skillMods/private_place_large_garden.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/private_place_medium_garden.py b/scripts/skillMods/private_place_medium_garden.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/private_place_medium_garden.py
+++ b/scripts/skillMods/private_place_medium_garden.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/private_place_shuttleport.py b/scripts/skillMods/private_place_shuttleport.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/private_place_shuttleport.py
+++ b/scripts/skillMods/private_place_shuttleport.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/private_place_small_garden.py b/scripts/skillMods/private_place_small_garden.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/private_place_small_garden.py
+++ b/scripts/skillMods/private_place_small_garden.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/propulsion_reverse.py b/scripts/skillMods/propulsion_reverse.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/propulsion_reverse.py
+++ b/scripts/skillMods/propulsion_reverse.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/resistance_bleeding.py b/scripts/skillMods/resistance_bleeding.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/resistance_bleeding.py
+++ b/scripts/skillMods/resistance_bleeding.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/resistance_disease.py b/scripts/skillMods/resistance_disease.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/resistance_disease.py
+++ b/scripts/skillMods/resistance_disease.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/resistance_fire.py b/scripts/skillMods/resistance_fire.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/resistance_fire.py
+++ b/scripts/skillMods/resistance_fire.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/resistance_incapacitation.py b/scripts/skillMods/resistance_incapacitation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/resistance_incapacitation.py
+++ b/scripts/skillMods/resistance_incapacitation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/resistance_poison.py b/scripts/skillMods/resistance_poison.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/resistance_poison.py
+++ b/scripts/skillMods/resistance_poison.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/resistance_spice_downer.py b/scripts/skillMods/resistance_spice_downer.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/resistance_spice_downer.py
+++ b/scripts/skillMods/resistance_spice_downer.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/shields_assembly.py b/scripts/skillMods/shields_assembly.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/shields_assembly.py
+++ b/scripts/skillMods/shields_assembly.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/shields_experimentation.py b/scripts/skillMods/shields_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/shields_experimentation.py
+++ b/scripts/skillMods/shields_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/ship_weapon_damage.py b/scripts/skillMods/ship_weapon_damage.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/ship_weapon_damage.py
+++ b/scripts/skillMods/ship_weapon_damage.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/shop_sign.py b/scripts/skillMods/shop_sign.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/shop_sign.py
+++ b/scripts/skillMods/shop_sign.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/slope_move.py b/scripts/skillMods/slope_move.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/slope_move.py
+++ b/scripts/skillMods/slope_move.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_chronicle_master_hanging_sign.py b/scripts/skillMods/special_sign_chronicle_master_hanging_sign.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_chronicle_master_hanging_sign.py
+++ b/scripts/skillMods/special_sign_chronicle_master_hanging_sign.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_chronicle_master_standing_sign.py b/scripts/skillMods/special_sign_chronicle_master_standing_sign.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_chronicle_master_standing_sign.py
+++ b/scripts/skillMods/special_sign_chronicle_master_standing_sign.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_efol_hanging.py b/scripts/skillMods/special_sign_efol_hanging.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_efol_hanging.py
+++ b/scripts/skillMods/special_sign_efol_hanging.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_efol_standing.py b/scripts/skillMods/special_sign_efol_standing.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_efol_standing.py
+++ b/scripts/skillMods/special_sign_efol_standing.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_halloween_hanging_sign.py b/scripts/skillMods/special_sign_halloween_hanging_sign.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_halloween_hanging_sign.py
+++ b/scripts/skillMods/special_sign_halloween_hanging_sign.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_halloween_standing_sign.py b/scripts/skillMods/special_sign_halloween_standing_sign.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_halloween_standing_sign.py
+++ b/scripts/skillMods/special_sign_halloween_standing_sign.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_imp_empire_day_hanging.py b/scripts/skillMods/special_sign_imp_empire_day_hanging.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_imp_empire_day_hanging.py
+++ b/scripts/skillMods/special_sign_imp_empire_day_hanging.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_imp_empire_day_standing.py b/scripts/skillMods/special_sign_imp_empire_day_standing.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_imp_empire_day_standing.py
+++ b/scripts/skillMods/special_sign_imp_empire_day_standing.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_reb_empire_day_hanging.py b/scripts/skillMods/special_sign_reb_empire_day_hanging.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_reb_empire_day_hanging.py
+++ b/scripts/skillMods/special_sign_reb_empire_day_hanging.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_reb_empire_day_standing.py b/scripts/skillMods/special_sign_reb_empire_day_standing.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_reb_empire_day_standing.py
+++ b/scripts/skillMods/special_sign_reb_empire_day_standing.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_tcg_series3.py b/scripts/skillMods/special_sign_tcg_series3.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_tcg_series3.py
+++ b/scripts/skillMods/special_sign_tcg_series3.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_tcg_series5.py b/scripts/skillMods/special_sign_tcg_series5.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_tcg_series5.py
+++ b/scripts/skillMods/special_sign_tcg_series5.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_wod_sm_01_banner.py b/scripts/skillMods/special_sign_wod_sm_01_banner.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_wod_sm_01_banner.py
+++ b/scripts/skillMods/special_sign_wod_sm_01_banner.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_wod_sm_01_hanging.py b/scripts/skillMods/special_sign_wod_sm_01_hanging.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_wod_sm_01_hanging.py
+++ b/scripts/skillMods/special_sign_wod_sm_01_hanging.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_wod_sm_01_standing.py b/scripts/skillMods/special_sign_wod_sm_01_standing.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_wod_sm_01_standing.py
+++ b/scripts/skillMods/special_sign_wod_sm_01_standing.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_wod_sm_02_banner.py b/scripts/skillMods/special_sign_wod_sm_02_banner.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_wod_sm_02_banner.py
+++ b/scripts/skillMods/special_sign_wod_sm_02_banner.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_sign_wod_sm_03_banner.py b/scripts/skillMods/special_sign_wod_sm_03_banner.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_sign_wod_sm_03_banner.py
+++ b/scripts/skillMods/special_sign_wod_sm_03_banner.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_vendor_tcg_series1_bomarr_monk.py b/scripts/skillMods/special_vendor_tcg_series1_bomarr_monk.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_vendor_tcg_series1_bomarr_monk.py
+++ b/scripts/skillMods/special_vendor_tcg_series1_bomarr_monk.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_vendor_tcg_series1_ewok.py b/scripts/skillMods/special_vendor_tcg_series1_ewok.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_vendor_tcg_series1_ewok.py
+++ b/scripts/skillMods/special_vendor_tcg_series1_ewok.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_vendor_tcg_series1_gungan.py b/scripts/skillMods/special_vendor_tcg_series1_gungan.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_vendor_tcg_series1_gungan.py
+++ b/scripts/skillMods/special_vendor_tcg_series1_gungan.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_vendor_tcg_series1_jawa.py b/scripts/skillMods/special_vendor_tcg_series1_jawa.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_vendor_tcg_series1_jawa.py
+++ b/scripts/skillMods/special_vendor_tcg_series1_jawa.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_vendor_tcg_series1_meatlump.py b/scripts/skillMods/special_vendor_tcg_series1_meatlump.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_vendor_tcg_series1_meatlump.py
+++ b/scripts/skillMods/special_vendor_tcg_series1_meatlump.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_vendor_tcg_series1_serving_droid.py b/scripts/skillMods/special_vendor_tcg_series1_serving_droid.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_vendor_tcg_series1_serving_droid.py
+++ b/scripts/skillMods/special_vendor_tcg_series1_serving_droid.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_vendor_tcg_series3_battle_droid.py b/scripts/skillMods/special_vendor_tcg_series3_battle_droid.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_vendor_tcg_series3_battle_droid.py
+++ b/scripts/skillMods/special_vendor_tcg_series3_battle_droid.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_vendor_tcg_series3_nightsister.py b/scripts/skillMods/special_vendor_tcg_series3_nightsister.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_vendor_tcg_series3_nightsister.py
+++ b/scripts/skillMods/special_vendor_tcg_series3_nightsister.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_vendor_tcg_series4_kitonak.py b/scripts/skillMods/special_vendor_tcg_series4_kitonak.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_vendor_tcg_series4_kitonak.py
+++ b/scripts/skillMods/special_vendor_tcg_series4_kitonak.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/special_vendor_tcg_series4_toydarian.py b/scripts/skillMods/special_vendor_tcg_series4_toydarian.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/special_vendor_tcg_series4_toydarian.py
+++ b/scripts/skillMods/special_vendor_tcg_series4_toydarian.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/species.py b/scripts/skillMods/species.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/species.py
+++ b/scripts/skillMods/species.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/species_bothan.py b/scripts/skillMods/species_bothan.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/species_bothan.py
+++ b/scripts/skillMods/species_bothan.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/species_human.py b/scripts/skillMods/species_human.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/species_human.py
+++ b/scripts/skillMods/species_human.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/species_ithorian.py b/scripts/skillMods/species_ithorian.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/species_ithorian.py
+++ b/scripts/skillMods/species_ithorian.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/species_moncal.py b/scripts/skillMods/species_moncal.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/species_moncal.py
+++ b/scripts/skillMods/species_moncal.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/species_rodian.py b/scripts/skillMods/species_rodian.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/species_rodian.py
+++ b/scripts/skillMods/species_rodian.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/species_sullustan.py b/scripts/skillMods/species_sullustan.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/species_sullustan.py
+++ b/scripts/skillMods/species_sullustan.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/species_trandoshan.py b/scripts/skillMods/species_trandoshan.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/species_trandoshan.py
+++ b/scripts/skillMods/species_trandoshan.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/species_twilek.py b/scripts/skillMods/species_twilek.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/species_twilek.py
+++ b/scripts/skillMods/species_twilek.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/species_wookiee.py b/scripts/skillMods/species_wookiee.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/species_wookiee.py
+++ b/scripts/skillMods/species_wookiee.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/species_zabrak.py b/scripts/skillMods/species_zabrak.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/species_zabrak.py
+++ b/scripts/skillMods/species_zabrak.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/stamina.py b/scripts/skillMods/stamina.py
index b58840b6..b08eb75f 100644
--- a/scripts/skillMods/stamina.py
+++ b/scripts/skillMods/stamina.py
@@ -1,14 +1,12 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- actor.setMaxHealth(actor.getMaxHealth() + base * 2)
- actor.setMaxAction(actor.getMaxAction() + base * 8)
+def add(core, actor, skillMod, divisor):
+ actor.setMaxHealth(actor.getMaxHealth() + skillMod.getBase() * 2)
+ actor.setMaxAction(actor.getMaxAction() + skillMod.getBase() * 8)
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- actor.setMaxHealth(actor.getMaxHealth() - base * 2)
- actor.setMaxAction(actor.getMaxAction() - base * 8)
+
+def deduct(core, actor, skillMod, divisor):
+ actor.setMaxHealth(actor.getMaxHealth() - skillMod.getBase() * 2)
+ actor.setMaxAction(actor.getMaxAction() - skillMod.getBase() * 8)
return
-
+
\ No newline at end of file
diff --git a/scripts/skillMods/stamina_modified.py b/scripts/skillMods/stamina_modified.py
index b58840b6..b08eb75f 100644
--- a/scripts/skillMods/stamina_modified.py
+++ b/scripts/skillMods/stamina_modified.py
@@ -1,14 +1,12 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- actor.setMaxHealth(actor.getMaxHealth() + base * 2)
- actor.setMaxAction(actor.getMaxAction() + base * 8)
+def add(core, actor, skillMod, divisor):
+ actor.setMaxHealth(actor.getMaxHealth() + skillMod.getBase() * 2)
+ actor.setMaxAction(actor.getMaxAction() + skillMod.getBase() * 8)
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- actor.setMaxHealth(actor.getMaxHealth() - base * 2)
- actor.setMaxAction(actor.getMaxAction() - base * 8)
+
+def deduct(core, actor, skillMod, divisor):
+ actor.setMaxHealth(actor.getMaxHealth() - skillMod.getBase() * 2)
+ actor.setMaxAction(actor.getMaxAction() - skillMod.getBase() * 8)
return
-
+
\ No newline at end of file
diff --git a/scripts/skillMods/stealth.py b/scripts/skillMods/stealth.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/stealth.py
+++ b/scripts/skillMods/stealth.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/stealth_divisor.py b/scripts/skillMods/stealth_divisor.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/stealth_divisor.py
+++ b/scripts/skillMods/stealth_divisor.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/strength.py b/scripts/skillMods/strength.py
index 4e702217..469cc568 100644
--- a/scripts/skillMods/strength.py
+++ b/scripts/skillMods/strength.py
@@ -1,12 +1,10 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- actor.addSkillMod('display_only_block', base / 2)
+def add(core, actor, skillMod, divisor):
+ core.skillModService.addSkillMod(actor, 'display_only_block', skillMod.getBase() / 2)
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- actor.deductSkillMod('display_only_block', base / 2)
+
+def deduct(core, actor, skillMod, divisor):
+ core.skillModService.deductSkillMod(actor, 'display_only_block', skillMod.getBase() / 2)
return
\ No newline at end of file
diff --git a/scripts/skillMods/strength_modified.py b/scripts/skillMods/strength_modified.py
index 4e702217..469cc568 100644
--- a/scripts/skillMods/strength_modified.py
+++ b/scripts/skillMods/strength_modified.py
@@ -1,12 +1,10 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
- actor.addSkillMod('display_only_block', base / 2)
+def add(core, actor, skillMod, divisor):
+ core.skillModService.addSkillMod(actor, 'display_only_block', skillMod.getBase() / 2)
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
- actor.deductSkillMod('display_only_block', base / 2)
+
+def deduct(core, actor, skillMod, divisor):
+ core.skillModService.deductSkillMod(actor, 'display_only_block', skillMod.getBase() / 2)
return
\ No newline at end of file
diff --git a/scripts/skillMods/strikethrough_vulnerable.py b/scripts/skillMods/strikethrough_vulnerable.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/strikethrough_vulnerable.py
+++ b/scripts/skillMods/strikethrough_vulnerable.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/structure_assembly.py b/scripts/skillMods/structure_assembly.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/structure_assembly.py
+++ b/scripts/skillMods/structure_assembly.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/structure_customization.py b/scripts/skillMods/structure_customization.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/structure_customization.py
+++ b/scripts/skillMods/structure_customization.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/structure_experimentation.py b/scripts/skillMods/structure_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/structure_experimentation.py
+++ b/scripts/skillMods/structure_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/surveying.py b/scripts/skillMods/surveying.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/surveying.py
+++ b/scripts/skillMods/surveying.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/systems_reverse.py b/scripts/skillMods/systems_reverse.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/systems_reverse.py
+++ b/scripts/skillMods/systems_reverse.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/tka_armor.py b/scripts/skillMods/tka_armor.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/tka_armor.py
+++ b/scripts/skillMods/tka_armor.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/trader.py b/scripts/skillMods/trader.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/trader.py
+++ b/scripts/skillMods/trader.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/vendor_item_limit.py b/scripts/skillMods/vendor_item_limit.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/vendor_item_limit.py
+++ b/scripts/skillMods/vendor_item_limit.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/weapon_assembly.py b/scripts/skillMods/weapon_assembly.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/weapon_assembly.py
+++ b/scripts/skillMods/weapon_assembly.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/weapon_experimentation.py b/scripts/skillMods/weapon_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/weapon_experimentation.py
+++ b/scripts/skillMods/weapon_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/weapon_systems.py b/scripts/skillMods/weapon_systems.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/weapon_systems.py
+++ b/scripts/skillMods/weapon_systems.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/skillMods/weapon_systems_experimentation.py b/scripts/skillMods/weapon_systems_experimentation.py
index ee7769e2..b5c5e291 100644
--- a/scripts/skillMods/weapon_systems_experimentation.py
+++ b/scripts/skillMods/weapon_systems_experimentation.py
@@ -1,10 +1,8 @@
import sys
-def add(core, actor, name, base):
- actor.addSkillMod(name, base)
+def add(core, actor, skillMod, value):
return
-
-def deduct(core, actor, name, base):
- actor.deductSkillMod(name, base)
+
+def deduct(core, actor, skillMod, value):
return
\ No newline at end of file
diff --git a/scripts/starter_clothing/combat_brawler_humanoid_female.py b/scripts/starter_clothing/combat_brawler_humanoid_female.py
deleted file mode 100644
index 3a176081..00000000
--- a/scripts/starter_clothing/combat_brawler_humanoid_female.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import sys
-
-def CombatBrawlerHumanoidFemale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s24.iff', object.getPlanet())
- jacket = core.objectService.createObject('object/tangible/wearables/jacket/shared_jacket_s24.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s25.iff', object.getPlanet())
- boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s05.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_primitive_01.iff', object.getPlanet())
- object._add(shirt)
- object._add(jacket)
- object._add(pants)
- object._add(boots)
- object._add(necklace)
\ No newline at end of file
diff --git a/scripts/starter_clothing/combat_brawler_humanoid_male.py b/scripts/starter_clothing/combat_brawler_humanoid_male.py
deleted file mode 100644
index a1ae7072..00000000
--- a/scripts/starter_clothing/combat_brawler_humanoid_male.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import sys
-
-def CombatBrawlerHumanoidMale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s42.iff', object.getPlanet())
- jacket = core.objectService.createObject('object/tangible/wearables/jacket/shared_jacket_s24.iff', object.getPlanet())
- gloves = core.objectService.createObject('object/tangible/wearables/gloves/shared_gloves_s06.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s04.iff', object.getPlanet())
- boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s22.iff', object.getPlanet())
- object._add(shirt)
- object._add(jacket)
- object._add(gloves)
- object._add(pants)
- object._add(boots)
diff --git a/scripts/starter_clothing/combat_brawler_ithorian_female.py b/scripts/starter_clothing/combat_brawler_ithorian_female.py
deleted file mode 100644
index 223236bd..00000000
--- a/scripts/starter_clothing/combat_brawler_ithorian_female.py
+++ /dev/null
@@ -1,15 +0,0 @@
-import sys
-
-def CombatBrawlerIthorianFemale(core, object):
- jacket = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_jacket_s06.iff', object.getPlanet())
- shirt = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_shirt_s01.iff', object.getPlanet())
- bandolier = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_bandolier_s04.iff', object.getPlanet())
- belt = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_belt_s17.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_pants_s01.iff', object.getPlanet())
- gloves = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_gloves_s01.iff', object.getPlanet())
- object._add(jacket)
- object._add(shirt)
- object._add(bandolier)
- object._add(belt)
- object._add(pants)
- object._add(gloves)
\ No newline at end of file
diff --git a/scripts/starter_clothing/combat_brawler_ithorian_male.py b/scripts/starter_clothing/combat_brawler_ithorian_male.py
deleted file mode 100644
index cd6dce81..00000000
--- a/scripts/starter_clothing/combat_brawler_ithorian_male.py
+++ /dev/null
@@ -1,9 +0,0 @@
-import sys
-
-def CombatBrawlerIthorianMale(core, object):
- jacket = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_jacket_s10.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_pants_s02.iff', object.getPlanet())
- bandolier = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_bandolier_s04.iff', object.getPlanet())
- object._add(jacket)
- object._add(pants)
- object._add(bandolier)
\ No newline at end of file
diff --git a/scripts/starter_clothing/combat_brawler_trandoshan_female.py b/scripts/starter_clothing/combat_brawler_trandoshan_female.py
deleted file mode 100644
index 1f755bfe..00000000
--- a/scripts/starter_clothing/combat_brawler_trandoshan_female.py
+++ /dev/null
@@ -1,11 +0,0 @@
-import sys
-
-def CombatBrawlerTrandoshanFemale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s24.iff', object.getPlanet())
- jacket = core.objectService.createObject('object/tangible/wearables/jacket/shared_jacket_s24.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s25.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_primitive_01.iff', object.getPlanet())
- object._add(shirt)
- object._add(jacket)
- object._add(pants)
- object._add(necklace)
\ No newline at end of file
diff --git a/scripts/starter_clothing/combat_brawler_trandoshan_male.py b/scripts/starter_clothing/combat_brawler_trandoshan_male.py
deleted file mode 100644
index 78b4d786..00000000
--- a/scripts/starter_clothing/combat_brawler_trandoshan_male.py
+++ /dev/null
@@ -1,10 +0,0 @@
-import sys
-
-def CombatBrawlerTrandoshanMale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s42.iff', object.getPlanet())
- jacket = core.objectService.createObject('object/tangible/wearables/jacket/shared_jacket_s24.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s04.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
- object._add(jacket)
- object._add(pants)
diff --git a/scripts/starter_clothing/combat_brawler_wookiee_female.py b/scripts/starter_clothing/combat_brawler_wookiee_female.py
deleted file mode 100644
index 917fb2d0..00000000
--- a/scripts/starter_clothing/combat_brawler_wookiee_female.py
+++ /dev/null
@@ -1,7 +0,0 @@
-import sys
-
-def CombatBrawlerWookieeFemale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_shirt_s04.iff', object.getPlanet())
- skirt = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_skirt_s02.iff', object.getPlanet())
- object._add(shirt)
- object._add(skirt)
diff --git a/scripts/starter_clothing/combat_brawler_wookiee_male.py b/scripts/starter_clothing/combat_brawler_wookiee_male.py
deleted file mode 100644
index 8646f4e9..00000000
--- a/scripts/starter_clothing/combat_brawler_wookiee_male.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import sys
-
-def CombatBrawlerWookieeMale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_shirt_s04.iff', object.getPlanet())
- skirt = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_skirt_s02.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
- object._add(skirt)
diff --git a/scripts/starter_clothing/combat_marksman_humanoid_female.py b/scripts/starter_clothing/combat_marksman_humanoid_female.py
deleted file mode 100644
index f43d084b..00000000
--- a/scripts/starter_clothing/combat_marksman_humanoid_female.py
+++ /dev/null
@@ -1,15 +0,0 @@
-import sys
-
-def CombatMarksmanHumanoidFemale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s28.iff', object.getPlanet())
- bandolier = core.objectService.createObject('object/tangible/wearables/bandolier/shared_npe_bandolier.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_primitive_04.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s09.iff', object.getPlanet())
- belt = core.objectService.createObject('object/tangible/wearables/belt/shared_npe_belt_02.iff', object.getPlanet())
- shoes = core.objectService.createObject('object/tangible/wearables/shoes/shared_shoes_s01.iff', object.getPlanet())
- object._add(shirt)
- object._add(bandolier)
- object._add(necklace)
- object._add(pants)
- object._add(belt)
- object._add(shoes)
\ No newline at end of file
diff --git a/scripts/starter_clothing/combat_marksman_humanoid_male.py b/scripts/starter_clothing/combat_marksman_humanoid_male.py
deleted file mode 100644
index 421fed10..00000000
--- a/scripts/starter_clothing/combat_marksman_humanoid_male.py
+++ /dev/null
@@ -1,12 +0,0 @@
-import sys
-
-def CombatMarksmanHumanoidMale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_npe_shirt.iff', object.getPlanet())
- jacket = core.objectService.createObject('object/tangible/wearables/jacket/shared_jacket_s16.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s21.iff', object.getPlanet())
- boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s03.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
- object._add(jacket)
- object._add(pants)
- object._add(boots)
\ No newline at end of file
diff --git a/scripts/starter_clothing/combat_marksman_ithorian_female.py b/scripts/starter_clothing/combat_marksman_ithorian_female.py
deleted file mode 100644
index 4f9903d7..00000000
--- a/scripts/starter_clothing/combat_marksman_ithorian_female.py
+++ /dev/null
@@ -1,12 +0,0 @@
-import sys
-
-def CombatMarksmanIthorianFemale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_shirt_s09.iff', object.getPlanet())
- vest = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_vest_s01.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_pants_s01.iff', object.getPlanet())
- belt = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_belt_s17.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._addshirt)
- object._add(vest)
- object._add(pants)
- object._add(belt)
\ No newline at end of file
diff --git a/scripts/starter_clothing/combat_marksman_ithorian_male.py b/scripts/starter_clothing/combat_marksman_ithorian_male.py
deleted file mode 100644
index 11db70e3..00000000
--- a/scripts/starter_clothing/combat_marksman_ithorian_male.py
+++ /dev/null
@@ -1,12 +0,0 @@
-import sys
-
-def CombatMarksmanIthorianMale(core, object):
- belt = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_belt_s20.iff', object.getPlanet())
- shirt = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_shirt_s11.iff', object.getPlanet())
- jacket = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_jacket_s07.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_pants_s04.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(belt)
- object._add(shirt)
- object._add(jacket)
- object._add(pants)
\ No newline at end of file
diff --git a/scripts/starter_clothing/combat_marksman_trandoshan_female.py b/scripts/starter_clothing/combat_marksman_trandoshan_female.py
deleted file mode 100644
index 569d1ad6..00000000
--- a/scripts/starter_clothing/combat_marksman_trandoshan_female.py
+++ /dev/null
@@ -1,14 +0,0 @@
-import sys
-
-def CombatMarksmanTrandoshanFemale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s28.iff', object.getPlanet())
- bandolier = core.objectService.createObject('object/tangible/wearables/bandolier/shared_npe_bandolier.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_primitive_04.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s09.iff', object.getPlanet())
- belt = core.objectService.createObject('object/tangible/wearables/belt/shared_npe_belt_02.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
- object._add(bandolier)
- object._add(necklace)
- object._add(pants)
- object._add(belt)
\ No newline at end of file
diff --git a/scripts/starter_clothing/combat_marksman_trandoshan_male.py b/scripts/starter_clothing/combat_marksman_trandoshan_male.py
deleted file mode 100644
index 724752b6..00000000
--- a/scripts/starter_clothing/combat_marksman_trandoshan_male.py
+++ /dev/null
@@ -1,10 +0,0 @@
-import sys
-
-def CombatMarksmanTrandoshanMale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_npe_shirt.iff', object.getPlanet())
- jacket = core.objectService.createObject('object/tangible/wearables/jacket/shared_jacket_s16.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s21.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
- object._add(jacket)
- object._add(pants)
\ No newline at end of file
diff --git a/scripts/starter_clothing/combat_marksman_wookiee_female.py b/scripts/starter_clothing/combat_marksman_wookiee_female.py
deleted file mode 100644
index 4c33c52a..00000000
--- a/scripts/starter_clothing/combat_marksman_wookiee_female.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import sys
-
-def CombatMarksmanWookieeFemale(core, object):
- bandolier = core.objectService.createObject('object/tangible/wearables/bandolier/shared_bandolier_s04.iff', object.getPlanet())
- shirt = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_shirt_s03.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(bandolier)
- object._add(shirt)
\ No newline at end of file
diff --git a/scripts/starter_clothing/combat_marksman_wookiee_male.py b/scripts/starter_clothing/combat_marksman_wookiee_male.py
deleted file mode 100644
index b43a9f0a..00000000
--- a/scripts/starter_clothing/combat_marksman_wookiee_male.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import sys
-
-def CombatMarksmanWookieeMale(core, object):
- bandolier = core.objectService.createObject('object/tangible/wearables/bandolier/shared_bandolier_s04.iff', object.getPlanet())
- shirt = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_shirt_s03.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(bandolier)
- object._add(shirt)
\ No newline at end of file
diff --git a/scripts/starter_clothing/crafting_artisan_humanoid_female.py b/scripts/starter_clothing/crafting_artisan_humanoid_female.py
deleted file mode 100644
index e02090dd..00000000
--- a/scripts/starter_clothing/crafting_artisan_humanoid_female.py
+++ /dev/null
@@ -1,18 +0,0 @@
-import sys
-
-def CraftingArtisanHumanoidFemale(core, object):
- dress = core.objectService.createObject('object/tangible/wearables/dress/shared_dress_s29.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s02.iff', object.getPlanet())
- bracelet_l = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s03_l.iff', object.getPlanet())
- bracelet_r = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff', object.getPlanet())
- bracelet_l_2 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s06_l.iff', object.getPlanet())
- bracelet_r_2 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s06_r.iff', object.getPlanet())
- shoes = core.objectService.createObject('object/tangible/wearables/shoes/shared_shoes_s07.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- inventory.add(bracelet_l_2)
- inventory.add(bracelet_r_2)
- object._add(dress)
- object._add(necklace)
- object._add(bracelet_l)
- object._add(bracelet_r)
- object._add(shoes)
diff --git a/scripts/starter_clothing/crafting_artisan_humanoid_male.py b/scripts/starter_clothing/crafting_artisan_humanoid_male.py
deleted file mode 100644
index f140e4c1..00000000
--- a/scripts/starter_clothing/crafting_artisan_humanoid_male.py
+++ /dev/null
@@ -1,14 +0,0 @@
-import sys
-
-def CraftingArtisanHumanoidMale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s03.iff', object.getPlanet())
- vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s09.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_primitive_03.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s13.iff', object.getPlanet())
- shoes = core.objectService.createObject('object/tangible/wearables/shoes/shared_shoes_s01.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
- object._add(vest)
- object._add(necklace)
- object._add(pants)
- object._add(shoes)
diff --git a/scripts/starter_clothing/crafting_artisan_ithorian_female.py b/scripts/starter_clothing/crafting_artisan_ithorian_female.py
deleted file mode 100644
index 4ae7a7ea..00000000
--- a/scripts/starter_clothing/crafting_artisan_ithorian_female.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import sys
-
-def CraftingArtisanIthorianFemale(core, object):
- dress = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_dress_s03.iff', object.getPlanet())
- hat = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_hat_s02.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(dress)
- object._add(hat)
diff --git a/scripts/starter_clothing/crafting_artisan_ithorian_male.py b/scripts/starter_clothing/crafting_artisan_ithorian_male.py
deleted file mode 100644
index 8ecd98cf..00000000
--- a/scripts/starter_clothing/crafting_artisan_ithorian_male.py
+++ /dev/null
@@ -1,10 +0,0 @@
-import sys
-
-def CraftingArtisanIthorianMale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_shirt_s10.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_pants_s06.iff', object.getPlanet())
- vest = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_vest_s02.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
- object._add(pants)
- object._add(vest)
\ No newline at end of file
diff --git a/scripts/starter_clothing/crafting_artisan_trandoshan_female.py b/scripts/starter_clothing/crafting_artisan_trandoshan_female.py
deleted file mode 100644
index 60acce4a..00000000
--- a/scripts/starter_clothing/crafting_artisan_trandoshan_female.py
+++ /dev/null
@@ -1,16 +0,0 @@
-import sys
-
-def CraftingArtisanTrandoshanFemale(core, object):
- dress = core.objectService.createObject('object/tangible/wearables/dress/shared_dress_s29.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s02.iff', object.getPlanet())
- bracelet_l = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s03_l.iff', object.getPlanet())
- bracelet_r = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff', object.getPlanet())
- bracelet_l_2 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s06_l.iff', object.getPlanet())
- bracelet_r_2 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s06_r.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- inventory.add(bracelet_l_2)
- inventory.add(bracelet_r_2)
- object._add(dress)
- object._add(necklace)
- object._add(bracelet_l)
- object._add(bracelet_r)
\ No newline at end of file
diff --git a/scripts/starter_clothing/crafting_artisan_trandoshan_male.py b/scripts/starter_clothing/crafting_artisan_trandoshan_male.py
deleted file mode 100644
index fcabfeda..00000000
--- a/scripts/starter_clothing/crafting_artisan_trandoshan_male.py
+++ /dev/null
@@ -1,12 +0,0 @@
-import sys
-
-def CraftingArtisanTrandoshanMale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_shirt_s03.iff', object.getPlanet())
- vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s09.if', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_primitive_03.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s13.ifff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
- object._add(vest)
- object._add(necklace)
- object._add(pants)
diff --git a/scripts/starter_clothing/crafting_artisan_twilek_female.py b/scripts/starter_clothing/crafting_artisan_twilek_female.py
deleted file mode 100644
index 77e72081..00000000
--- a/scripts/starter_clothing/crafting_artisan_twilek_female.py
+++ /dev/null
@@ -1,20 +0,0 @@
-import sys
-
-def CraftingArtisanTwilekFemale(core, object):
- dress = core.objectService.createObject('object/tangible/wearables/dress/shared_dress_s29.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s02.iff', object.getPlanet())
- bracelet_l = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s03_l.iff', object.getPlanet())
- bracelet_r = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s03_r.iff', object.getPlanet())
- bracelet_l_2 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s06_l.iff', object.getPlanet())
- bracelet_r_2 = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s06_r.iff', object.getPlanet())
- shoes = core.objectService.createObject('object/tangible/wearables/shoes/shared_shoes_s07.iff', object.getPlanet())
- hat = core.objectService.createObject('object/tangible/wearables/hat/shared_hat_twilek_s01.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- inventory.add(bracelet_l_2)
- inventory.add(bracelet_r_2)
- object._add(dress)
- object._add(necklace)
- object._add(bracelet_l)
- object._add(bracelet_r)
- object._add(shoes)
- object._add(hat)
diff --git a/scripts/starter_clothing/crafting_artisan_wookiee_female.py b/scripts/starter_clothing/crafting_artisan_wookiee_female.py
deleted file mode 100644
index aa6fb915..00000000
--- a/scripts/starter_clothing/crafting_artisan_wookiee_female.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import sys
-
-def CraftingArtisanWookieeFemale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_shirt_s02.iff', object.getPlanet())
- skirt = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_skirt_s03.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
- object._add(skirt)
\ No newline at end of file
diff --git a/scripts/starter_clothing/crafting_artisan_wookiee_male.py b/scripts/starter_clothing/crafting_artisan_wookiee_male.py
deleted file mode 100644
index 841dfd41..00000000
--- a/scripts/starter_clothing/crafting_artisan_wookiee_male.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import sys
-
-def CraftingArtisanWookieeMale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_shirt_s02.iff', object.getPlanet())
- skirt = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_skirt_s03.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
- object._add(skirt)
\ No newline at end of file
diff --git a/scripts/starter_clothing/outdoors_scout_humanoid_female.py b/scripts/starter_clothing/outdoors_scout_humanoid_female.py
deleted file mode 100644
index a3347f00..00000000
--- a/scripts/starter_clothing/outdoors_scout_humanoid_female.py
+++ /dev/null
@@ -1,22 +0,0 @@
-import sys
-
-def OutdoorScoutHumanoidFemale(core, object):
- vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s04.iff', object.getPlanet())
- bustier = core.objectService.createObject('object/tangible/wearables/bustier/shared_bustier_s02.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s13.iff', object.getPlanet())
- gloves = core.objectService.createObject('object/tangible/wearables/gloves/shared_gloves_s06.iff', object.getPlanet())
- bracelet_l = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s05_l.iff', object.getPlanet())
- bracelet_r = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s05_r.iff', object.getPlanet())
- boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s04.iff', object.getPlanet())
- belt = core.objectService.createObject('object/tangible/wearables/belt/shared_npe_belt_02.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_primitive_03.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(vest)
- object._add(bustier)
- object._add(pants)
- object._add(gloves)
- object._add(bracelet_l)
- object._add(bracelet_r)
- object._add(boots)
- object._add(belt)
- object._add(necklace)
diff --git a/scripts/starter_clothing/outdoors_scout_humanoid_male.py b/scripts/starter_clothing/outdoors_scout_humanoid_male.py
deleted file mode 100644
index a6c8d1c4..00000000
--- a/scripts/starter_clothing/outdoors_scout_humanoid_male.py
+++ /dev/null
@@ -1,14 +0,0 @@
-import sys
-
-def OutdoorScoutHumanoidMale(core, object):
- vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_hutt_gang_s01.iff', object.getPlanet())
- bracelet = core.objectService.createObject('object/tangible/wearables/bracelet/shared_primitive_bracelet.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s04.iff', object.getPlanet())
- belt = core.objectService.createObject('object/tangible/wearables/belt/shared_npe_belt_03.iff', object.getPlanet())
- boots = core.objectService.createObject('object/tangible/wearables/boots/shared_boots_s05.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(vest)
- object._add(bracelet)
- object._add(pants)
- object._add(belt)
- object._add(boots)
diff --git a/scripts/starter_clothing/outdoors_scout_ithorian_female.py b/scripts/starter_clothing/outdoors_scout_ithorian_female.py
deleted file mode 100644
index 11fd41ff..00000000
--- a/scripts/starter_clothing/outdoors_scout_ithorian_female.py
+++ /dev/null
@@ -1,10 +0,0 @@
-import sys
-
-def OutdoorScoutIthorianFemale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_shirt_s05.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_pants_s16.iff', object.getPlanet())
- jacket = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_jacket_s02.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
- object._add(pants)
- object._add(jacket)
\ No newline at end of file
diff --git a/scripts/starter_clothing/outdoors_scout_ithorian_male.py b/scripts/starter_clothing/outdoors_scout_ithorian_male.py
deleted file mode 100644
index 6b824c94..00000000
--- a/scripts/starter_clothing/outdoors_scout_ithorian_male.py
+++ /dev/null
@@ -1,10 +0,0 @@
-import sys
-
-def OutdoorScoutIthorianMale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_shirt_s13.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_pants_s12.iff', object.getPlanet())
- jacket = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_jacket_s03.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
- object._add(pants)
- object._add(jacket)
\ No newline at end of file
diff --git a/scripts/starter_clothing/outdoors_scout_trandoshan_female.py b/scripts/starter_clothing/outdoors_scout_trandoshan_female.py
deleted file mode 100644
index 8bf336ed..00000000
--- a/scripts/starter_clothing/outdoors_scout_trandoshan_female.py
+++ /dev/null
@@ -1,18 +0,0 @@
-import sys
-
-def OutdoorScoutTrandoshanFemale(core, object):
- vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s04.iff', object.getPlanet())
- bustier = core.objectService.createObject('object/tangible/wearables/bustier/shared_bustier_s02.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s13.iff', object.getPlanet())
- bracelet_l = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s05_l.iff', object.getPlanet())
- bracelet_r = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s05_r.iff', object.getPlanet())
- belt = core.objectService.createObject('object/tangible/wearables/belt/shared_npe_belt_02.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_primitive_03.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(vest)
- object._add(bustier)
- object._add(pants)
- object._add(bracelet_l)
- object._add(bracelet_r)
- object._add(belt)
- object._add(necklace)
diff --git a/scripts/starter_clothing/outdoors_scout_trandoshan_male.py b/scripts/starter_clothing/outdoors_scout_trandoshan_male.py
deleted file mode 100644
index de822de3..00000000
--- a/scripts/starter_clothing/outdoors_scout_trandoshan_male.py
+++ /dev/null
@@ -1,12 +0,0 @@
-import sys
-
-def OutdoorScoutTrandoshanMale(core, object):
- vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_hutt_gang_s01.iff', object.getPlanet())
- bracelet = core.objectService.createObject('object/tangible/wearables/bracelet/shared_primitive_bracelet.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s04.iff', object.getPlanet())
- belt = core.objectService.createObject('object/tangible/wearables/belt/shared_npe_belt_03.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(vest)
- object._add(bracelet)
- object._add(pants)
- object._add(belt)
diff --git a/scripts/starter_clothing/outdoors_scout_wookiee_female.py b/scripts/starter_clothing/outdoors_scout_wookiee_female.py
deleted file mode 100644
index c2fca3a7..00000000
--- a/scripts/starter_clothing/outdoors_scout_wookiee_female.py
+++ /dev/null
@@ -1,6 +0,0 @@
-import sys
-
-def OutdoorScoutWookieeFemale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_shirt_s01.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
\ No newline at end of file
diff --git a/scripts/starter_clothing/outdoors_scout_wookiee_male.py b/scripts/starter_clothing/outdoors_scout_wookiee_male.py
deleted file mode 100644
index 63a6b6cf..00000000
--- a/scripts/starter_clothing/outdoors_scout_wookiee_male.py
+++ /dev/null
@@ -1,6 +0,0 @@
-import sys
-
-def OutdoorScoutWookieeMale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_shirt_s01.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
\ No newline at end of file
diff --git a/scripts/starter_clothing/science_medic_humanoid_female.py b/scripts/starter_clothing/science_medic_humanoid_female.py
deleted file mode 100644
index 5e6ba991..00000000
--- a/scripts/starter_clothing/science_medic_humanoid_female.py
+++ /dev/null
@@ -1,12 +0,0 @@
-import sys
-
-def ScienceMedicHumanoidFemale(core, object):
- jacket = core.objectService.createObject('object/tangible/wearables/jacket/shared_jacket_s26.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s08.iff', object.getPlanet())
- shoes = core.objectService.createObject('object/tangible/wearables/shoes/shared_shoes_s01.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s01.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(jacket)
- object._add(pants)
- object._add(shoes)
- object._add(necklace)
\ No newline at end of file
diff --git a/scripts/starter_clothing/science_medic_humanoid_male.py b/scripts/starter_clothing/science_medic_humanoid_male.py
deleted file mode 100644
index ca19c6e2..00000000
--- a/scripts/starter_clothing/science_medic_humanoid_male.py
+++ /dev/null
@@ -1,10 +0,0 @@
-import sys
-
-def ScienceMedicHumanoidMale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_npe_shirt.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s01.iff', object.getPlanet())
- shoes = core.objectService.createObject('object/tangible/wearables/shoes/shared_shoes_s02.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
- object._add(pants)
- object._add(shoes)
\ No newline at end of file
diff --git a/scripts/starter_clothing/science_medic_ithorian_female.py b/scripts/starter_clothing/science_medic_ithorian_female.py
deleted file mode 100644
index fb7638b8..00000000
--- a/scripts/starter_clothing/science_medic_ithorian_female.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import sys
-
-def ScienceMedicIthorianFemale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_shirt_s12.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_pants_s02.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
- object._add(pants)
\ No newline at end of file
diff --git a/scripts/starter_clothing/science_medic_ithorian_male.py b/scripts/starter_clothing/science_medic_ithorian_male.py
deleted file mode 100644
index 88ec8b7a..00000000
--- a/scripts/starter_clothing/science_medic_ithorian_male.py
+++ /dev/null
@@ -1,10 +0,0 @@
-import sys
-
-def ScienceMedicIthorianMale(core, object):
- jacket = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_jacket_s01.iff', object.getPlanet())
- shirt = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_shirt_s04.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_pants_s18.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(jacket)
- object._add(shirt)
- object._add(pants)
diff --git a/scripts/starter_clothing/science_medic_trandoshan_female.py b/scripts/starter_clothing/science_medic_trandoshan_female.py
deleted file mode 100644
index 556e8e94..00000000
--- a/scripts/starter_clothing/science_medic_trandoshan_female.py
+++ /dev/null
@@ -1,10 +0,0 @@
-import sys
-
-def ScienceMedicTrandoshanFemale(core, object):
- jacket = core.objectService.createObject('object/tangible/wearables/jacket/shared_jacket_s26.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s08.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s01.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(jacket)
- object._add(pants)
- object._add(necklace)
\ No newline at end of file
diff --git a/scripts/starter_clothing/science_medic_trandoshan_male.py b/scripts/starter_clothing/science_medic_trandoshan_male.py
deleted file mode 100644
index 9b50dd69..00000000
--- a/scripts/starter_clothing/science_medic_trandoshan_male.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import sys
-
-def ScienceMedicTrandoshanMale(core, object):
- shirt = core.objectService.createObject('object/tangible/wearables/shirt/shared_npe_shirt.iff', object.getPlanet())
- pants = core.objectService.createObject('object/tangible/wearables/pants/shared_pants_s01.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(shirt)
- object._add(pants)
\ No newline at end of file
diff --git a/scripts/starter_clothing/science_medic_wookiee_female.py b/scripts/starter_clothing/science_medic_wookiee_female.py
deleted file mode 100644
index 9e969888..00000000
--- a/scripts/starter_clothing/science_medic_wookiee_female.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import sys
-
-def ScienceMedicWookieeFemale(core, object):
- hood = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_hood_s02.iff', object.getPlanet())
- bandolier = core.objectService.createObject('object/tangible/wearables/bandolier/shared_bandolier_s09.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(hood)
- object._add(bandolier)
\ No newline at end of file
diff --git a/scripts/starter_clothing/science_medic_wookiee_male.py b/scripts/starter_clothing/science_medic_wookiee_male.py
deleted file mode 100644
index ba2c8845..00000000
--- a/scripts/starter_clothing/science_medic_wookiee_male.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import sys
-
-def ScienceMedicWookieeMale(core, object):
- hood = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_hood_s02.iff', object.getPlanet())
- bandolier = core.objectService.createObject('object/tangible/wearables/bandolier/shared_bandolier_s09.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(hood)
- object._add(bandolier)
\ No newline at end of file
diff --git a/scripts/starter_clothing/social_entertainer_humanoid_female.py b/scripts/starter_clothing/social_entertainer_humanoid_female.py
deleted file mode 100644
index 0b9f5157..00000000
--- a/scripts/starter_clothing/social_entertainer_humanoid_female.py
+++ /dev/null
@@ -1,16 +0,0 @@
-import sys
-
-def SocialEntertainerHumanoidFemale(core, object):
- bracelet_l = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s05_l.iff', object.getPlanet())
- bracelet_r = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s05_r.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s12.iff', object.getPlanet())
- shoes = core.objectService.createObject('object/tangible/wearables/shoes/shared_shoes_s07.iff', object.getPlanet())
- skirt = core.objectService.createObject('object/tangible/wearables/skirt/shared_npe_entertainer_skirt.iff', object.getPlanet())
- bustier = core.objectService.createObject('object/tangible/wearables/bustier/shared_bustier_s01.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(bracelet_l)
- object._add(bracelet_r)
- object._add(necklace)
- object._add(shoes)
- object._add(skirt)
- object._add(bustier)
\ No newline at end of file
diff --git a/scripts/starter_clothing/social_entertainer_humanoid_male.py b/scripts/starter_clothing/social_entertainer_humanoid_male.py
deleted file mode 100644
index c9fcfec6..00000000
--- a/scripts/starter_clothing/social_entertainer_humanoid_male.py
+++ /dev/null
@@ -1,10 +0,0 @@
-import sys
-
-def SocialEntertainerHumanoidMale(core, object):
- vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s15.iff', object.getPlanet())
- skirt = core.objectService.createObject('object/tangible/wearables/skirt/shared_skirt_s05.iff', object.getPlanet())
- shoes = core.objectService.createObject('object/tangible/wearables/shoes/shared_shoes_s01.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(vest)
- object._add(skirt)
- object._add(shoes)
\ No newline at end of file
diff --git a/scripts/starter_clothing/social_entertainer_ithorian_female.py b/scripts/starter_clothing/social_entertainer_ithorian_female.py
deleted file mode 100644
index 4afa5c52..00000000
--- a/scripts/starter_clothing/social_entertainer_ithorian_female.py
+++ /dev/null
@@ -1,16 +0,0 @@
-import sys
-
-def SocialEntertainerIthorianFemale(core, object):
- bracelet_l = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s05_l.iff', object.getPlanet())
- bracelet_r = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s05_r.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s12.iff', object.getPlanet())
- shoes = core.objectService.createObject('object/tangible/wearables/shoes/shared_shoes_s07.iff', object.getPlanet())
- skirt = core.objectService.createObject('object/tangible/wearables/skirt/shared_npe_entertainer_skirt.iff', object.getPlanet())
- bustier = core.objectService.createObject('object/tangible/wearables/bustier/shared_bustier_s01.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(bracelet_l)
- object._add(bracelet_r)
- object._add(necklace)
- object._add(shoes)
- object._add(skirt)
- object._add(bustier)
\ No newline at end of file
diff --git a/scripts/starter_clothing/social_entertainer_ithorian_male.py b/scripts/starter_clothing/social_entertainer_ithorian_male.py
deleted file mode 100644
index a13a5c78..00000000
--- a/scripts/starter_clothing/social_entertainer_ithorian_male.py
+++ /dev/null
@@ -1,10 +0,0 @@
-import sys
-
-def SocialEntertainerIthorianMale(core, object):
- pants = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_pants_s10.iff', object.getPlanet())
- shirt = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_shirt_s08.iff', object.getPlanet())
- dress = core.objectService.createObject('object/tangible/wearables/ithorian/shared_ith_dress_short_s01.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(pants)
- object._add(shirt)
- object._add(dress)
\ No newline at end of file
diff --git a/scripts/starter_clothing/social_entertainer_trandoshan_female.py b/scripts/starter_clothing/social_entertainer_trandoshan_female.py
deleted file mode 100644
index b77afa50..00000000
--- a/scripts/starter_clothing/social_entertainer_trandoshan_female.py
+++ /dev/null
@@ -1,14 +0,0 @@
-import sys
-
-def SocialEntertainerTrandoshanFemale(core, object):
- bracelet_l = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s05_l.iff', object.getPlanet())
- bracelet_r = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s05_r.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s12.iff', object.getPlanet())
- skirt = core.objectService.createObject('object/tangible/wearables/skirt/shared_npe_entertainer_skirt.iff', object.getPlanet())
- bustier = core.objectService.createObject('object/tangible/wearables/bustier/shared_bustier_s01.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(bracelet_l)
- object._add(bracelet_r)
- object._add(necklace)
- object._add(skirt)
- object._add(bustier)
\ No newline at end of file
diff --git a/scripts/starter_clothing/social_entertainer_trandoshan_male.py b/scripts/starter_clothing/social_entertainer_trandoshan_male.py
deleted file mode 100644
index cd9bcc6c..00000000
--- a/scripts/starter_clothing/social_entertainer_trandoshan_male.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import sys
-
-def SocialEntertainerTrandoshanMale(core, object):
- vest = core.objectService.createObject('object/tangible/wearables/vest/shared_vest_s15.iff', object.getPlanet())
- skirt = core.objectService.createObject('object/tangible/wearables/skirt/shared_skirt_s05.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(vest)
- object._add(skirt)
\ No newline at end of file
diff --git a/scripts/starter_clothing/social_entertainer_twilek_female.py b/scripts/starter_clothing/social_entertainer_twilek_female.py
deleted file mode 100644
index e5dcdd36..00000000
--- a/scripts/starter_clothing/social_entertainer_twilek_female.py
+++ /dev/null
@@ -1,18 +0,0 @@
-import sys
-
-def SocialEntertainerTwilekFemale(core, object):
- bracelet_l = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s05_l.iff', object.getPlanet())
- bracelet_r = core.objectService.createObject('object/tangible/wearables/bracelet/shared_bracelet_s05_r.iff', object.getPlanet())
- necklace = core.objectService.createObject('object/tangible/wearables/necklace/shared_necklace_s12.iff', object.getPlanet())
- shoes = core.objectService.createObject('object/tangible/wearables/shoes/shared_shoes_s07.iff', object.getPlanet())
- skirt = core.objectService.createObject('object/tangible/wearables/skirt/shared_npe_entertainer_skirt.iff', object.getPlanet())
- bustier = core.objectService.createObject('object/tangible/wearables/bustier/shared_bustier_s01.iff', object.getPlanet())
- hat = core.objectService.createObject('object/tangible/wearables/hat/shared_hat_twilek_s03.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(bracelet_l)
- object._add(bracelet_r)
- object._add(necklace)
- object._add(shoes)
- object._add(skirt)
- object._add(bustier)
- object._add(hat)
\ No newline at end of file
diff --git a/scripts/starter_clothing/social_entertainer_wookiee_female.py b/scripts/starter_clothing/social_entertainer_wookiee_female.py
deleted file mode 100644
index a8cdfee0..00000000
--- a/scripts/starter_clothing/social_entertainer_wookiee_female.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import sys
-
-def SocialEntertainerWookieeFemale(core, object):
- gloves = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_gloves_s04.iff', object.getPlanet())
- hood = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_hood_s03.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(gloves)
- object._add(hood)
\ No newline at end of file
diff --git a/scripts/starter_clothing/social_entertainer_wookiee_male.py b/scripts/starter_clothing/social_entertainer_wookiee_male.py
deleted file mode 100644
index ed797f8c..00000000
--- a/scripts/starter_clothing/social_entertainer_wookiee_male.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import sys
-
-def SocialEntertainerWookieeMale(core, object):
- gloves = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_gloves_s04.iff', object.getPlanet())
- hood = core.objectService.createObject('object/tangible/wearables/wookiee/shared_wke_hood_s03.iff', object.getPlanet())
- inventory = object.getSlottedObject('inventory')
- object._add(gloves)
- object._add(hood)
\ No newline at end of file
diff --git a/scripts/starterclothing.py b/scripts/starterclothing.py
deleted file mode 100644
index f24afeb3..00000000
--- a/scripts/starterclothing.py
+++ /dev/null
@@ -1,298 +0,0 @@
-
-
-import sys
-
-def CreateStarterClothing(core, object, starterProfession, raceTemplate):
-
- if starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/human_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutHumanoidMale", "outdoors_scout_humanoid_male", core, object)
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/zabrak_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutHumanoidMale", "outdoors_scout_humanoid_male", core, object)
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/bothan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutHumanoidMale", "outdoors_scout_humanoid_male", core, object)
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/sullustan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutHumanoidMale", "outdoors_scout_humanoid_male", core, object)
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/twilek_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutHumanoidMale", "outdoors_scout_humanoid_male", core, object)
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/moncal_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutHumanoidMale", "outdoors_scout_humanoid_male", core, object)
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/rodian_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutHumanoidMale", "outdoors_scout_humanoid_male", core, object)
-
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/human_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutHumanoidFemale", "outdoors_scout_humanoid_female", core, object)
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/zabrak_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutHumanoidFemale", "outdoors_scout_humanoid_female", core, object)
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/bothan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutHumanoidFemale", "outdoors_scout_humanoid_female", core, object)
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/sullustan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutHumanoidFemale", "outdoors_scout_humanoid_female", core, object)
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/twilek_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutHumanoidFemale", "outdoors_scout_humanoid_female", core, object)
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/moncal_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutHumanoidFemale", "outdoors_scout_humanoid_female", core, object)
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/rodian_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutHumanoidFemale", "outdoors_scout_humanoid_female", core, object)
-
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/trandoshan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutTrandoshanMale", "outdoors_scout_trandoshan_male", core, object)
-
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/trandoshan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutTrandoshanFemale", "outdoors_scout_trandoshan_female", core, object)
-
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/wookiee_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutWookieeMale", "outdoors_scout_wookiee_male", core, object)
-
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/wookiee_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutWookieeFemale", "outdoors_scout_wookiee_female", core, object)
-
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/ithorian_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutIthorianMale", "outdoors_scout_ithorian_male", core, object)
-
- elif starterProfession == 'outdoors_scout' and raceTemplate == 'object/creature/player/ithorian_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "OutdoorScoutIthorianFemale", "outdoors_scout_ithorian_female", core, object)
-
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/human_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerHumanoidMale", "combat_brawler_humanoid_male", core, object)
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/zabrak_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerHumanoidMale", "combat_brawler_humanoid_male", core, object)
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/bothan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerHumanoidMale", "combat_brawler_humanoid_male", core, object)
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/sullustan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerHumanoidMale", "combat_brawler_humanoid_male", core, object)
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/twilek_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerHumanoidMale", "combat_brawler_humanoid_male", core, object)
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/moncal_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerHumanoidMale", "combat_brawler_humanoid_male", core, object)
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/rodian_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerHumanoidMale", "combat_brawler_humanoid_male", core, object)
-
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/human_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerHumanoidFemale", "combat_brawler_humanoid_female", core, object)
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/zabrak_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerHumanoidFemale", "combat_brawler_humanoid_female", core, object)
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/bothan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerHumanoidFemale", "combat_brawler_humanoid_female", core, object)
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/sullustan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerHumanoidFemale", "combat_brawler_humanoid_female", core, object)
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/twilek_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerHumanoidFemale", "combat_brawler_humanoid_female", core, object)
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/moncal_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerHumanoidFemale", "combat_brawler_humanoid_female", core, object)
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/rodian_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerHumanoidFemale", "combat_brawler_humanoid_female", core, object)
-
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/trandoshan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerTrandoshanMale", "combat_brawler_trandoshan_male", core, object)
-
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/trandoshan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerOutdoorScoutTrandoshanFemale", "combat_brawler_trandoshan_female", core, object)
-
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/wookiee_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerWookieeMale", "combat_brawler_wookiee_male", core, object)
-
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/wookiee_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerWookieeFemale", "combat_brawler_wookiee_female", core, object)
-
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/ithorian_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerIthorianMale", "combat_brawler_ithorian_male", core, object)
-
- elif starterProfession == 'combat_brawler' and raceTemplate == 'object/creature/player/ithorian_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatBrawlerIthorianFemale", "combat_brawler_ithorian_female", core, object)
-
-
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/human_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanHumanoidMale", "combat_marksman_humanoid_male", core, object)
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/zabrak_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanHumanoidMale", "combat_marksman_humanoid_male", core, object)
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/bothan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanHumanoidMale", "combat_marksman_humanoid_male", core, object)
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/sullustan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanHumanoidMale", "combat_marksman_humanoid_male", core, object)
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/twilek_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanHumanoidMale", "combat_marksman_humanoid_male", core, object)
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/moncal_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanHumanoidMale", "combat_marksman_humanoid_male", core, object)
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/rodian_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanHumanoidMale", "combat_marksman_humanoid_male", core, object)
-
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/human_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanHumanoidFemale", "combat_marksman_humanoid_female", core, object)
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/zabrak_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanHumanoidFemale", "combat_marksman_humanoid_female", core, object)
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/bothan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanHumanoidFemale", "combat_marksman_humanoid_female", core, object)
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/sullustan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanHumanoidFemale", "combat_marksman_humanoid_female", core, object)
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/twilek_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanHumanoidFemale", "combat_marksman_humanoid_female", core, object)
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/moncal_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanHumanoidFemale", "combat_marksman_humanoid_female", core, object)
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/rodian_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanHumanoidFemale", "combat_marksman_humanoid_female", core, object)
-
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/trandoshan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanTrandoshanMale", "combat_marksman_trandoshan_male", core, object)
-
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/trandoshan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanTrandoshanFemale", "combat_marksman_trandoshan_female", core, object)
-
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/wookiee_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanWookieeMale", "combat_marksman_wookiee_male", core, object)
-
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/wookiee_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanWookieeFemale", "combat_marksman_wookiee_female", core, object)
-
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/ithorian_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanIthorianMale", "combat_marksman_ithorian_male", core, object)
-
- elif starterProfession == 'combat_marksman' and raceTemplate == 'object/creature/player/ithorian_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CombatMarksmanIthorianFemale", "combat_marksman_ithorian_female", core, object)
-
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/human_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanHumanoidMale", "crafting_artisan_humanoid_male", core, object)
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/zabrak_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanHumanoidMale", "crafting_artisan_humanoid_male", core, object)
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/bothan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanHumanoidMale", "crafting_artisan_humanoid_male", core, object)
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/sullustan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanHumanoidMale", "crafting_artisan_humanoid_male", core, object)
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/twilek_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanHumanoidMale", "crafting_artisan_humanoid_male", core, object)
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/moncal_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanHumanoidMale", "crafting_artisan_humanoid_male", core, object)
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/rodian_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanHumanoidMale", "crafting_artisan_humanoid_male", core, object)
-
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/human_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanHumanoidFemale", "crafting_artisan_humanoid_female", core, object)
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/zabrak_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanHumanoidFemale", "crafting_artisan_humanoid_female", core, object)
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/bothan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanHumanoidFemale", "crafting_artisan_humanoid_female", core, object)
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/sullustan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanHumanoidFemale", "crafting_artisan_humanoid_female", core, object)
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/twilek_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanTwilekFemale", "crafting_artisan_twilek_female", core, object)
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/moncal_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanHumanoidFemale", "crafting_artisan_humanoid_female", core, object)
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/rodian_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanHumanoidFemale", "crafting_artisan_humanoid_female", core, object)
-
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/trandoshan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanTrandoshanMale", "crafting_artisan_trandoshan_male", core, object)
-
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/trandoshan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanTrandoshanFemale", "crafting_artisan_trandoshan_female", core, object)
-
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/wookiee_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanWookieeMale", "crafting_artisan_wookiee_male", core, object)
-
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/wookiee_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanWookieeFemale", "crafting_artisan_wookiee_female", core, object)
-
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/ithorian_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanIthorianMale", "crafting_artisan_ithorian_male", core, object)
-
- elif starterProfession == 'crafting_artisan' and raceTemplate == 'object/creature/player/ithorian_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "CraftingArtisanIthorianFemale", "crafting_artisan_ithorian_female", core, object)
-
-
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/human_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicHumanoidMale", "science_medic_humanoid_male", core, object)
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/zabrak_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicHumanoidMale", "science_medic_humanoid_male", core, object)
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/bothan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicHumanoidMale", "science_medic_humanoid_male", core, object)
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/sullustan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicHumanoidMale", "science_medic_humanoid_male", core, object)
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/twilek_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicHumanoidMale", "science_medic_humanoid_male", core, object)
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/moncal_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicHumanoidMale", "science_medic_humanoid_male", core, object)
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/rodian_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicHumanoidMale", "science_medic_humanoid_male", core, object)
-
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/human_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicHumanoidFemale", "science_medic_humanoid_female", core, object)
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/zabrak_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicHumanoidFemale", "science_medic_humanoid_female", core, object)
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/bothan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicHumanoidFemale", "science_medic_humanoid_female", core, object)
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/sullustan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicHumanoidFemale", "science_medic_humanoid_female", core, object)
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/twilek_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicHumanoidFemale", "science_medic_humanoid_female", core, object)
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/moncal_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicHumanoidFemale", "science_medic_humanoid_female", core, object)
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/rodian_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicHumanoidFemale", "science_medic_humanoid_female", core, object)
-
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/trandoshan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicTrandoshanMale", "science_medic_trandoshan_male", core, object)
-
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/trandoshan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicTrandoshanFemale", "science_medic_trandoshan_female", core, object)
-
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/wookiee_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicWookieeMale", "science_medic_wookiee_male", core, object)
-
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/wookiee_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicWookieeFemale", "science_medic_wookiee_female", core, object)
-
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/ithorian_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicIthorianMale", "science_medic_ithorian_male", core, object)
-
- elif starterProfession == 'science_medic' and raceTemplate == 'object/creature/player/ithorian_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "ScienceMedicIthorianFemale", "science_medic_ithorian_female", core, object)
-
-
-
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/human_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerHumanoidMale", "social_entertainer_humanoid_male", core, object)
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/zabrak_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerHumanoidMale", "social_entertainer_humanoid_male", core, object)
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/bothan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerHumanoidMale", "social_entertainer_humanoid_male", core, object)
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/sullustan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerHumanoidMale", "social_entertainer_humanoid_male", core, object)
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/twilek_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerHumanoidMale", "social_entertainer_humanoid_male", core, object)
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/moncal_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerHumanoidMale", "social_entertainer_humanoid_male", core, object)
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/rodian_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerHumanoidMale", "social_entertainer_humanoid_male", core, object)
-
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/human_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerHumanoidFemale", "social_entertainer_humanoid_female", core, object)
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/zabrak_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerHumanoidFemale", "social_entertainer_humanoid_female", core, object)
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/bothan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerHumanoidFemale", "social_entertainer_humanoid_female", core, object)
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/sullustan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerHumanoidFemale", "social_entertainer_humanoid_female", core, object)
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/twilek_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerTwilekFemale", "social_entertainer_twilek_female", core, object)
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/moncal_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerHumanoidFemale", "social_entertainer_humanoid_female", core, object)
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/rodian_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerHumanoidFemale", "social_entertainer_humanoid_female", core, object)
-
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/trandoshan_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerTrandoshanMale", "social_entertainer_trandoshan_male", core, object)
-
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/trandoshan_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerTrandoshanFemale", "social_entertainer_trandoshan_female", core, object)
-
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/wookiee_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerWookieeMale", "social_entertainer_wookiee_male", core, object)
-
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/wookiee_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerWookieeFemale", "social_entertainer_wookiee_female", core, object)
-
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/ithorian_male.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerIthorianMale", "social_entertainer_ithorian_male", core, object)
-
- elif starterProfession == 'social_entertainer' and raceTemplate == 'object/creature/player/ithorian_female.iff':
- core.scriptService.callScript("scripts/starter_clothing/", "SocialEntertainerIthorianFemale", "social_entertainer_ithorian_female", core, object)
-
\ No newline at end of file
diff --git a/scripts/static_map_locations.py b/scripts/static_map_locations.py
index 2222447d..c544a16e 100644
--- a/scripts/static_map_locations.py
+++ b/scripts/static_map_locations.py
@@ -30,7 +30,11 @@ def addLocations(core, planet):
dathomirLocations(core, planet)
if planet.getName() == 'lok':
- lokLocations(core, planet)
+ lokLocations(core, planet)
+
+ if planet.getName() == 'kaas':
+ kaasLocations(core, planet)
+
def tatooineLocations(core, planet):
@@ -44,6 +48,7 @@ def tatooineLocations(core, planet):
mapService.addLocation(planet, 'Wayfar', -5124, -6530, 17, 0, 0)
mapService.addLocation(planet, 'Mos Eisley', 3528, -4804, 17, 0, 0)
mapService.addLocation(planet, 'Anchorhead', 40, -5348, 17, 0, 0)
+ mapService.addLocation(planet, 'Mos Taike', 3813, 2354, 17, 0, 0)
def corelliaLocations(core, planet):
@@ -52,11 +57,11 @@ def corelliaLocations(core, planet):
# Cities
mapService.addLocation(planet, 'Coronet', -178, -4504, 17, 0, 0)
- mapService.addLocation(planet, 'Tyrena', -5140, 2450, 17, 0, 0)
+ mapService.addLocation(planet, 'Tyrena', -5140, -2450, 17, 0, 0)
mapService.addLocation(planet, 'Bela Vistal', 6766, -5692, 17, 0, 0)
mapService.addLocation(planet, 'Kor Vella', -3420, 3146, 17, 0, 0)
mapService.addLocation(planet, 'Doaba Guerfel', 3274, 5582, 17, 0, 0)
- mapService.addLocation(planet, 'Vreni Island', -5538, 6176, 17, 0, 0)
+ mapService.addLocation(planet, 'Vreni Island', -5538, -6176, 17, 0, 0)
def nabooLocations(core, planet):
@@ -67,7 +72,7 @@ def nabooLocations(core, planet):
mapService.addLocation(planet, 'Theed', -5488, 4380, 17, 0, 0)
mapService.addLocation(planet, 'Keren', 1888, 2700, 17, 0, 0)
mapService.addLocation(planet, 'Moenia', 4836, -4830.5, 17, 0, 0)
- mapService.addLocation(planet, 'Deeja Peek', 4686, -1375, 17, 0, 0)
+ mapService.addLocation(planet, 'Deeja Peak', 4686, -1375, 17, 0, 0)
mapService.addLocation(planet, 'Kaadara', 5288, 6687, 17, 0, 0)
def roriLocations(core, planet):
@@ -78,7 +83,7 @@ def roriLocations(core, planet):
mapService.addLocation(planet, 'Narmle', -5140, -2368, 17, 0, 0)
mapService.addLocation(planet, 'Restuss', 5318, 5680, 17, 0, 0)
- mapService.addLocation(planet, 'Rebel outpost', 3677, -6447, 17, 0, 0)
+ mapService.addLocation(planet, 'Rebel Outpost', 3677, -6447, 17, 0, 0)
def endorLocations(core, planet):
@@ -86,7 +91,7 @@ def endorLocations(core, planet):
# Cities
- mapService.addLocation(planet, 'an outpost', -905, 1584, 17, 0, 0)
+ mapService.addLocation(planet, 'an Outpost', -905, 1584, 17, 0, 0)
def talusLocations(core, planet):
@@ -96,7 +101,7 @@ def talusLocations(core, planet):
mapService.addLocation(planet, 'Dearic', 422, -3004, 17, 0, 0)
mapService.addLocation(planet, 'Nashal', 4163, 5220, 17, 0, 0)
- mapService.addLocation(planet, 'Imperial outpost', -2178, 2300, 17, 0, 0)
+ mapService.addLocation(planet, 'Imperial Outpost', -2178, 2300, 17, 0, 0)
def yavin4Locations(core, planet):
@@ -113,9 +118,9 @@ def dantooineLocations(core, planet):
# Cities
- mapService.addLocation(planet, 'Mining outpost', -640, 2486, 17, 0, 0)
- mapService.addLocation(planet, 'Pirate outpost', 1588, -6399, 17, 0, 0)
- mapService.addLocation(planet, 'Imperial outpost', -4224, -2400, 17, 0, 0)
+ mapService.addLocation(planet, 'Mining Outpost', -640, 2486, 17, 0, 0)
+ mapService.addLocation(planet, 'Pirate Outpost', 1588, -6399, 17, 0, 0)
+ mapService.addLocation(planet, 'Imperial Outpost', -4224, -2400, 17, 0, 0)
def dathomirLocations(core, planet):
@@ -136,4 +141,13 @@ def lokLocations(core, planet):
mapService.addLocation(planet, 'Nym\'s Stronghold', 440, 5029, 17, 0, 0)
mapService.addLocation(planet, 'Imperial outpost', -1920, -3084, 17, 0, 0)
-
\ No newline at end of file
+def kaasLocations(core, planet):
+ mapService = core.mapService
+
+ # Cities
+
+ mapService.addLocation(planet, 'Imperial Outpost', -5118, -2386, 17, 0, 0)
+
+
+
+
diff --git a/scripts/static_spawns/corellia/bela_vistal.py b/scripts/static_spawns/corellia/bela_vistal.py
new file mode 100644
index 00000000..45ea12ee
--- /dev/null
+++ b/scripts/static_spawns/corellia/bela_vistal.py
@@ -0,0 +1,17 @@
+
+import sys
+from resources.datatables import Options
+from resources.datatables import StateStatus
+
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ #junkdealer
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'corellia', long(0), float(6840), float(315), float(-5630), float(0.707), float(-0.707))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'corellia', long(0), float(6852), float(315), float(-5802), float(0.71), float(-0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'corellia', long(0), float(6756), float(315), float(-5778), float(0.71), float(0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'corellia', long(0), float(6970), float(330), float(-5588), float(0.71), float(0.71))
+ return
diff --git a/scripts/static_spawns/corellia/corellia.py b/scripts/static_spawns/corellia/corellia.py
new file mode 100644
index 00000000..0df29b32
--- /dev/null
+++ b/scripts/static_spawns/corellia/corellia.py
@@ -0,0 +1,13 @@
+
+import sys
+from resources.datatables import Options
+from resources.datatables import StateStatus
+
+
+def addPlanetSpawns(core, planet):
+#This Script is no longer to be used for NPC Scripting. - Levarris
+
+
+
+
+ return
diff --git a/scripts/static_spawns/corellia/coronet.py b/scripts/static_spawns/corellia/coronet.py
new file mode 100644
index 00000000..e7974869
--- /dev/null
+++ b/scripts/static_spawns/corellia/coronet.py
@@ -0,0 +1,127 @@
+import sys
+from resources.datatables import Options
+from resources.datatables import StateStatus
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+
+#-Coronet
+ ralMundi = stcSvc.spawnObject('object/mobile/shared_dressed_noble_fat_twilek_male_02.iff', 'corellia', long(0), float(-138.975), float(28), float(-4718.86), float(-0.97), float(0.21))
+ ralMundi.setCustomName2('Ral Mundi')
+ ralMundi.setOptionsBitmask(256)
+
+ ioTsomcren = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_moncal_male_01.iff', 'corellia', long(0), float(-140.701), float(28), float(-4719.16), float(-0.97), float(0.21))
+ ioTsomcren.setCustomName2('Io Tsomcren')
+ ioTsomcren.setOptionsBitmask(256)
+
+ tarthJax = stcSvc.spawnObject('object/mobile/shared_dressed_binayre_pirate_zabrak_male_01.iff', 'corellia', long(0), float(-137.464), float(28), float(-4718.83), float(-0.97), float(0.21))
+ tarthJax.setCustomName2('Tarth Jaxx')
+ tarthJax.setOptionsBitmask(256)
+
+ rebCoord = stcSvc.spawnObject('object/mobile/shared_dressed_rebel_communication_female_01.iff', 'corellia', long(0), float(94.8749), float(28), float(-4519.08), float(-0.97), float(0.21))
+ rebCoord.setCustomName2('Rebel Coordinator')
+ rebCoord.setOptionsBitmask(264)
+
+ huntrJavz = stcSvc.spawnObject('object/mobile/ep3/shared_ep3_rodian_hunter_m.iff', 'corellia', long(0), float(-51.79), float(28), float(-4662.65), float(0.11), float(0.21))
+ huntrJavz.setCustomName2('Hunter Javeezo')
+ huntrJavz.setOptionsBitmask(256)
+
+ dw_heraldRebel = stcSvc.spawnObject('object/mobile/shared_dressed_rebel_general_moncal_male_01.iff', 'corellia', long(0), float(-213.64), float(28), float(-4445.46), float(-0.97), float(0.21))
+ dw_heraldRebel.setCustomName2('Lutin Nightstalker')
+ dw_heraldRebel.setOptionsBitmask(256)
+
+#---Coronet-CityHall-interrior
+ brantlee = stcSvc.spawnObject('object/mobile/shared_dressed_brantlee_spondoon.iff', 'corellia', long(1855463), float(-25.7), float(1.3), float(-0.5), float(0.98), float(0.01))
+ #brantlee.setCustomName2('Brantlee Spondoon')
+ #brantlee.setOptionsBitmask(256)
+
+ cor_brawlr00 = stcSvc.spawnObject('object/mobile/shared_dressed_brawler_trainer_01.iff', 'corellia', long(1855463), float(-1.7274), float(7.9), float(-32.175), float(0.5), float(0.01))
+ #cor_brawlr00.setCustomName2('a brawler')
+
+ cor_btdiplmt02 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_bothan_male_01.iff', 'corellia', long(1855463), float(5.228), float(0.3), float(2.9167), float(-0.47), float(0.21))
+ #cor_btdiplmt02.setCustomName2('a Bothan Diplomat')
+
+ cor_btinfobkr00 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_bothan_female_02.iff', 'corellia', long(1855463), float(5.228), float(0.3), float(4.016), float(0.99), float(0.01))
+ #cor_btinfobkr00.setCustomName2('a Bothan Information Broker')
+
+ cor_btinfobkr01 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_bothan_male_02.iff', 'corellia', long(1855463), float(5.345), float(2.278), float(-27.0615), float(-0.14), float(0.22))
+ #cor_btinfobkr01.setCustomName2('a Bothan Information Broker')
+
+ cor_ent00 = stcSvc.spawnObject('object/mobile/shared_dressed_twk_entertainer.iff', 'corellia', long(1855463), float(0.767877), float(0.3), float(-2.902), float(-0.50), float(0.11))
+ #cor_ent00.setCustomName2('an Entertainer')
+
+ cor_farmer00 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_human_male_02.iff', 'corellia', long(1855463), float(-18.6014), float(1.3026), float(-11.314), float(-0.45), float(0.21))
+ #cor_farmer00.setCustomName2('a farmer')
+
+ cor_farmer01 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_human_female_01.iff', 'corellia', long(1855463), float(0.767877), float(0.3), float(-4.002), float(-0.45), float(0.21))
+ #cor_farmer01.setCustomName2('a farmer')
+
+ galluraHanderin = stcSvc.spawnObject('object/mobile/shared_dressed_noble_human_female_02.iff', 'corellia', long(1855463), float(-6.51554), float(1.303), float(9.6562), float(0.1), float(0.01))
+ #galluraHanderin.setCustomName2('Gallura Handerin')
+ #galluraHanderin.setOptionsBitmask(256)
+
+ corsec_agent00 = stcSvc.spawnObject('object/mobile/shared_dressed_corellia_local_corsec_chief.iff', 'corellia', long(1855463), float(-0.332), float(0.3), float(-2.902), float(0.89), float(0.01))
+ #corsec_agent00.setCustomName2('a CorSec Agent')
+
+ thaleDustrunner = stcSvc.spawnObject('object/mobile/shared_dressed_criminal_smuggler_human_male_01.iff', 'corellia', long(1855463), float(-0.05), float(3.078), float(-10.9388), float(0.99), float(0.11))
+ #thaleDustrunner.setCustomName2('Thale Dustrunner')
+ #thaleDustrunner.setOptionsBitmask(256)
+
+#---Coronet-StarPort-interrior
+ cor_btdiplmt00 = stcSvc.spawnObject('object/mobile/shared_dressed_noble_bothan_female_01.iff', 'corellia', long(1855678), float(56.669), float(-0.521137), float(33.7689), float(0.99), float(0.11))
+ #cor_btdiplmt00.setCustomName2('a Bothan Diplomat')
+
+ cor_btdiplmt01 = stcSvc.spawnObject('object/mobile/shared_dressed_noble_bothan_male_01.iff', 'corellia', long(1855672), float(8.651), float(0.6394), float(74.448), float(-0.47), float(0.21))
+ #cor_btdiplmt01.setCustomName2('a Bothan Diplomat')
+
+ corsec_cadt00 = stcSvc.spawnObject('object/mobile/shared_dressed_corsec_pilot_human_female_01.iff', 'corellia', long(1855678), float(37.163), float(0.6394), float(40.706), float(0.99), float(0.11))
+ #corsec_cadt00.setCustomName2('a CorSec cadet')
+
+ farmer02 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_human_male_04.iff', 'corellia', long(1855683), float(-62.767), float(2.6394), float(40.66), float(-0.45), float(0.21))
+ #farmer02.setCustomName2('a farmer')
+
+ gambler00 = stcSvc.spawnObject('object/mobile/ep3/shared_ep3_cheated_gambler.iff', 'corellia', long(1855675), float(-4.61669), float(0.6394), float(67.826), float(0.99), float(0.11))
+ #gambler00.setCustomName2('a gambler')
+
+ cor_hunter00 = stcSvc.spawnObject('object/mobile/shared_dressed_trader_thug_male_moncal_02.iff', 'corellia', long(1855672), float(8.651), float(0.6394), float(75.548), float(0.99), float(0.11))
+ #cor_hunter00.setCustomName2('a hunter')
+
+ jessbConvorr = stcSvc.spawnObject('object/mobile/shared_dressed_corellia_jesseb_convorr.iff', 'corellia', long(1855684), float(50.2), float(1.0), float(20.1), float(-0.47), float(0.21))
+ #jessbConvorr.setCustomName2('Jesseb Convorr')
+ #jessbConvorr.setOptionsBitmask(256)
+
+ cor_merc00 = stcSvc.spawnObject('object/mobile/shared_dressed_mercenary_strong_hum_m.iff', 'corellia', long(1855683), float(-62.767), float(2.6394), float(41.76), float(0.99), float(0.11))
+ #cor_merc00.setCustomName2('a mercenary')
+
+ cor_miner00 = stcSvc.spawnObject('object/mobile/shared_dressed_mand_miner_hum_03.iff', 'corellia', long(1855678), float(37.163), float(0.6394), float(39.606), float(-0.47), float(0.21))
+ #cor_miner00.setCustomName2('a miner')
+
+ cor_scintst00 = stcSvc.spawnObject('object/mobile/shared_dressed_twi_female_scientist_01.iff', 'corellia', long(1855678), float(56.669), float(-0.521137), float(32.6689), float(-0.47), float(0.21))
+ #cor_scintst00.setCustomName2('a Scientist')
+
+ cor_slice00 = stcSvc.spawnObject('object/mobile/shared_dressed_criminal_slicer_human_male_01.iff', 'corellia', long(1855675), float(-4.61669), float(0.6394), float(66.7263), float(-0.5), float(0.21))
+ #cor_slice00.setCustomName2('a slicer')
+
+#-Coronet-Legacy NPCs
+ stregand = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_bith_male_01.iff', 'corellia', long(0), float(-33), float(28), float(-4424), float(0.67), float(0.21))
+ stregand.setCustomName2('Stregand')
+ stregand.setOptionsBitmask(256)
+
+ borgan = stcSvc.spawnObject('object/creature/npc/base/shared_whiphid_base_male.iff', 'corellia', long(0), float(-34.4), float(28), float(-4418.2), float(0.75), float(0.21))
+ borgan.setCustomName2('Borgan')
+ borgan.setOptionsBitmask(256)
+
+ #Lt. Joth - wrong appearance - looking for a bearded guy with BLUE CorSec Jacket
+ ltJoth = stcSvc.spawnObject('object/mobile/shared_dressed_corellia_cec_officer.iff', 'corellia', long(0), float(-283), float(28), float(-4697), float(0.07), float(0.11))
+ ltJoth.setCustomName2('Lieutenant Joth')
+ ltJoth.setOptionsBitmask(256)
+
+ mackJasper = stcSvc.spawnObject('object/mobile/shared_dressed_corsec_officer_human_male_01.iff', 'corellia', long(0), float(-68.2), float(28), float(-4631.8), float(-0.97), float(0.21))
+ mackJasper.setCustomName2('Lieutenant Mack Jasper')
+ mackJasper.setOptionsBitmask(256)
+
+ #Junkdealer will be added as soon as i can find coords
+
+
+ return
\ No newline at end of file
diff --git a/scripts/static_spawns/corellia/doaba_guerfel.py b/scripts/static_spawns/corellia/doaba_guerfel.py
new file mode 100644
index 00000000..bb48cb72
--- /dev/null
+++ b/scripts/static_spawns/corellia/doaba_guerfel.py
@@ -0,0 +1,12 @@
+
+import sys
+from resources.datatables import Options
+from resources.datatables import StateStatus
+
+
+def addPlanetSpawns(core, planet):
+
+
+ #junkdealer will be added as soon as i find coords
+
+ return
diff --git a/scripts/static_spawns/corellia/factional_recruiters.py b/scripts/static_spawns/corellia/factional_recruiters.py
new file mode 100644
index 00000000..17de611c
--- /dev/null
+++ b/scripts/static_spawns/corellia/factional_recruiters.py
@@ -0,0 +1,27 @@
+import sys
+# Project SWG: Imperial Recruiters tatooine: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+ #recruiter Imp Outpost
+
+ stcSvc.spawnObject('object/mobile/shared_dressed_imperial_officer_m_4.iff', 'corellia', long(0), float(6718), float(315), float(-5809), float(0), float(0), float(0), float(0))
+
+ #rebrecruiter tyrena
+ tyrenaCantina = core.objectService.getObject(long(2625352))
+ stcSvc.spawnObject('object/mobile/shared_dressed_rebel_recruiter_moncal_male_01.iff', 'corellia', tyrenaCantina.getCellByCellNumber(11), float(-25.8), float(-0.9), float(0.4), float(0), float(-0.707), float(0), float(0.707))
+
+ #cnet cantina
+ cnetCantina = core.objectService.getObject(long(8105493))
+ stcSvc.spawnObject('object/mobile/shared_dressed_rebel_recruiter_twilek_female_01.iff', 'corellia', cnetCantina.getCellByCellNumber(11), float(-25.8), float(-0.9), float(0.4), float(0), float(-0.707), float(0), float(0.707))
+
+
+ return
\ No newline at end of file
diff --git a/scripts/static_spawns/corellia/kor_vella.py b/scripts/static_spawns/corellia/kor_vella.py
new file mode 100644
index 00000000..bb48cb72
--- /dev/null
+++ b/scripts/static_spawns/corellia/kor_vella.py
@@ -0,0 +1,12 @@
+
+import sys
+from resources.datatables import Options
+from resources.datatables import StateStatus
+
+
+def addPlanetSpawns(core, planet):
+
+
+ #junkdealer will be added as soon as i find coords
+
+ return
diff --git a/scripts/static_spawns/corellia/placeholder.txt b/scripts/static_spawns/corellia/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/static_spawns/corellia/tyrena.py b/scripts/static_spawns/corellia/tyrena.py
new file mode 100644
index 00000000..bb48cb72
--- /dev/null
+++ b/scripts/static_spawns/corellia/tyrena.py
@@ -0,0 +1,12 @@
+
+import sys
+from resources.datatables import Options
+from resources.datatables import StateStatus
+
+
+def addPlanetSpawns(core, planet):
+
+
+ #junkdealer will be added as soon as i find coords
+
+ return
diff --git a/scripts/static_spawns/dantooine/dantooine.py b/scripts/static_spawns/dantooine/dantooine.py
new file mode 100644
index 00000000..ad56f992
--- /dev/null
+++ b/scripts/static_spawns/dantooine/dantooine.py
@@ -0,0 +1,21 @@
+import sys
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+########################################################
+# DO NOT ADD ANYTHING ELSE TO THIS SCRIPT, PLEASE USE THE
+# SUBFOLDERS FOR EACH PLANET AND CREATE NEW SCRIPTS FOR
+# EACH AREA OF A PLANET. - LEVARRIS
+########################################################
+ stcSvc = core.staticService
+ # Blue Frog: Uncomment only when needed for testing.
+ stcSvc.spawnObject('object/tangible/terminal/shared_terminal_character_builder.iff', 'dantooine', long(0), float(4196), float(9), float(5206), float(0.70), float(0.71))
+
+########################################################
+# DO NOT ADD ANYTHING ELSE TO THIS SCRIPT, PLEASE USE THE
+# SUBFOLDERS FOR EACH PLANET AND CREATE NEW SCRIPTS FOR
+# EACH AREA OF A PLANET. - LEVARRIS
+########################################################
+ return
+
diff --git a/scripts/static_spawns/dantooine/factional_recruiters.py b/scripts/static_spawns/dantooine/factional_recruiters.py
new file mode 100644
index 00000000..22c27df9
--- /dev/null
+++ b/scripts/static_spawns/dantooine/factional_recruiters.py
@@ -0,0 +1,22 @@
+import sys
+# Project SWG: Imperial Recruiters dantooine: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+ #imprecruiter Imp Outpost
+
+ stcSvc.spawnObject('object/mobile/shared_dressed_imperial_officer_m_6.iff', 'dantooine', long(0), float(-4198), float(3), float(-2411), float(0.819), float(-0.572))
+
+ #rebrecruiter abandoned base
+ stcSvc.spawnObject('object/mobile/shared_dressed_rebel_recruiter_moncal_male_01.iff', 'dantooine', long(0), float(-6817), float(46), float(5511), float(0), float(-0.707), float(0), float(0.707))
+
+
+ return
\ No newline at end of file
diff --git a/scripts/static_spawns/dantooine/force_crystal_hunters_cave.py b/scripts/static_spawns/dantooine/force_crystal_hunters_cave.py
new file mode 100644
index 00000000..e2b6b0e1
--- /dev/null
+++ b/scripts/static_spawns/dantooine/force_crystal_hunters_cave.py
@@ -0,0 +1,30 @@
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+ hunter1 = stcSvc.spawnObject('force_sensitive_crypt_crawler', 'dantooine', long(8535484), float(26), float(-41), float(-68), float(2.77), float(1.82))
+ hunter2 = stcSvc.spawnObject('untrained_wielder_of_the_dark_side', 'dantooine', long(8535484), float(23), float(-41), float(-65), float(1.52), float(2.94))
+ hunter3 = stcSvc.spawnObject('untrained_wielder_of_the_dark_side', 'dantooine', long(8535484), float(47), float(-48), float(-65), float(0.72), float(-0.68))
+ hunter4 = stcSvc.spawnObject('untrained_wielder_of_the_dark_side', 'dantooine', long(8535484), float(49.12), float(-47.48), float(-13.41), float(1), float(-0.05))
+ hunter5 = stcSvc.spawnObject('dark_force_crystal_hunter', 'dantooine', long(8535485), float(93.10), float(-61.87), float(-14.25), float(-0.7), float(0.7))
+ hunter6 = stcSvc.spawnObject('force_sensitive_crypt_crawler', 'dantooine', long(8535485), float(62.2), float(-69.0), float(-37.8), float(0.68), float(0.72))
+ hunter7 = stcSvc.spawnObject('dark_force_crystal_hunter', 'dantooine', long(8535484), float(52.14), float(-67.8), float(-42.9), float(0.51), float(0.86))
+ hunter8 = stcSvc.spawnObject('force_sensitive_crypt_crawler', 'dantooine', long(8535486), float(84.94), float(-77.09), float(-63.28), float(-0.19), float(0.98))
+ hunter9 = stcSvc.spawnObject('force_sensitive_crypt_crawler', 'dantooine', long(8535486), float(65.30), float(-76.16), float(-70.15), float(0.38), float(0.92))
+ hunter10 = stcSvc.spawnObject('untrained_wielder_of_the_dark_side', 'dantooine', long(8535486), float(65.636), float(-76.87), float(-81.40), float(-0.123), float(0.99))
+ hunter11 = stcSvc.spawnObject('dark_force_crystal_hunter', 'dantooine', long(8535487), float(80.34), float(-77.29), float(-92.77), float(-0.2), float(0.97))
+ hunter12 = stcSvc.spawnObject('dark_force_crystal_hunter', 'dantooine', long(8535487), float(80.34), float(-77.29), float(-92.77), float(-0.2), float(0.97))
+ objSvc = core.objectService
+ magSeal1 = objSvc.getObject(200335); #(200336-1)
+ if magSeal1 != None:
+ lootPoolNames_1 = ['Junk']
+ lootPoolChances_1 = [100]
+ lootGroupChance_1 = 90
+ magSeal1.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1)
+ lotSvc = core.lootService
+ lotSvc.handleContainer(200335,'Junk','dantooine')
+
+ return
+
\ No newline at end of file
diff --git a/scripts/static_spawns/dantooine/imperial_outpost.py b/scripts/static_spawns/dantooine/imperial_outpost.py
new file mode 100644
index 00000000..d19b18d5
--- /dev/null
+++ b/scripts/static_spawns/dantooine/imperial_outpost.py
@@ -0,0 +1,29 @@
+import sys
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ stormtrooper1 = stcSvc.spawnObject('eow_fbase_stormtrooper', 'dantooine', long(0), float(-4211), float(3), float(-2384), float(0.011), float(0.999))
+ stormtrooper2 = stcSvc.spawnObject('eow_fbase_stormtrooper', 'dantooine', long(0), float(-4212), float(3), float(-2384), float(0.011), float(0.999))
+ stormtrooper3 = stcSvc.spawnObject('eow_fbase_stormtrooper', 'dantooine', long(0), float(-4211), float(3), float(-2386), float(0.011), float(0.999))
+ stormtrooper4 = stcSvc.spawnObject('eow_fbase_stormtrooper', 'dantooine', long(0), float(-4212), float(3), float(-2386), float(0.011), float(0.999))
+ stormtrooper5 = stcSvc.spawnObject('eow_fbase_stormtrooper', 'dantooine', long(0), float(-4212), float(3), float(-2388), float(0.011), float(0.999))
+
+ stormtrooper6 = stcSvc.spawnObject('eow_fbase_stormtrooper', 'dantooine', long(0), float(-4229), float(3), float(-2394), float(0.703), float(0.710))
+ corporal1 = stcSvc.spawnObject('eow_fbase_imperial_corporal', 'dantooine', long(0), float(-4228), float(3), float(-2395), float(0.703), float(0.710))
+ corporal2 = stcSvc.spawnObject('eow_fbase_imperial_corporal', 'dantooine', long(0), float(-4230), float(3), float(-2394), float(0.703), float(0.710))
+
+ atst1 = stcSvc.spawnObject('object/mobile/shared_atst.iff', 'dantooine', long(0), float(-4291), float(3), float(-2433), float(0.819), float(-0.572))
+ atst2 = stcSvc.spawnObject('object/mobile/shared_atst.iff', 'dantooine', long(0), float(-4154), float(3), float(-2383), float(0.264), float(0.964))
+
+ r5u0 = stcSvc.spawnObject('object/creature/npc/droid/shared_r4_base.iff', 'dantooine', long(0), float(-4231), float(3), float(-2363), float(0.264), float(0.964))
+ r4h3 = stcSvc.spawnObject('object/creature/npc/droid/shared_r5_base.iff', 'dantooine', long(0), float(-4215), float(3), float(-2363), float(0.264), float(0.964))
+
+ commoner1 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_fat_human_male_01.iff', 'dantooine', long(0), float(-4224), float(3), float(-2366), float(0.264), float(0.964))
+ commoner1.setOptionsBitmask(256)
+ commoner2 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_fat_human_female_01.iff', 'dantooine', long(0), float(-4238), float(3), float(-2365), float(0.264), float(0.964))
+ commoner2.setOptionsBitmask(256)
+ return
diff --git a/scripts/static_spawns/dantooine/placeholder.txt b/scripts/static_spawns/dantooine/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/static_spawns/dathomir/ns_vs_smc_battle.py b/scripts/static_spawns/dathomir/ns_vs_smc_battle.py
new file mode 100644
index 00000000..98c3f2cb
--- /dev/null
+++ b/scripts/static_spawns/dathomir/ns_vs_smc_battle.py
@@ -0,0 +1,37 @@
+import sys
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ Nightsister_Elder_1 = stcSvc.spawnObject('nightsister_elder', 'dathomir', long(0), float(-2520), float(130), float(1468), float(0.0007), float(0.999))
+ Nightsister_Spellweaver_1 = stcSvc.spawnObject('nightsister_spell_weaver', 'dathomir', long(0), float(-2497), float(128), float(1484), float(0.0007), float(0.999))
+ Nightsister_Spellweaver_2 = stcSvc.spawnObject('nightsister_spell_weaver', 'dathomir', long(0), float(-2539), float(128), float(1484), float(0.0007), float(0.999))
+ Nightsister_Rancor_1 = stcSvc.spawnObject('nightsister_rancor', 'dathomir', long(0), float(-2480), float(126), float(1503), float(0.0007), float(0.999))
+ Nightsister_RancorTamer_1 = stcSvc.spawnObject('nightsister_rancor_tamer', 'dathomir', long(0), float(-2495), float(122), float(1501), float(0.0007), float(0.999))
+ Nightsister_Outcast_1 = stcSvc.spawnObject('nightsister_outcast', 'dathomir', long(0), float(-2480), float(119), float(1519), float(0.0007), float(0.999))
+ Nightsister_Initiate_1 = stcSvc.spawnObject('nightsister_initiate', 'dathomir', long(0), float(-2494), float(124), float(1518), float(0.0007), float(0.999))
+ Nightsister_Sentinel_1 = stcSvc.spawnObject('nightsister_sentinal', 'dathomir', long(0), float(-2516), float(124), float(1520), float(0.0007), float(0.999))
+ Nightsister_Stalker_1 = stcSvc.spawnObject('nightsister_stalker', 'dathomir', long(0), float(-2516), float(128), float(1503), float(0.0007), float(0.999))
+ Nightsister_Sentinel_2 = stcSvc.spawnObject('nightsister_sentinal', 'dathomir', long(0), float(-2516), float(124), float(1520), float(0.0007), float(0.999))
+ Nightsister_Initiate_1 = stcSvc.spawnObject('nightsister_initiate', 'dathomir', long(0), float(-2540), float(125), float(1521), float(0.0007), float(0.999))
+ Nightsister_Outcast_2 = stcSvc.spawnObject('nightsister_outcast', 'dathomir', long(0), float(-2557), float(125), float(1522), float(0.0007), float(0.999))
+ Nightsister_Rancor_2 = stcSvc.spawnObject('nightsister_rancor', 'dathomir', long(0), float(-2556), float(125), float(1505), float(0.0007), float(0.999))
+ Nightsister_RancorTamer_2 = stcSvc.spawnObject('nightsister_rancor_tamer', 'dathomir', long(0), float(-2540), float(126), float(1504), float(0.0007), float(0.999))
+
+ SMC_Councilwoman_1 = stcSvc.spawnObject('singing_mtn_clan_councilwoman', 'dathomir', long(0), float(-2520), float(130), float(1598), float(0.999), float(0.002))
+ SMC_Archwitch_1 = stcSvc.spawnObject('singing_mtn_clan_arch_witch', 'dathomir', long(0), float(-2543), float(131), float(1585), float(0.999), float(0.002))
+ SMC_Archwitch_2 = stcSvc.spawnObject('singing_mtn_clan_arch_witch', 'dathomir', long(0), float(-2498), float(124), float(1585), float(0.999), float(0.002))
+ SMC_Dragoon_1 = stcSvc.spawnObject('singing_mtn_clan_dragoon', 'dathomir', long(0), float(-2516), float(123), float(1565), float(0.999), float(0.002))
+ SMC_RancorTamer_1 = stcSvc.spawnObject('singing_mtn_clan_rancor_tamer', 'dathomir', long(0), float(-2497), float(121), float(1568), float(0.999), float(0.002))
+ SMC_Rancor_1 = stcSvc.spawnObject('singing_mountain_clan_rancor', 'dathomir', long(0), float(-2481), float(119), float(1568), float(0.999), float(0.002))
+ SMC_RancorTamer_2 = stcSvc.spawnObject('singing_mtn_clan_rancor_tamer', 'dathomir', long(0), float(-2543), float(128), float(1566), float(0.999), float(0.002))
+ SMC_Rancor_2 = stcSvc.spawnObject('singing_mountain_clan_rancor', 'dathomir', long(0), float(-2556), float(130), float(1564), float(0.999), float(0.002))
+ SMC_Scout_1 = stcSvc.spawnObject('singing_mtn_clan_scout', 'dathomir', long(0), float(-2481), float(118), float(1547), float(0.999), float(0.002))
+ SMC_Initiate_1 = stcSvc.spawnObject('singing_mtn_clan_initiate', 'dathomir', long(0), float(-2497), float(120), float(1547), float(0.999), float(0.002))
+ SMC_Sentry_1 = stcSvc.spawnObject('singing_mountain_clan_sentry', 'dathomir', long(0), float(-2515), float(122), float(1547), float(0.999), float(0.002))
+ SMC_Initiate_1 = stcSvc.spawnObject('singing_mtn_clan_initiate', 'dathomir', long(0), float(-2543), float(126), float(1547), float(0.999), float(0.002))
+ SMC_Scout_1 = stcSvc.spawnObject('singing_mtn_clan_scout', 'dathomir', long(0), float(-2556), float(127), float(1547), float(0.999), float(0.002))
+ return
diff --git a/scripts/static_spawns/dathomir/placeholder.txt b/scripts/static_spawns/dathomir/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/static_spawns/endor/placeholder.txt b/scripts/static_spawns/endor/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/static_spawns/kaas/kaas.py b/scripts/static_spawns/kaas/kaas.py
new file mode 100644
index 00000000..9b82905c
--- /dev/null
+++ b/scripts/static_spawns/kaas/kaas.py
@@ -0,0 +1,89 @@
+import sys
+# Project SWG: Dromund Kaas: Static Spawns
+# (C)2014 ProjectSWG
+
+# Do not make ANY changes to this script without direct approval from Levarris!
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+#Dark Temple Area
+ #Structures #TODO: Ascertain why the core is not spawning the child cells.
+
+ #building = stcSvc.spawnObject('object/building/military/shared_military_base_police_station_imperial_lok_otto.iff', 'kaas', long(0), float(-5117.8), float(80.0), float(-2314.1), float(0), float(0))
+ #print building.getCells().size()
+ #stcSvc.spawnObject('object/building/player/shared_player_house_corellia_medium_style_01.iff', 'kaas', long(0), float(-5078.6), float(80.0), float(-2302.5), float(0), float(0))
+ #stcSvc.spawnObject('object/building/general/shared_bunker_imperial_weapons_research_facility_01.iff', 'kaas', long(0), float(-5159.5), float(80.0), float(-2298.7), float(0), float(0))
+ #stcSvc.spawnObject('object/building/content/aurilia/shared_aurilia_pyramid_hut.iff', 'kaas', long(0), float(-5163.9), float(79.0), float(-2369.6), float(0.71), float(0.71))
+ #stcSvc.spawnObject('object/building/content/aurilia/shared_aurilia_pyramid_hut.iff', 'kaas', long(0), float(-5163.9), float(79.0), float(-2351.6), float(0.71), float(0.71))
+ #stcSvc.spawnObject('object/building/content/aurilia/shared_aurilia_pyramid_hut.iff', 'kaas', long(0), float(-5072.1), float(79.0), float(-2369.6), float(-0.71), float(0.71))
+ #stcSvc.spawnObject('object/building/content/aurilia/shared_aurilia_pyramid_hut.iff', 'kaas', long(0), float(-5072.1), float(79.0), float(-2351.6), float(-0.71), float(0.71))
+ #stcSvc.spawnObject('object/building/military/shared_outpost_cloning_facility_s02.iff', 'kaas', long(0), float(-5072.1), float(80.0), float(-2279.5), float(0.71), float(0), float(-0.71), float(0))
+
+ #Terminals
+ stcSvc.spawnObject('object/tangible/terminal/shared_terminal_bank.iff', 'kaas', long(0), float(-5080.8), float(80.0), float(-2275.7), float(-0.71), float(0.71))
+ stcSvc.spawnObject('object/tangible/terminal/shared_terminal_mission.iff', 'kaas', long(0), float(-5108.7), float(80.0), float(-2289.2), float(0), float(0))
+ stcSvc.spawnObject('object/tangible/terminal/shared_terminal_mission.iff', 'kaas', long(0), float(-5127.3), float(80.0), float(-2289.2), float(0), float(0))
+
+
+ #Decor
+ stcSvc.spawnObject('object/static/vehicle/shared_static_lambda_shuttle.iff', 'kaas', long(0), float(-5078.1), float(80.0), float(-2256.0), float(-0.70), float(0.70))
+ stcSvc.spawnObject('object/building/content/aurilia/shared_aurilia_crystal_centerpiece.iff', 'kaas', long(0), float(-5121.5), float(80.0), float(-2360.5), float(0), float(0))
+ stcSvc.spawnObject('object/static/structure/tatooine/shared_antenna_tatt_style_1.iff', 'kaas', long(0), float(-5146.7), float(80.0), float(-2301.7), float(0), float(0))
+ stcSvc.spawnObject('object/static/installation/shared_mockup_power_generator_fusion_style_1.iff', 'kaas', long(0), float(-5146.7), float(80.0), float(-2301.7), float(0.71), float(0.71))
+ stcSvc.spawnObject('object/static/installation/shared_mockup_power_generator_photo_bio_style_1.iff', 'kaas', long(0), float(-5146.9), float(80.0), float(-2294.5), float(0), float(0))
+ stcSvc.spawnObject('object/static/vehicle/shared_static_tie_bomber.iff', 'kaas', long(0), float(-5158.5), float(80.5), float(-2232.4), float(0.70), float(0.70))
+ stcSvc.spawnObject('object/static/vehicle/shared_static_tie_fighter.iff', 'kaas', long(0), float(-5158.5), float(85.0), float(-2257.4), float(0.70), float(0.70))
+
+
+ #Streetlamps
+ stcSvc.spawnObject('object/static/structure/general/shared_streetlamp_large_blue_style_01_on.iff', 'kaas', long(0), float(-5109.9), float(80.0), float(-2289.9), float(0), float(0))
+ stcSvc.spawnObject('object/static/structure/general/shared_streetlamp_large_blue_style_01_on.iff', 'kaas', long(0), float(-5125.9), float(80.0), float(-2289.9), float(0), float(0))
+ stcSvc.spawnObject('object/static/structure/general/shared_streetlamp_large_blue_style_01_on.iff', 'kaas', long(0), float(-5115.0), float(80.0), float(-2346.6), float(0), float(0))
+ stcSvc.spawnObject('object/static/structure/general/shared_streetlamp_large_blue_style_01_on.iff', 'kaas', long(0), float(-5120.8), float(80.0), float(-2346.6), float(0), float(0))
+ stcSvc.spawnObject('object/static/structure/general/shared_streetlamp_large_blue_style_01_on.iff', 'kaas', long(0), float(-5127.3), float(80.0), float(-2219.0), float(0), float(0))
+ stcSvc.spawnObject('object/static/structure/general/shared_streetlamp_large_blue_style_01_on.iff', 'kaas', long(0), float(-5111.2), float(80.0), float(-2219.0), float(0), float(0))
+ stcSvc.spawnObject('object/static/structure/general/shared_streetlamp_large_blue_style_01_on.iff', 'kaas', long(0), float(-5162.8), float(80.0), float(-2285.9), float(0), float(0))
+ stcSvc.spawnObject('object/static/structure/general/shared_streetlamp_large_blue_style_01_on.iff', 'kaas', long(0), float(-5067.3), float(80.0), float(-2294.9), float(0), float(0))
+ stcSvc.spawnObject('object/static/structure/general/shared_streetlamp_large_blue_style_01_on.iff', 'kaas', long(0), float(-5068.6), float(80.0), float(-2228.1), float(0), float(0))
+ stcSvc.spawnObject('object/static/structure/general/shared_streetlamp_large_blue_style_01_on.iff', 'kaas', long(0), float(-5078.5), float(80.0), float(-2360.5), float(0), float(0))
+ stcSvc.spawnObject('object/static/structure/general/shared_streetlamp_large_blue_style_01_on.iff', 'kaas', long(0), float(-5157.5), float(80.0), float(-2360.5), float(0), float(0))
+
+
+ #Dark Temple Interior
+
+
+#Village of the Descendants Area
+ #stcSvc.spawnObject('object/building/general/shared_cave_01.iff', 'kaas', long(0), float(3348.1), float(110), float(2562.1), float(0), float(0))
+
+#Kaas City Ruins
+
+#Tomb of Vitiate
+
+#Northwest Cave
+ #stcSvc.spawnObject('object/building/general/shared_cave_01.iff', 'kaas', long(0), float(-6135.3), float(185), float(6575.0), float(0), float(0))
+
+#Abandoned Separatist Base
+ #stcSvc.spawnObject('object/building/military/shared_military_base_police_station_rebel_style_01.iff', 'kaas', long(0), float(-3538), float(80), float(6758), float(0), float(0))
+
+#Sith Meditation Chamber
+ #stcSvc.spawnObject('object/building/player/shared_player_house_sith_meditation_room.iff', 'kaas', long(0), float(4766), float(126), float(-7307), float(0), float(0))
+
+#Large Ruin
+ stcSvc.spawnObject('object/static/structure/dantooine/shared_dant_jedi_main_structure.iff', 'kaas', long(0), float(-434), float(77), float(-2252), float(0), float(0))
+
+#Central North Ruin
+ stcSvc.spawnObject('object/static/structure/dantooine/shared_dant_jedi_wall_1.iff', 'kaas', long(0), float(-50), float(77), float(6313), float(0), float(0))
+ stcSvc.spawnObject('object/static/structure/dantooine/shared_dant_jedi_wall_2.iff', 'kaas', long(0), float(-58), float(77), float(6304), float(0.71), float(0.71))
+ stcSvc.spawnObject('object/static/structure/dantooine/shared_dant_jedi_wall_1.iff', 'kaas', long(0), float(-58), float(77), float(6321), float(-0.71), float(0.71))
+ stcSvc.spawnObject('object/static/structure/dantooine/shared_dant_jedi_wall_2.iff', 'kaas', long(0), float(-71), float(77), float(6312), float(0), float(0))
+ stcSvc.spawnObject('object/static/structure/dantooine/shared_dant_jedi_temple_pillar.iff', 'kaas', long(0), float(-71.0), float(78), float(6320.8), float(0), float(0))
+ stcSvc.spawnObject('object/static/structure/dantooine/shared_dant_jedi_main_structure.iff', 'kaas', long(0), float(-97), float(78), float(6376), float(0), float(0))
+
+ return
+
diff --git a/scripts/static_spawns/kaas/placeholder.txt b/scripts/static_spawns/kaas/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/static_spawns/kashyyyk_main/placeholder.txt b/scripts/static_spawns/kashyyyk_main/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/static_spawns/lok/factional_recruiters.py b/scripts/static_spawns/lok/factional_recruiters.py
new file mode 100644
index 00000000..8a6e3cd3
--- /dev/null
+++ b/scripts/static_spawns/lok/factional_recruiters.py
@@ -0,0 +1,18 @@
+import sys
+# Project SWG: Imperial Recruiters tatooine: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+ #recruiter Imp Outpost
+
+ stcSvc.spawnObject('object/mobile/shared_dressed_imperial_officer_m_4.iff', 'lok', long(0), float(-1843), float(12), float(-3069), float(0.71), float(0), float(0.70), float(0))
+
+ return
\ No newline at end of file
diff --git a/scripts/static_spawns/lok/lok.py b/scripts/static_spawns/lok/lok.py
new file mode 100644
index 00000000..658c4a93
--- /dev/null
+++ b/scripts/static_spawns/lok/lok.py
@@ -0,0 +1,14 @@
+
+import sys
+from resources.datatables import Options
+from resources.datatables import StateStatus
+
+def addPlanetSpawns(core, planet):
+########################################################
+# DO NOT ADD ANYTHING ELSE TO THIS SCRIPT, PLEASE USE THE
+# SUBFOLDERS FOR EACH PLANET AND CREATE NEW SCRIPTS FOR
+# EACH AREA OF A PLANET. - LEVARRIS
+########################################################
+
+
+ return
diff --git a/scripts/static_spawns/lok/nyms_stronghold.py b/scripts/static_spawns/lok/nyms_stronghold.py
new file mode 100644
index 00000000..c45e284d
--- /dev/null
+++ b/scripts/static_spawns/lok/nyms_stronghold.py
@@ -0,0 +1,18 @@
+import sys
+# Project SWG: Imperial Recruiters tatooine: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+ #recruiter Imp Outpost
+
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_03.iff', 'lok', long(0), float(366), float(9), float(5202), float(0.71), float(0), float(0.70), float(0))
+
+ return
\ No newline at end of file
diff --git a/scripts/static_spawns/lok/placeholder.txt b/scripts/static_spawns/lok/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/static_spawns/mustafar/placeholder.txt b/scripts/static_spawns/mustafar/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/static_spawns/naboo.py b/scripts/static_spawns/naboo.py
deleted file mode 100644
index ac5d19ca..00000000
--- a/scripts/static_spawns/naboo.py
+++ /dev/null
@@ -1,31 +0,0 @@
-import sys
-
-def addPlanetSpawns(core, planet):
-
- stcSvc = core.staticService
-
- # Travel spawns
-
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'naboo', long(0), float(-5487.8), float(-149.4), float(-12.5), float(-0.710457), float(0.703739)) # Lake Retreat
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'naboo', long(0), float(4717.7), float(4.2), float(-4650.6), float(1), float(0)) # moenia starport
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'naboo', long(0), float(4968.6), float(4.4), float(-4883.3), float(0.71), float(-0.71)) # moenia shuttleport
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'naboo', long(0), float(5301.1), float(-192), float(6671.5), float(0), float(1)) # kaadara starport
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'naboo', long(0), float(5134.3), float(-191.4), float(6617.2), float(-0.373413), float(0.927665)) # kaadara shuttleport
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'naboo', long(0), float(1347.8), float(13), float(2760.3), float(0.988256), float(0.152808)) # keren starport
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'naboo', long(0), float(1558.3), float(25.6), float(2884.8), float(1), float(0)) # keren shuttleport a
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'naboo', long(0), float(2027.7), float(19.6), float(2535.2), float(-0.710457), float(0.703739)) # keren shuttleport b
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'naboo', long(0), float(5338.6), float(327.6), float(-1567.2), float(-0.710457), float(0.703739)) # deeja peek shuttleport
-
-
-
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'naboo', long(0), float(-5487), float(-149.4), float(-31.8), float(-0.710457), float(0.703739)) # Lake Retreat
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'naboo', long(0), float(5121.5), float(-191.4), float(6603.8), float(-0.373413), float(0.927665)) # kaadara shuttleport
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'naboo', long(0), float(1577.6), float(25.6), float(2845.1), float(1), float(0)) # keren shuttleport a
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'naboo', long(0), float(2028.5), float(19.6), float(2515.6), float(-0.710457), float(0.703739)) # keren shuttleport b
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'naboo', long(0), float(5339.3), float(327.6), float(-1586.7), float(-0.710457), float(0.703739)) # deeja peek shuttleport
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'naboo', long(0), float(4969.4), float(4.4), float(-4902.6), float(-0.710457), float(0.703739)) # moenia shuttleport
-
-
-
-
- return
\ No newline at end of file
diff --git a/scripts/static_spawns/naboo/deeja_peak.py b/scripts/static_spawns/naboo/deeja_peak.py
new file mode 100644
index 00000000..6fdf650b
--- /dev/null
+++ b/scripts/static_spawns/naboo/deeja_peak.py
@@ -0,0 +1,15 @@
+import sys
+from resources.datatables import Options
+from resources.datatables import StateStatus
+
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ #junkdealer
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'naboo', long(0), float(5135), float(346.5), float(-1514), float(0.707), float(0.707))
+
+
+ return
diff --git a/scripts/static_spawns/naboo/factional_recruiters.py b/scripts/static_spawns/naboo/factional_recruiters.py
new file mode 100644
index 00000000..4be2c940
--- /dev/null
+++ b/scripts/static_spawns/naboo/factional_recruiters.py
@@ -0,0 +1,24 @@
+import sys
+# Project SWG: Imperial Recruiters Naboo: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+ #recruiter theed
+ stcSvc.spawnObject('object/mobile/shared_dressed_imperial_officer_m_3.iff', 'naboo', long(0), float(-4927.9), float(6), float(4230.5), float(-0.998), float(0), float(0.06), float(0))
+
+ #deeja Peek
+ stcSvc.spawnObject('object/mobile/shared_dressed_imperial_officer_m_5.iff', 'naboo', long(0), float(5307), float(326), float(-1584), float(0), float(0), float(0), float(0))
+
+ #Rebrecruiter Moenia
+ stcSvc.spawnObject('object/mobile/shared_dressed_rebel_recruiter_human_female_02.iff', 'naboo', long(0), float(4827), float(4), float(-4697), float(0), float(-0.707), float(0), float(0.707))
+
+
+ return
\ No newline at end of file
diff --git a/scripts/static_spawns/naboo/kaadara.py b/scripts/static_spawns/naboo/kaadara.py
new file mode 100644
index 00000000..bb48cb72
--- /dev/null
+++ b/scripts/static_spawns/naboo/kaadara.py
@@ -0,0 +1,12 @@
+
+import sys
+from resources.datatables import Options
+from resources.datatables import StateStatus
+
+
+def addPlanetSpawns(core, planet):
+
+
+ #junkdealer will be added as soon as i find coords
+
+ return
diff --git a/scripts/static_spawns/naboo/keren.py b/scripts/static_spawns/naboo/keren.py
new file mode 100644
index 00000000..2c6c6ce0
--- /dev/null
+++ b/scripts/static_spawns/naboo/keren.py
@@ -0,0 +1,16 @@
+import sys
+from resources.datatables import Options
+from resources.datatables import StateStatus
+
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ #junkdealer
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'naboo', long(0), float(1242), float(13), float(2732), float(0.707), float(0.707))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'naboo', long(0), float(1774), float(12.5), float(2625), float(0.707), float(0.707))
+
+
+ return
diff --git a/scripts/static_spawns/naboo/moenia.py b/scripts/static_spawns/naboo/moenia.py
new file mode 100644
index 00000000..4c63c0fc
--- /dev/null
+++ b/scripts/static_spawns/naboo/moenia.py
@@ -0,0 +1,17 @@
+
+import sys
+from resources.datatables import Options
+from resources.datatables import StateStatus
+
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # TODO Check all NPCs for personalized scripting, change format.
+
+ #Junkdealer
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_03.iff', 'naboo', long(0), float(4318.83), float(5.15), float(-4797.57), float(0), float(1))
+
+ return
diff --git a/scripts/static_spawns/naboo/naboo.py b/scripts/static_spawns/naboo/naboo.py
new file mode 100644
index 00000000..7b0f3034
--- /dev/null
+++ b/scripts/static_spawns/naboo/naboo.py
@@ -0,0 +1,11 @@
+import sys
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+########################################################
+# DO NOT ADD ANYTHING ELSE TO THIS SCRIPT, PLEASE USE THE
+# SUBFOLDERS FOR EACH PLANET AND CREATE NEW SCRIPTS FOR
+# EACH AREA OF A PLANET. - LEVARRIS
+
+ return
\ No newline at end of file
diff --git a/scripts/static_spawns/naboo/placeholder.txt b/scripts/static_spawns/naboo/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/static_spawns/naboo/theed.py b/scripts/static_spawns/naboo/theed.py
new file mode 100644
index 00000000..292e9649
--- /dev/null
+++ b/scripts/static_spawns/naboo/theed.py
@@ -0,0 +1,24 @@
+import sys
+from resources.datatables import Options
+from resources.datatables import StateStatus
+
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ #junkdealer
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'naboo', long(0), float(-5694), float(6.5), float(4182), float(0.707), float(-0.707))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'naboo', long(0), float(-5717), float(6.5), float(4159), float(0.71), float(0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'naboo', long(0), float(-5086), float(6), float(4142), float(0.71), float(0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'naboo', long(0), float(-5147), float(6.5), float(4158), float(0.71), float(0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'naboo', long(0), float(-5114), float(6.5), float(4161), float(0.71), float(-0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'naboo', long(0), float(-5222), float(6), float(4217), float(0.71), float(-0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'naboo', long(0), float(-5127), float(6), float(4239), float(0.71), float(0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'naboo', long(0), float(-5761), float(6.6), float(4234), float(0.71), float(0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'naboo', long(0), float(-5475), float(6), float(4105), float(0.71), float(0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'naboo', long(0), float(-4999), float(6), float(4119), float(0.71), float(0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'naboo', long(0), float(-5883), float(6), float(4214), float(0.71), float(0.71))
+
+ return
diff --git a/scripts/static_spawns/rori/emperors_hand.py b/scripts/static_spawns/rori/emperors_hand.py
new file mode 100644
index 00000000..4d94581f
--- /dev/null
+++ b/scripts/static_spawns/rori/emperors_hand.py
@@ -0,0 +1,15 @@
+import sys
+import java.util.Random
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+ random = java.util.Random()
+
+ mintime = 14400
+ maxtime = 25200
+
+ respawntimer = random.nextInt((maxtime - mintime) + 1800)
+
+ stcSvc.spawnObject('restuss_emperors_hand', 'rori', long(0), float(5283), float(80), float(5746), float(0.641), float(0.767),float(0),float(0), int(respawntimer))
+ return
\ No newline at end of file
diff --git a/scripts/static_spawns/rori.py b/scripts/static_spawns/rori/restuss.py
similarity index 96%
rename from scripts/static_spawns/rori.py
rename to scripts/static_spawns/rori/restuss.py
index 0ebd4454..e097f64b 100644
--- a/scripts/static_spawns/rori.py
+++ b/scripts/static_spawns/rori/restuss.py
@@ -2,17 +2,7 @@ import sys
def addPlanetSpawns(core, planet):
- stcSvc = core.staticService
-
- # Travel spawns
-
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'rori', long(0), float(3672.5), float(96), float(-6411.2), float(0.938551), float(0.345142)) # rebel outpost
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'rori', long(0), float(-5381.5), float(80), float(-2162.8), float(1), float(0)) # narmle starport
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'rori', long(0), float(-5257.2), float(81.3), float(-2150.3), float(-0.924076), float(0.382209)) # narmle shuttleport
-
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'rori', long(0), float(-5243), float(81.3), float(-2163.5), float(-0.924076), float(0.382209)) # narmle shuttleport
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'rori', long(4505530), float(-3.5), float(0.1), float(-17.5), float(-0.69182), float(0.72207)) # rebel outpost
-
+ stcSvc = core.staticService
# Restuss Spawns
@@ -379,15 +369,15 @@ def addPlanetSpawns(core, planet):
stcSvc.spawnObject('object/static/worldbuilding/structures/shared_mun_nboo_building_chunk_destoyed_10.iff', 'rori', long(0), float(5165.2), float(80), float(5550.01), float(0.24), float(0.971))
stcSvc.spawnObject('object/static/worldbuilding/decal/shared_mun_decal_blast_lg.iff', 'rori', long(0), float(5139.4), float(160), float(5599.26), float(0.349), float(0.937))
stcSvc.spawnObject('object/static/worldbuilding/structures/shared_mun_nboo_building_chunk_destoyed_13.iff', 'rori', long(0), float(5124.02), float(80), float(5682.59), float(0.057), float(0.998))
- stcSvc.spawnObject('object/building/military/shared_outpost_cloning_facility.iff', 'rori', long(0), float(5232.54), float(79.914), float(6176.29), float(0.703), float(0.711))
- stcSvc.spawnObject('object/building/naboo/shared_rori_restuss_starport.iff', 'rori', long(0), float(5281.13), float(80), float(6171.442), float(1), float(-0.001))
- stcSvc.spawnObject('object/building/military/shared_military_base_shed_imperial_style_cantina_s01.iff', 'rori', long(0), float(5284.15), float(80), float(6236.408), float(1), float(-0.001))
- stcSvc.spawnObject('object/building/military/shared_military_base_shed_imperial_style_hospital_01.iff', 'rori', long(0), float(5327.94), float(80), float(6204.451), float(0.877), float(-0.48))
- stcSvc.spawnObject('object/building/military/shared_military_rebel_tactical_center.iff', 'rori', long(0), float(4719.25), float(80), float(5870.46), float(0.707), float(0.707))
- stcSvc.spawnObject('object/building/restuss/shared_restuss_faction_cantina.iff', 'rori', long(0), float(4827.85), float(80), float(5874.45), float(0.703), float(0.711))
- stcSvc.spawnObject('object/building/military/shared_military_rebel_tactical_center.iff', 'rori', long(0), float(4778.08), float(80), float(5905.97), float(1), float(0))
- stcSvc.spawnObject('object/building/military/shared_military_base_shed_rebel_style_01.iff', 'rori', long(0), float(4831.285), float(80), float(5810.192), float(-0.41), float(0.912))
- stcSvc.spawnObject('object/building/military/shared_military_rebel_detachment_hq.iff', 'rori', long(0), float(4777.64), float(80), float(5776.2), float(0), float(1))
+ #stcSvc.spawnObject('object/building/military/shared_outpost_cloning_facility.iff', 'rori', long(0), float(5232.54), float(79.914), float(6176.29), float(0.703), float(0.711))
+ #stcSvc.spawnObject('object/building/naboo/shared_rori_restuss_starport.iff', 'rori', long(0), float(5281.13), float(80), float(6171.442), float(1), float(-0.001))
+ #stcSvc.spawnObject('object/building/military/shared_military_base_shed_imperial_style_cantina_s01.iff', 'rori', long(0), float(5284.15), float(80), float(6236.408), float(1), float(-0.001))
+ #stcSvc.spawnObject('object/building/military/shared_military_base_shed_imperial_style_hospital_01.iff', 'rori', long(0), float(5327.94), float(80), float(6204.451), float(0.877), float(-0.48))
+ #stcSvc.spawnObject('object/building/military/shared_military_rebel_tactical_center.iff', 'rori', long(0), float(4719.25), float(80), float(5870.46), float(0.707), float(0.707))
+ #stcSvc.spawnObject('object/building/restuss/shared_restuss_faction_cantina.iff', 'rori', long(0), float(4827.85), float(80), float(5874.45), float(0.703), float(0.711))
+ #stcSvc.spawnObject('object/building/military/shared_military_rebel_tactical_center.iff', 'rori', long(0), float(4778.08), float(80), float(5905.97), float(1), float(0))
+ #stcSvc.spawnObject('object/building/military/shared_military_base_shed_rebel_style_01.iff', 'rori', long(0), float(4831.285), float(80), float(5810.192), float(-0.41), float(0.912))
+ #stcSvc.spawnObject('object/building/military/shared_military_rebel_detachment_hq.iff', 'rori', long(0), float(4777.64), float(80), float(5776.2), float(0), float(1))
stcSvc.spawnObject('object/static/worldbuilding/decal/shared_mun_decal_blast_lg.iff', 'rori', long(0), float(5254.85), float(160), float(5553.39), float(-0.551), float(0.834))
stcSvc.spawnObject('object/static/worldbuilding/decal/shared_mun_decal_blast_lg.iff', 'rori', long(0), float(5365.02), float(160), float(5577.16), float(-0.574), float(0.819))
stcSvc.spawnObject('object/static/worldbuilding/decal/shared_mun_decal_blast_lg.iff', 'rori', long(0), float(5143.04), float(160), float(5552.77), float(-0.259), float(0.966))
diff --git a/scripts/static_spawns/rori/rori.py b/scripts/static_spawns/rori/rori.py
new file mode 100644
index 00000000..ff976d80
--- /dev/null
+++ b/scripts/static_spawns/rori/rori.py
@@ -0,0 +1,14 @@
+import sys
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+
+########################################################
+# DO NOT ADD ANYTHING ELSE TO THIS SCRIPT, PLEASE USE THE
+# SUBFOLDERS FOR EACH PLANET AND CREATE NEW SCRIPTS FOR
+# EACH AREA OF A PLANET. - LEVARRIS
+########################################################
+
+
+ return
\ No newline at end of file
diff --git a/scripts/static_spawns/talus/factional_recruiters.py b/scripts/static_spawns/talus/factional_recruiters.py
new file mode 100644
index 00000000..31a1a19c
--- /dev/null
+++ b/scripts/static_spawns/talus/factional_recruiters.py
@@ -0,0 +1,21 @@
+import sys
+# Project SWG: Imperial Recruiters talus: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+ #recruiter Imp Outpost
+ stcSvc.spawnObject('object/mobile/shared_dressed_imperial_officer_m_6.iff', 'talus', long(0), float(-2192), float(20), float(2269), float(0), float(0), float(0), float(0))
+
+ #Reb recruiter
+ dearicCantina = core.objectService.getObject(long(3175388))
+ stcSvc.spawnObject('object/mobile/shared_dressed_rebel_recruiter_human_female_02.iff', 'talus', dearicCantina.getCellByCellNumber(11), float(-25.8), float(-0.9), float(-0.7), float(0), float(-0.707), float(0), float(0.707))
+
+ return
\ No newline at end of file
diff --git a/scripts/static_spawns/talus/placeholder.txt b/scripts/static_spawns/talus/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/static_spawns/tatooine.py b/scripts/static_spawns/tatooine.py
deleted file mode 100644
index e4c28842..00000000
--- a/scripts/static_spawns/tatooine.py
+++ /dev/null
@@ -1,36 +0,0 @@
-import sys
-
-def addPlanetSpawns(core, planet):
-
- stcSvc = core.staticService
-
- # Travel spawns
-
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'tatooine', long(0), float(-1090.8), float(12.6), float(-3554.9), float(-0.67), float(0.74)) # bestine shuttleport
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'tatooine', long(0), float(-1382.15), float(12), float(-3583.25), float(1), float(-0.08)) # bestine starport
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'tatooine', long(0), float(3427.5), float(5.6), float(-4644.1), float(-0.485545), float(0.874212)) # mos eisley shuttleport
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'tatooine', long(0), float(3622), float(5), float(-4788), float(-0.276903063059), float(0.960897982121)) # mos eisley starport
-
- stcSvc.spawnObject('object/creature/npc/theme_park/shared_player_transport.iff', 'tatooine', long(0), float(3618), float(5), float(-4801), float(0.500574469566), float(0.865693628788)) # mos eisley starport
-
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'tatooine', long(0), float(-2886.3), float(5.6), float(1929.4), float(-0.113814), float(0.993502)) # mos espa shuttleport a
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'tatooine', long(0), float(-3116.3), float(5.6), float(2166.1), float(-0.621933), float(0.783071)) # mos espa shuttleport b
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'tatooine', long(0), float(3623.5), float(5.6), float(2178.4), float(-0.123692), float(0.992321)) # mos espa shuttleport c
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'tatooine', long(0), float(38.15), float(52.6), float(-5532.2), float(1), float(0)) # anchorhead shuttleport
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'tatooine', long(0), float(1241.95), float(7), float(3053.42), float(0.89), float(0.46)) # mos entha starport
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'tatooine', long(0), float(1386.12), float(7.6), float(3473.81), float(1), float(0)) # mos entha shuttleport a
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'tatooine', long(0), float(1721.5), float(7.6), float(3191.3), float(1), float(0)) # mos entha shuttleport b
- stcSvc.spawnObject('object/tangible/travel/ticket_collector/shared_ticket_collector.iff', 'tatooine', long(0), float(-2820.5), float(5), float(2083.71), float(0), float(1)) # mos espa starport
-
-
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'tatooine', long(0), float(-1091.9), float(12.6), float(-3572.7), float(-0.645025), float(0.764162)) # bestine shuttleport
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'tatooine', long(0), float(-2903.5), float(5.6), float(1924), float(-0.113814), float(0.993502)) # mos espa shuttleport a
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'tatooine', long(0), float(-3124.4), float(5.6), float(2138.1), float(0.621933), float(0.783071)) # mos espa shuttleport b
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'tatooine', long(0), float(-2810), float(12.6), float(2173.8), float(-0.123962), float(0.992321)) # mos espa shuttleport c
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'tatooine', long(0), float(55.7), float(52.6), float(-5531.4), float(1), float(0)) # anchorhead shuttleport
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'tatooine', long(0), float(1403.6), float(7.6), float(3474.4), float(1), float(0)) # mos entha shuttleport a
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'tatooine', long(0), float(1739), float(7.6), float(3192.1), float(1), float(0)) # mos entha shuttleport b
- stcSvc.spawnObject('object/tangible/terminal/shared_terminal_travel.iff', 'tatooine', long(0), float(3418.4), float(5.6), float(-4659.3), float(-0.485545), float(0.874212)) # mos eisley shuttleport
-
- return
-
\ No newline at end of file
diff --git a/scripts/static_spawns/tatooine/anchorhead.py b/scripts/static_spawns/tatooine/anchorhead.py
new file mode 100644
index 00000000..ff4809f1
--- /dev/null
+++ b/scripts/static_spawns/tatooine/anchorhead.py
@@ -0,0 +1,52 @@
+import sys
+# Project SWG: Anchorhead: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # TODO Check all NPCs for personalized scripting, change format.
+
+ # Cantina Interior
+ borraSetas = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_rodian_female_03.iff', 'tatooine', long(1213345), float(9.8), float(0.4), float(-1.2), float(-0.65), float(0.75))
+ #borraSetas.setCustomName2('Borra Setas')
+ #borraSetas.setOptionsBitmask(256)
+
+ # Outside
+ aaphKoden = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_aaph_koden.iff', 'tatooine', long(0), float(129), float(5.0), float(-5399), float(-0.67), float(0.73))
+ aaphKoden.setCustomName2('Aaph Koden')
+ aaphKoden.setOptionsBitmask(256)
+
+ Alger = stcSvc.spawnObject('object/mobile/shared_smuggler_fence_alger.iff', 'tatooine', long(0), float(107), float(5.0), float(-5315), float(0.96), float(0.26))
+ Alger.setCustomName2('Alger')
+ Alger.setOptionsBitmask(256)
+
+ carhlaBastra = stcSvc.spawnObject('object/mobile/shared_dressed_legacy_bastra.iff', 'tatooine', long(0), float(128), float(5.0), float(-5428), float(-0.26), float(0.96))
+ carhlaBastra.setCustomName2('Carh\'la Bastra')
+ carhlaBastra.setOptionsBitmask(256)
+
+ cuanTalon = stcSvc.spawnObject('object/mobile/shared_dressed_legacy_cuan.iff', 'tatooine', long(0), float(-161.7), float(65.0), float(-5322.8), float(0), float(0))
+ cuanTalon.setCustomName2('Cuan Talon')
+ cuanTalon.setOptionsBitmask(256)
+
+ dromaOrdo = stcSvc.spawnObject('object/mobile/shared_dressed_anchorjobs_ordo.iff', 'tatooine', long(0), float(110), float(52.0), float(-5431), float(0.36), float(0.93))
+ dromaOrdo.setCustomName2('Droma Ordo')
+ dromaOrdo.setOptionsBitmask(256)
+
+ Sorna = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_tosche_sorna.iff', 'tatooine', long(0), float(-135), float(52.0), float(-5331), float(0.36), float(0.93))
+ Sorna.setCustomName2('Sorna')
+ Sorna.setOptionsBitmask(256)
+
+ #Junk Dealer
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(110), float(52), float(-5428), float(0.71), float(0.71))
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/ancient_krayt_dragon_skeleton.py b/scripts/static_spawns/tatooine/ancient_krayt_dragon_skeleton.py
new file mode 100644
index 00000000..47e9b0b3
--- /dev/null
+++ b/scripts/static_spawns/tatooine/ancient_krayt_dragon_skeleton.py
@@ -0,0 +1,27 @@
+import sys
+# Project SWG: Ancient Krayt Skeleton: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # TODO Check all NPCs for personalized scripting, change format.
+
+ stcSvc.spawnObject('canyon_krayt_dragon', 'tatooine', long(0), float(-4528.8), float(28.3), float(-4302.4), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('juvenile_canyon_krayt_dragon', 'tatooine', long(0), float(-4521.2), float(27.1), float(-4298.1), float(0), float(0), float(0), float(0), 1500)
+ stcSvc.spawnObject('giant_canyon_krayt_dragon', 'tatooine', long(0), float(-4669.8), float(30.0), float(-4477.7), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('grand_krayt_dragon', 'tatooine', long(0), float(-4555.0), float(49.2), float(-4459.3), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('krayt_dragon_ancient', 'tatooine', long(0), float(-4713.3), float(46.5), float(-4288.3), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('adolescent_krayt_dragon', 'tatooine', long(0), float(-4747.2), float(32.5), float(-4424.6), float(0), float(0), float(0), float(0), 1500)
+
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/bestine.py b/scripts/static_spawns/tatooine/bestine.py
new file mode 100644
index 00000000..7a124bd6
--- /dev/null
+++ b/scripts/static_spawns/tatooine/bestine.py
@@ -0,0 +1,107 @@
+import sys
+# Project SWG: Bestine: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # TODO Check all NPCs for personalized scripting, change format.
+
+ # City hall
+ indigoSiyan = stcSvc.spawnObject('object/mobile/shared_dressed_indigo_siyan.iff', 'tatooine', long(926483), float(24.7), float(3.2), float(-30.7), float(-0.06), float(0.99))
+ #indigoSiyan.setCustomName2('Indigo Siyan')
+ #indigoSiyan.setOptionsBitmask(256)
+
+ keanna = stcSvc.spawnObject('object/mobile/shared_dressed_keanna_likyna.iff', 'tatooine', long(926480), float(-18.7), float(3.2), float(20.6), float(-0.97), float(0.2))
+ #keanna.setCustomName2('Keanna Li\'kyna')
+ #keanna.setOptionsBitmask(256)
+
+ oberhaur = stcSvc.spawnObject('object/mobile/shared_space_imperial_tier2_tatooine_oberhaur.iff', 'tatooine', long(926480), float(-21.9), float(3.2), float(26.9), float(0.99), float(0.01))
+ #oberhaur.setCustomName2('Commander Oberhaur')
+ #oberhaur.setOptionsBitmask(256)
+
+ seanTrenwell = stcSvc.spawnObject('object/mobile/shared_dressed_sean_trenwell.iff', 'tatooine', long(926483), float(19.4), float(3.2), float(-36), float(-0.06), float(0.99))
+ #seanTrenwell.setCustomName2('Sean Trenwell')
+ #seanTrenwell.setOptionsBitmask(256)
+
+ talmont = stcSvc.spawnObject('object/mobile/shared_prefect_talmont.iff', 'tatooine', long(926475), float(-1.9), float(3.1), float(-10.3), float(0.99), float(0))
+ #talmont.setCustomName2('Prefect Talmont')
+ #talmont.setOptionsBitmask(256)
+
+ tourAryon = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_tour_aryon.iff', 'tatooine', long(926479), float(-36.8), float(1.3), float(0.3), float(0.8), float(0.59))
+ #tourAryon.setCustomName2('Tour Aryon')
+ #tourAryon.setOptionsBitmask(256)
+
+ victorVisalis = stcSvc.spawnObject('object/mobile/shared_dressed_victor_visalis.iff', 'tatooine', long(926480), float(-26.7), float(3.2), float(20.8), float(0.96), float(0.24))
+ #victorVisalis.setCustomName2('Victor Visalis')
+ #victorVisalis.setOptionsBitmask(256)
+
+ wilhalmSkrim = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_wilhalm_skrim.iff', 'tatooine', long(926482), float(28.9), float(1.3), float(-6.0), float(0.23), float(0.97))
+ #wilhalmSkrim.setCustomName2('Wilhalm Skrim')
+ #wilhalmSkrim.setOptionsBitmask(256)
+
+
+ #Miscellaneous Building Interiors
+ akalColzet = stcSvc.spawnObject('object/mobile/shared_dressed_imperial_trainer_space_01.iff', 'tatooine', long(1212359), float(0.7), float(1.8), float(-14), float(0), float(0.99))
+ #akalColzet.setCustomName2('lt. Akal Colzet')
+ #akalColzet.setOptionsBitmask(256)
+
+ fariousGletch = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_farious_gletch.iff', 'tatooine', long(1278989), float(2.0), float(-0.4), float(-5.7), float(-0.15), float(0.98))
+ #fariousGletch.setCustomName2('Farious Gletch')
+ #fariousGletch.setOptionsBitmask(256)
+
+ pfilbeeJhorn = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_pfilbee_jhorn.iff', 'tatooine', long(1279923), float(5.1), float(0.1), float(-3.8), float(-0.7), float(0.71))
+ #pfilbeeJhorn.setCustomName2('Pfilbee Jhorn')
+ #pfilbeeJhorn.setOptionsBitmask(256)
+
+ #Hotel interior
+ gilBurtin = stcSvc.spawnObject('object/mobile/shared_dressed_industrialist_trainer_01.iff', 'tatooine', long(1223850), float(20.3), float(1.6), float(12.8), float(0.99), float(0))
+ #gilBurtin.setCustomName2('Gil Burtin')
+ #gilBurtin.setOptionsBitmask(256)
+
+ # Outside
+ barak = stcSvc.spawnObject('object/mobile/shared_smuggler_broker_barak.iff', 'tatooine', long(0), float(-1049), float(5.0), float(-3537), float(0.97), float(0.23))
+ #barak.setCustomName2('Barak')
+ #barak.setOptionsBitmask(256)
+
+ barrezz = stcSvc.spawnObject('object/mobile/shared_dressed_dressed_legacy_barrezz.iff', 'tatooine', long(0), float(-1146.8), float(98.0), float(-3892.1), float(0.75), float(0.65))
+ #barrezz.setCustomName2('Commander Barrezz')
+ #barrezz.setOptionsBitmask(256)
+
+ jasha = stcSvc.spawnObject('object/mobile/shared_dressed_bestinejobs_jasha.iff', 'tatooine', long(0), float(-1128), float(98.0), float(-3900), float(-0.42), float(0.90))
+ #jasha.setCustomName2('Captain Jasha')
+ #jasha.setOptionsBitmask(256)
+
+ dkrn = stcSvc.spawnObject('object/mobile/shared_dressed_imperial_general_m.iff', 'tatooine', long(0), float(-1160), float(5.0), float(-3525), float(0.90), float(-0.41))
+ #dkrn.setCustomName2('Commander D\'krn')
+ #dkrn.setOptionsBitmask(256)
+
+ gunham = stcSvc.spawnObject('object/mobile/shared_dressed_imperial_lieutenant_m.iff', 'tatooine', long(0), float(-1125), float(12.2), float(-3620), float(0.9), float(0.42))
+ #gunham.setCustomName2('Commander Gunham')
+ #gunham.setOptionsBitmask(256)
+
+ kormundThrylle = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_kormund_thrylle.iff', 'tatooine', long(0), float(-1043), float(10.0), float(-3530), float(0.99), float(0.06))
+ #kormundThrylle.setCustomName2('Kormund Thrylle')
+ #kormundThrylle.setOptionsBitmask(256)
+
+ calebKnolar = stcSvc.spawnObject('object/mobile/shared_dressed_imperial_major_cold_m.iff', 'tatooine', long(0), float(-1149), float(98.0), float(-3903), float(0.42), float(0.91))
+ #calebKnolar.setCustomName2('Major Caleb Knolar')
+ #calebKnolar.setOptionsBitmask(256)
+
+ #Junk Dealers
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(-1287), float(12), float(-3655), float(0.71), float(0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(-1259), float(12), float(-3673), float(0.71), float(-0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(-1026), float(10), float(-3557), float(0), float(0))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(-1260), float(12), float(-3573), float(0), float(1))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(-1126), float(12), float(-3674), float(0.71), float(-0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(-1118), float(12), float(-3687), float(0), float(0))
+ return
+
diff --git a/scripts/static_spawns/tatooine/factional_recruiters.py b/scripts/static_spawns/tatooine/factional_recruiters.py
new file mode 100644
index 00000000..6f9b4137
--- /dev/null
+++ b/scripts/static_spawns/tatooine/factional_recruiters.py
@@ -0,0 +1,30 @@
+import sys
+# Project SWG: Factional Recruiters tatooine: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+ #Imp recruiter Eisley
+ smallImpHouse = core.objectService.getObject(long(1280129))
+ stcSvc.spawnObject('object/mobile/shared_dressed_imperial_officer_f.iff', 'tatooine', smallImpHouse.getCellByCellNumber(3), float(-6), float(1), float(9.2), float(0.71), float(0), float(0.70), float(0))
+
+ #Imp recruiter Bestine
+ #Hill
+ stcSvc.spawnObject('object/mobile/shared_dressed_imperial_officer_m_5.iff', 'tatooine', long(0), float(-1138), float(98), float(-3897), float(0.71), float(0), float(0.70), float(0))
+ #outside SP
+ stcSvc.spawnObject('object/mobile/shared_dressed_imperial_officer_m_3.iff', 'tatooine', long(0), float(-1275), float(12), float(-3594), float(0), float(0), float(0), float(0))
+
+ # Reb Recruiter
+
+ #Anchorhead cantina
+ anchCantina = core.objectService.getObject(long(1213343))
+ stcSvc.spawnObject('object/mobile/shared_dressed_rebel_recruiter_human_female_01.iff', 'tatooine', anchCantina.getCellByCellNumber(2), float(-2.2), float(0.4), float(-5.4), float(0), float(0), float(0), float(0))
+
+ return
\ No newline at end of file
diff --git a/scripts/static_spawns/tatooine/jabbas_palace.py b/scripts/static_spawns/tatooine/jabbas_palace.py
new file mode 100644
index 00000000..bff5a8aa
--- /dev/null
+++ b/scripts/static_spawns/tatooine/jabbas_palace.py
@@ -0,0 +1,76 @@
+import sys
+# Project SWG: Jabba's Palace: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ building = core.objectService.getObject(long(-466404040703346823))
+
+ #reelo baruk
+ stcSvc.spawnObject('object/mobile/shared_reelo_baruk.iff', 'tatooine', building.getCellByCellNumber(1), float(-3.5), float(0.2), float(113.5), float(0), float(0), float(0), float(0))
+
+ #Entry Ambient Sounds #TODO: Fix object/soundobject spawning
+ #stcSvc.spawnObject('object/soundobject/shared_soundobject_jabba_palace_entrance.iff', 'tatooine', building.getCellByCellNumber(1), float(-3.5), float(0.2), float(113.5), float(0), float(0), float(0), float(0))
+
+ #ree yees
+ stcSvc.spawnObject('object/mobile/shared_dressed_gran_thug_male_01.iff', 'tatooine', building.getCellByCellNumber(1), float(5.8), float(0.2), float(115.7), float(-0.71), float(0), float(0.7), float(0))
+
+ #ephantmon
+ stcSvc.spawnObject('object/mobile/shared_ephant_mon.iff', 'tatooine', building.getCellByCellNumber(4), float(-6.1), float(5.8), float(86.1), float(0), float(0), float(0), float(0))
+
+ #porcellus
+ stcSvc.spawnObject('object/mobile/shared_dressed_porcellus.iff', 'tatooine', building.getCellByCellNumber(12), float(-44.0), float(3.0), float(63.4), float(0), float(0), float(0), float(0))
+
+ #barada
+ stcSvc.spawnObject('object/mobile/shared_barada.iff', 'tatooine', building.getCellByCellNumber(34), float(31.2), float(0.2), float(-1.0), float(-0.17), float(0), float(0.98), float(0))
+
+ #Bib Fortuna
+ stcSvc.spawnObject('object/mobile/shared_bib_fortuna.iff', 'tatooine', building.getCellByCellNumber(22), float(-11.1), float(2.0), float(49.5), float(0.71), float(0), float(0.70), float(0))
+
+ #Jabba
+ stcSvc.spawnObject('object/mobile/shared_jabba_the_hutt.iff', 'tatooine', building.getCellByCellNumber(22), float(-17.0), float(2.8), float(44.9), float(0.71), float(0), float(0.70), float(0))
+
+ #oola
+ stcSvc.spawnObject('object/mobile/shared_oola.iff', 'tatooine', building.getCellByCellNumber(22), float(-10.3), float(2.0), float(43.9), float(-0.71), float(0), float(0.70), float(0))
+
+ #Ambient Sound
+ #stcSvc.spawnObject('object/soundobject/shared_soundobject_jabba_audience_chamber.iff', 'tatooine', building.getCellByCellNumber(22), float(-10.3), float(2.0), float(43.9), float(-0.9), float(0), float(0.42), float(0))
+
+ #Boba Fett
+ stcSvc.spawnObject('object/mobile/shared_boba_fett.iff', 'tatooine', building.getCellByCellNumber(22), float(-1.0), float(3.0), float(33.1), float(0), float(0), float(0), float(0))
+
+ #EV9D9
+ stcSvc.spawnObject('object/mobile/shared_ev_9d9.iff', 'tatooine', building.getCellByCellNumber(14), float(18.8), float(0.2), float(78.7), float(0), float(0), float(1.0), float(0))
+
+ #malakili
+ stcSvc.spawnObject('object/mobile/shared_malakili.iff', 'tatooine', building.getCellByCellNumber(37), float(17.3), float(-11.0), float(43.8), float(0), float(0), float(0), float(0))
+
+ #Jabba Rancor
+ stcSvc.spawnObject('object/mobile/shared_rancor_static.iff', 'tatooine', building.getCellByCellNumber(38), float(0), float(-11.0), float(43.8), float(-0.9), float(0), float(0.42), float(0))
+
+ #Max Rebo
+ stcSvc.spawnObject('object/mobile/shared_max_rebo.iff', 'tatooine', building.getCellByCellNumber(22), float(-1.4), float(3.0), float(26.9), float(-0.9), float(0), float(0.42), float(0))
+
+ #Music
+ #stcSvc.spawnObject('object/soundobject/shared_soundobject_jabba_max_rebo_band.iff', 'tatooine', building.getCellByCellNumber(22), float(-1.4), float(3.0), float(26.9), float(-0.9), float(0), float(0.42), float(0))
+
+ #Droopy Mccool
+ stcSvc.spawnObject('object/mobile/shared_droopy_mccool.iff', 'tatooine', building.getCellByCellNumber(22), float(-3.9), float(3.0), float(26.1), float(-0.9), float(0), float(0.42), float(0))
+
+ #Sy Snootles
+ stcSvc.spawnObject('object/mobile/shared_sy_snootles.iff', 'tatooine', building.getCellByCellNumber(22), float(-1.4), float(3.0), float(29.8), float(-0.1), float(0), float(0.42), float(0))
+
+ # G5P0
+ stcSvc.spawnObject('object/mobile/shared_3po_protocol_droid_red.iff', 'tatooine', building.getCellByCellNumber(22), float(-14.3), float(2.0), float(47.4), float(0.71), float(0), float(0.70), float(0))
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/jawa_sandcrawler_legacy.py b/scripts/static_spawns/tatooine/jawa_sandcrawler_legacy.py
new file mode 100644
index 00000000..4a4d0c61
--- /dev/null
+++ b/scripts/static_spawns/tatooine/jawa_sandcrawler_legacy.py
@@ -0,0 +1,25 @@
+import sys
+# Project SWG: Jawa Sandcrawler - Legacy Quest Area: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # TODO Check all NPCs for personalized scripting, change format.
+
+ #Outside
+ fa2po = stcSvc.spawnObject('object/mobile/shared_3po_protocol_droid.iff', 'tatooine', long(0), float(-3805.7), float(30.4), float(-4721.6), float(0), float(0))
+ fa2po.setCustomName2('FA-2PO')
+ fa2po.setOptionsBitmask(256)
+
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/krayt_dragon_skeleton.py b/scripts/static_spawns/tatooine/krayt_dragon_skeleton.py
new file mode 100644
index 00000000..c0aea5fd
--- /dev/null
+++ b/scripts/static_spawns/tatooine/krayt_dragon_skeleton.py
@@ -0,0 +1,31 @@
+import sys
+# Project SWG: Krayt Skeleton: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # TODO Check all NPCs for personalized scripting, change format.
+
+ # -6205, 5054
+ stcSvc.spawnObject('canyon_krayt_dragon', 'tatooine', long(0), float(-6216.0), float(30.8), float(5033.9), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('juvenile_canyon_krayt_dragon', 'tatooine', long(0), float(-6213.8), float(31.1), float(5021.3), float(0), float(0), float(0), float(0), 1500)
+
+ # giant canyon krayt
+ stcSvc.spawnObject('giant_canyon_krayt_dragon', 'tatooine', long(0), float(5728.5), float(56.6), float(3784.7), float(0), float(0), float(0), float(0), 1800)
+
+ # -6750, 3569
+ stcSvc.spawnObject('grand_krayt_dragon', 'tatooine', long(0), float(-6718.3), float(175.6), float(3499.6), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('grand_krayt_dragon', 'tatooine', long(0), float(-6796.1), float(194.0), float(3514.6), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('adolescent_krayt_dragon', 'tatooine', long(0), float(-6789.0), float(127.7), float(3661.2), float(0), float(0), float(0), float(0), 1500)
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/krayt_graveyard.py b/scripts/static_spawns/tatooine/krayt_graveyard.py
new file mode 100644
index 00000000..04e5a6d4
--- /dev/null
+++ b/scripts/static_spawns/tatooine/krayt_graveyard.py
@@ -0,0 +1,59 @@
+import sys
+# Project SWG: Krayt Graveyard: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # TODO Check all NPCs for personalized scripting, change format.
+
+ # Canyons, 1 canyon will always spawn together with 1 juveline
+ stcSvc.spawnObject('canyon_krayt_dragon', 'tatooine', long(0), float(7227.5), float(33.2), float(4495.8), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('canyon_krayt_dragon', 'tatooine', long(0), float(7178), float(24.5), float(4429.8), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('canyon_krayt_dragon', 'tatooine', long(0), float(7035.5), float(22.8), float(4337.3), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('canyon_krayt_dragon', 'tatooine', long(0), float(6872.9), float(41.7), float(4246.8), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('canyon_krayt_dragon', 'tatooine', long(0), float(6564.1), float(87.7), float(4484.8), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('canyon_krayt_dragon', 'tatooine', long(0), float(7523.5), float(4.5), float(4655.5), float(0), float(0), float(0), float(0), 1800)
+
+ stcSvc.spawnObject('juvenile_canyon_krayt_dragon', 'tatooine', long(0), float(7233.2), float(30.1), float(4487.1), float(0), float(0), float(0), float(0), 1500)
+ stcSvc.spawnObject('juvenile_canyon_krayt_dragon', 'tatooine', long(0), float(7172.2), float(22.5), float(4441.1), float(0), float(0), float(0), float(0), 1500)
+ stcSvc.spawnObject('juvenile_canyon_krayt_dragon', 'tatooine', long(0), float(7043.2), float(22.1), float(4344.1), float(0), float(0), float(0), float(0), 1500)
+ stcSvc.spawnObject('juvenile_canyon_krayt_dragon', 'tatooine', long(0), float(6877.8), float(45.5), float(4237.0), float(0), float(0), float(0), float(0), 1500)
+ stcSvc.spawnObject('juvenile_canyon_krayt_dragon', 'tatooine', long(0), float(6575.9), float(92.5), float(4487.7), float(0), float(0), float(0), float(0), 1500)
+ stcSvc.spawnObject('juvenile_canyon_krayt_dragon', 'tatooine', long(0), float(7513.2), float(4.1), float(4656.1), float(0), float(0), float(0), float(0), 1500)
+
+ # giant canyon
+
+ stcSvc.spawnObject('giant_canyon_krayt_dragon', 'tatooine', long(0), float(7515.5), float(8.5), float(4556.5), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('giant_canyon_krayt_dragon', 'tatooine', long(0), float(7417.5), float(7.7), float(4597.5), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('giant_canyon_krayt_dragon', 'tatooine', long(0), float(7300.0), float(23.3), float(4462.0), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('giant_canyon_krayt_dragon', 'tatooine', long(0), float(7140.5), float(57.0), float(4322.5), float(0), float(0), float(0), float(0), 1800)
+
+ # grand
+
+ stcSvc.spawnObject('grand_krayt_dragon', 'tatooine', long(0), float(7555.5), float(15.2), float(4488.8), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('grand_krayt_dragon', 'tatooine', long(0), float(7429.9), float(7.2), float(4477.3), float(0), float(0), float(0), float(0), 1800)
+
+ # ancient
+
+ stcSvc.spawnObject('krayt_dragon_ancient', 'tatooine', long(0), float(6836.5), float(25.2), float(4321.8), float(0), float(0), float(0), float(0), 1800)
+ stcSvc.spawnObject('krayt_dragon_ancient', 'tatooine', long(0), float(7491.3), float(8.2), float(4484.8), float(0), float(0), float(0), float(0), 1800)
+
+ # adolescent
+ stcSvc.spawnObject('adolescent_krayt_dragon', 'tatooine', long(0), float(7525.1), float(28.2), float(4387.5), float(0), float(0), float(0), float(0), 1500)
+ stcSvc.spawnObject('adolescent_krayt_dragon', 'tatooine', long(0), float(7269.8), float(62.4), float(4352.8), float(0), float(0), float(0), float(0), 1500)
+ stcSvc.spawnObject('adolescent_krayt_dragon', 'tatooine', long(0), float(7077.5), float(20.0), float(4447.3), float(0), float(0), float(0), float(0), 1500)
+ stcSvc.spawnObject('adolescent_krayt_dragon', 'tatooine', long(0), float(7003.0), float(86.2), float(4200.4), float(0), float(0), float(0), float(0), 1500)
+ stcSvc.spawnObject('adolescent_krayt_dragon', 'tatooine', long(0), float(6726.8), float(19.5), float(4288.6), float(0), float(0), float(0), float(0), 1500)
+
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/lars_homestead.py b/scripts/static_spawns/tatooine/lars_homestead.py
new file mode 100644
index 00000000..90877ca9
--- /dev/null
+++ b/scripts/static_spawns/tatooine/lars_homestead.py
@@ -0,0 +1,25 @@
+import sys
+# Project SWG: Lars Homestead: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # TODO Check all NPCs for personalized scripting, change format.
+
+ #Outside
+ zefAndo = stcSvc.spawnObject('object/mobile/shared_dressed_legacy_zef.iff', 'tatooine', long(0), float(-2574.9), float(0), float(-5516.7), float(0), float(0))
+ zefAndo.setCustomName2('Zef Ando')
+ zefAndo.setOptionsBitmask(256)
+
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/mos_eisley.py b/scripts/static_spawns/tatooine/mos_eisley.py
new file mode 100644
index 00000000..90c02333
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley.py
@@ -0,0 +1,342 @@
+import sys
+# Project SWG: Mos Eisley: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+from resources.datatables import StateStatus
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # TODO: Add NPCs sitting at Cantina tables with SittingOnChair bitmask.
+
+ #Cantina Interior
+ building = core.objectService.getObject(long(1082874))
+ wuher = stcSvc.spawnObject('object/mobile/shared_wuher.iff', 'tatooine', building.getCellByCellNumber(3), float(8.6), float(-0.9), float(0.4), float(0), float(0.71), float(0), float(0.71))
+ wuher.setCustomName('Wuher')
+ wuher.setOptionsBitmask(256)
+
+ chadraFanFemale = stcSvc.spawnObject('object/mobile/shared_chadra_fan_female.iff', 'tatooine', building.getCellByCellNumber(3), float(10.6), float(-0.9), float(-1.5), float(0), float(0.42), float(0), float(0.90))
+ chadraFanFemale.setCustomName('a Chadra Fan Female')
+ chadraFanFemale.setOptionsBitmask(256)
+
+ chadraFanMale = stcSvc.spawnObject('object/mobile/shared_chadra_fan_male.iff', 'tatooine', building.getCellByCellNumber(3), float(10.7), float(-0.9), float(-0.3), float(0), float(0.64), float(0), float(0.77))
+ chadraFanMale.setCustomName('a Chadra Fan Male')
+ chadraFanMale.setOptionsBitmask(256)
+
+ muftak = stcSvc.spawnObject('object/mobile/shared_muftak.iff', 'tatooine', building.getCellByCellNumber(3), float(20.3), float(-0.9), float(4.9), float(0), float(0.82), float(0), float(0.57))
+ muftak.setCustomName('Muftak')
+ muftak.setOptionsBitmask(256)
+
+ chissMale1 = stcSvc.spawnObject('object/mobile/ep3/shared_ep3_etyyy_chiss_poacher_01.iff', 'tatooine', building.getCellByCellNumber(3), float(1.7), float(-0.9), float(-5.0), float(0), float(0.71), float(0), float(0.71))
+ chissMale1.setCustomName('a Chiss Male')
+ chissMale1.setOptionsBitmask(256)
+
+ chissMale2 = stcSvc.spawnObject('object/mobile/ep3/shared_ep3_etyyy_chiss_poacher_02.iff', 'tatooine', building.getCellByCellNumber(3), float(3.4), float(-0.9), float(-4.8), float(0), float(0), float(0), float(0))
+ chissMale2.setCustomName('a Chiss Male')
+ chissMale2.setOptionsBitmask(256)
+
+ cantinaStorm = stcSvc.spawnObject('object/mobile/shared_stormtrooper.iff', 'tatooine', building.getCellByCellNumber(3), float(2.9), float(-0.9), float(-6.5), float(0), float(0.71), float(0), float(0.71))
+ cantinaStorm.setCustomName('a Stormtrooper')
+ cantinaStorm.setOptionsBitmask(256)
+
+ cantinaStormL = stcSvc.spawnObject('object/mobile/shared_stormtrooper_groupleader.iff', 'tatooine', building.getCellByCellNumber(3), float(3.6), float(-0.9), float(-7.9), float(0), float(0.71), float(0), float(0.71))
+ cantinaStormL.setCustomName('a Stormtrooper Squad Leader')
+ cantinaStormL.setOptionsBitmask(256)
+
+ businessman1 = stcSvc.spawnObject('object/mobile/shared_dressed_businessman_human_male_01.iff', 'tatooine', building.getCellByCellNumber(3), float(11.0), float(-0.9), float(2.1), float(0), float(0.38), float(0), float(-0.92))
+ businessman1.setCustomName('a Businessman')
+ businessman1.setOptionsBitmask(256)
+
+ commoner1 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_aqualish_male_01.iff', 'tatooine', building.getCellByCellNumber(3), float(10.3), float(-0.9), float(2.7), float(0), float(0.82), float(0), float(0.57))
+ commoner1.setCustomName('a Commoner')
+ commoner1.setOptionsBitmask(256)
+
+ entertainer1 = stcSvc.spawnObject('object/mobile/shared_dressed_entertainer_trainer_twk_female_01.iff', 'tatooine', building.getCellByCellNumber(3), float(9.4), float(-0.9), float(3.9), float(0), float(0.38), float(0), float(-0.92))
+ entertainer1.setCustomName('an Entertainer')
+ entertainer1.setOptionsBitmask(256)
+
+ noble1 = stcSvc.spawnObject('object/mobile/shared_dressed_noble_trandoshan_male_01.iff', 'tatooine', building.getCellByCellNumber(3), float(8.6), float(-0.9), float(4.8), float(0), float(0.82), float(0), float(0.57))
+ noble1.setCustomName('a Noble')
+ noble1.setOptionsBitmask(256)
+
+ commoner2 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_trandoshan_female_01.iff', 'tatooine', building.getCellByCellNumber(3), float(4.1), float(-0.9), float(5.7), float(0), float(1), float(0), float(0))
+ commoner2.setCustomName('a Commoner')
+ commoner2.setOptionsBitmask(256)
+
+ commoner3 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_bothan_female_01.iff', 'tatooine', building.getCellByCellNumber(3), float(3.1), float(-0.9), float(5.9), float(0), float(1), float(0), float(0))
+ commoner3.setCustomName('a Commoner')
+ commoner3.setOptionsBitmask(256)
+
+ commoner4 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_fat_twilek_male_01.iff', 'tatooine', building.getCellByCellNumber(3), float(1.7), float(-0.9), float(6.0), float(0), float(1), float(0), float(0))
+ commoner4.setCustomName('a Commoner')
+ commoner4.setOptionsBitmask(256)
+
+ commoner5 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_bothan_male_01.iff', 'tatooine', building.getCellByCellNumber(3), float(-0.4), float(-0.9), float(5.9), float(0), float(1), float(0), float(0))
+ commoner5.setCustomName('a Commoner')
+ commoner5.setOptionsBitmask(256)
+
+ commoner6 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_human_male_05.iff', 'tatooine', building.getCellByCellNumber(3), float(16.0), float(-0.9), float(4.1), float(0), float(0), float(0), float(0))
+ commoner6.setCustomName('a Commoner')
+ commoner6.setOptionsBitmask(256)
+
+ commoner7 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_fat_zabrak_male_01.iff', 'tatooine', building.getCellByCellNumber(3), float(8.8), float(-0.9), float(-6.0), float(0), float(0.98), float(0), float(-0.22))
+ commoner7.setCustomName('a Patron')
+ commoner7.setOptionsBitmask(256)
+
+ commoner8 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_human_male_08.iff', 'tatooine', building.getCellByCellNumber(3), float(6.8), float(-0.9), float(-6.5), float(0), float(0.98), float(0), float(-0.22))
+ commoner8.setCustomName('a Patron')
+ commoner8.setOptionsBitmask(256)
+
+ commoner9 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_aqualish_male_09.iff', 'tatooine', building.getCellByCellNumber(3), float(1.1), float(-0.9), float(-7.7), float(0), float(0.42), float(0), float(0.91))
+ commoner9.setCustomName('a Commoner')
+ commoner9.setOptionsBitmask(256)
+
+ commoner10 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_nikto_male_04.iff', 'tatooine', building.getCellByCellNumber(3), float(2.1), float(-0.9), float(-8.4), float(0), float(0.42), float(0), float(0.91))
+ commoner10.setCustomName('a Commoner')
+ commoner10.setOptionsBitmask(256)
+
+ anetiaKahryn = stcSvc.spawnObject('object/mobile/shared_dressed_twk_entertainer.iff', 'tatooine', building.getCellByCellNumber(4), float(19.8), float(-0.9), float(-21), float(0), float(-0.03), float(0), float(0.99))
+ anetiaKahryn.setCustomName('Anetia Kah\'ryn')
+ anetiaKahryn.setOptionsBitmask(256)
+
+ figrinDan = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_figrin_dan.iff', 'tatooine', building.getCellByCellNumber(6), float(3.7), float(-0.9), float(-14.4), float(0), float(0.42), float(0), float(0.91))
+ figrinDan.setCustomName('Figrin D\'an')
+ figrinDan.setOptionsBitmask(256)
+
+ techMor = stcSvc.spawnObject('object/mobile/tatooine_npc/shared_figrin_dan.iff', 'tatooine', building.getCellByCellNumber(6), float(4.0), float(-0.9), float(-17.0), float(0), float(0.42), float(0), float(0.91))
+ techMor.setCustomName('Tech M\'or')
+ techMor.setOptionsBitmask(256)
+
+ doikkNats = stcSvc.spawnObject('object/mobile/tatooine_npc/shared_figrin_dan.iff', 'tatooine', building.getCellByCellNumber(6), float(2.2), float(-0.9), float(-16.4), float(0), float(0.42), float(0), float(0.91))
+ doikkNats.setCustomName('Doikk Na\'ts')
+ doikkNats.setOptionsBitmask(256)
+
+ tednDahai = stcSvc.spawnObject('object/mobile/tatooine_npc/shared_figrin_dan.iff', 'tatooine', building.getCellByCellNumber(6), float(1.3), float(-0.9), float(-15.2), float(0), float(0.42), float(0), float(0.91))
+ tednDahai.setCustomName('Tedn Dahai')
+ tednDahai.setOptionsBitmask(256)
+
+ nalanCheel = stcSvc.spawnObject('object/mobile/tatooine_npc/shared_figrin_dan.iff', 'tatooine', building.getCellByCellNumber(6), float(0.5), float(-0.9), float(-17.1), float(0), float(0.42), float(0), float(0.91))
+ nalanCheel.setCustomName('Nalan Cheel')
+ nalanCheel.setOptionsBitmask(256)
+
+ dravis = stcSvc.spawnObject('object/mobile/shared_space_privateer_tier1_tatooine.iff', 'tatooine', building.getCellByCellNumber(12), float(-21.7), float(-0.9), float(25.5), float(0), float(0.99), float(0), float(0.03))
+ #dravis.setCustomName2('Dravis')
+ #dravis.setOptionsBitmask(256)
+
+ talonKarrde = stcSvc.spawnObject('object/mobile/shared_dressed_talon_karrde.iff', 'tatooine', building.getCellByCellNumber(13), float(-25.7), float(-0.5), float(8.8), float(0), float(0.21), float(0), float(0.97))
+ talonKarrde.setCustomName('Talon Karrde')
+ talonKarrde.setOptionsBitmask(256)
+
+ #Starport Interior
+
+
+ #City Hall Interior
+
+ #Lucky Despot Interior TODO: Check Cell IDs for Spawned NPCS inside once Lucky Despot is spawning properly again.
+ building = core.objectService.getObject(long(-466404040703447347))
+ stcSvc.spawnObject('object/mobile/shared_han_solo.iff', 'tatooine', building.getCellByCellNumber(9), float(32.3), float(7.0), float(1.6), float(0), float(0), float(0), float(0))
+
+ valarian = stcSvc.spawnObject('object/mobile/shared_lady_valarian.iff', 'tatooine', building.getCellByCellNumber(4), float(-21.5), float(9.0), float(0.5), float(0), float(0.70), float(0), float(-0.71))
+ valarian.setCustomName('Lady Valarian')
+ valarian.setOptionsBitmask(256)
+
+ #Medical Center Interior
+
+ #Theater Interior
+
+ #Miscellaneous Building Interiors
+
+ #Outside
+ businessman2 = stcSvc.spawnObject('object/mobile/shared_dressed_businessman_human_male_01.iff', 'tatooine', long(0), float(3663.3), float(4.0), float(-4738.6), float(0), float(0))
+ businessman2.setCustomName('a Businessman')
+ businessman2.setOptionsBitmask(256)
+
+ noble2 = stcSvc.spawnObject('object/mobile/shared_dressed_noble_human_female_01.iff', 'tatooine', long(0), float(3542.3), float(5.0), float(-4826.0), float(0.42), float(0.91))
+ noble2.setCustomName('a Noble')
+ noble2.setOptionsBitmask(256)
+
+ commoner11 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_human_male_06.iff', 'tatooine', long(0), float(3529.1), float(5.0), float(-4900.4), float(0.42), float(0.91))
+ commoner11.setCustomName('a Commoner')
+ commoner11.setOptionsBitmask(256)
+
+ businessman3 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_trandoshan_male_02.iff', 'tatooine', long(0), float(3595.7), float(5.0), float(-4740.1), float(0), float(0))
+ businessman3.setCustomName('a Businessman')
+ businessman3.setOptionsBitmask(256)
+
+ jawa1 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3663.3), float(5.0), float(-4858.6), float(0), float(0))
+ jawa1.setCustomName('a Jawa')
+ jawa1.setOptionsBitmask(256)
+
+ commoner12 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_moncal_male_01.iff', 'tatooine', long(0), float(3490.3), float(5.0), float(-4799.4), float(0), float(0))
+ commoner12.setCustomName('a Scientist')
+ commoner12.setOptionsBitmask(256)
+
+ commoner13 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_zabrak_female_02.iff', 'tatooine', long(0), float(3559.7), float(5.0), float(-4725.9), float(0), float(0))
+ commoner13.setCustomName('a Commoner')
+ commoner13.setOptionsBitmask(256)
+
+ commoner14 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_devaronian_male_01.iff', 'tatooine', long(0), float(3527.7), float(5.0), float(-4721.1), float(0.71), float(0.71))
+ commoner14.setCustomName('a Commoner')
+ commoner14.setOptionsBitmask(256)
+
+ commoner15 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_aqualish_female_01.iff', 'tatooine', long(0), float(3514.9), float(5.0), float(-4737.8), float(0), float(0))
+ commoner15.setCustomName('a Commoner')
+ commoner15.setOptionsBitmask(256)
+
+ jawa2 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3485.2), float(4.9), float(-4859.2), float(0), float(0))
+ jawa2.setCustomName('a Jawa')
+ jawa2.setOptionsBitmask(256)
+
+ jawa3 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3465.3), float(5.0), float(-4860.1), float(0.71), float(-0.71))
+ jawa3.setCustomName('a Jawa')
+ jawa3.setOptionsBitmask(256)
+
+ jawa4 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3486.8), float(5.0), float(-4884.7), float(0.43051), float(-0.9025))
+ jawa4.setCustomName('a Jawa')
+ jawa4.setOptionsBitmask(256)
+
+ jawa5 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3487.1), float(5.0), float(-4886.0), float(0.95105), float(0.3090))
+ jawa5.setCustomName('a Jawa')
+ jawa5.setOptionsBitmask(256)
+
+ jawa6 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3488.8), float(5.0), float(-4884.4), float(0.3255), float(-0.9455))
+ jawa6.setCustomName('a Jawa')
+ jawa6.setOptionsBitmask(256)
+
+ jawa7 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3472.2), float(5.0), float(-4918.4), float(0), float(0))
+ jawa7.setCustomName('a Jawa')
+ jawa7.setOptionsBitmask(256)
+
+ jawa8 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3471.4), float(5.0), float(-4919.5), float(0), float(0))
+ jawa8.setCustomName('a Jawa')
+ jawa8.setOptionsBitmask(256)
+
+ jawa9 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(3470.3), float(5.0), float(-4918.7), float(0), float(0))
+ jawa9.setCustomName('a Jawa')
+ jawa9.setOptionsBitmask(256)
+
+ bib = stcSvc.spawnObject('object/mobile/shared_bib_fortuna.iff', 'tatooine', long(0), float(3552.4), float(5.0), float(-4933.2), float(0.31730), float(-0.9483))
+ bib.setCustomName('Bib Fortuna')
+ bib.setOptionsBitmask(256)
+
+ commoner16 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_human_male_06.iff', 'tatooine', long(0), float(3398.2), float(4.0), float(-4654.2), float(0.42), float(0.91))
+ commoner16.setCustomName('a Commoner')
+ commoner16.setOptionsBitmask(256)
+
+ noble3 = stcSvc.spawnObject('object/mobile/shared_dressed_noble_human_female_01.iff', 'tatooine', long(0), float(3396.3), float(4.0), float(-4774.1), float(0.42), float(0.91))
+ noble3.setCustomName('a Noble')
+ noble3.setOptionsBitmask(256)
+
+ entertainer1 = stcSvc.spawnObject('object/mobile/shared_dressed_entertainer_trainer_twk_female_01.iff', 'tatooine', long(0), float(3305.7), float(5.6), float(-4771.7), float(0), float(0))
+ entertainer1.setCustomName('an Entertainer')
+ entertainer1.setOptionsBitmask(256)
+
+ r3m6 = stcSvc.spawnObject('object/mobile/shared_r3.iff', 'tatooine', long(0), float(3460.1), float(4.0), float(-4898.2), float(0.38), float(-0.92))
+ r3m6.setCustomName('R3-M6')
+ r3m6.setOptionsBitmask(256)
+
+ eg1 = stcSvc.spawnObject('object/mobile/shared_eg6_power_droid.iff', 'tatooine', long(0), float(3463.8), float(4.0), float(-4882.6), float(-0.38), float(0.92))
+ eg1.setCustomName('an EG-6 Power Droid')
+ eg1.setOptionsBitmask(256)
+
+ commoner17 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_zabrak_female_02.iff', 'tatooine', long(0), float(3452.6), float(4.0), float(-4937.1), float(0), float(0))
+ commoner17.setCustomName('a Commoner')
+ commoner17.setOptionsBitmask(256)
+
+ lifter1 = stcSvc.spawnObject('object/mobile/shared_cll8_binary_load_lifter.iff', 'tatooine', long(0), float(3547), float(5.0), float(-4768.9), float(0), float(0))
+ lifter1.setCustomName('a CLL-8 Binary Load Lifter')
+ lifter1.setOptionsBitmask(256)
+
+ r3j7 = stcSvc.spawnObject('object/mobile/shared_r3.iff', 'tatooine', long(0), float(3311.1), float(4.0), float(-4820.2), float(0.38), float(-0.92))
+ r3j7.setCustomName('R3-J7')
+ r3j7.setOptionsBitmask(256)
+
+ noble4 = stcSvc.spawnObject('object/mobile/shared_dressed_noble_human_female_03.iff', 'tatooine', long(0), float(3255.3), float(4.0), float(-4848.1), float(0.42), float(0.91))
+ noble4.setCustomName('a Noble')
+ noble4.setOptionsBitmask(256)
+
+ byxlePedette = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_opening_byxle.iff', 'tatooine', long(0), float(3365), float(5), float(-4639), float(0.99), float(0.12))
+ byxlePedette.setOptionsBitmask(264)
+
+ errikDarksider = stcSvc.spawnObject('object/mobile/shared_dressed_herald_tatooine_01.iff', 'tatooine', long(0), float(3381), float(4.6), float(-4498), float(0.91), float(0.40))
+ errikDarksider.setCustomName('Errik Darksider')
+ errikDarksider.setOptionsBitmask(256)
+
+ gendra = stcSvc.spawnObject('object/mobile/shared_dressed_gendra.iff', 'tatooine', long(0), float(3308), float(5.6), float(-4785), float(0.84), float(0.53))
+ gendra.setOptionsBitmask(264)
+
+ lurval = stcSvc.spawnObject('object/mobile/shared_lurval.iff', 'tatooine', long(0), float(3387), float(5), float(-4791), float(-0.4), float(0.91))
+ lurval.setCustomName('Lurval')
+ lurval.setOptionsBitmask(256)
+
+ matildaCarson = stcSvc.spawnObject('object/mobile/shared_dressed_noble_human_female_02.iff', 'tatooine', long(0), float(3490.2), float(5), float(-4778), float(0.87), float(0.48))
+ matildaCarson.setCustomName('Matilda Carson')
+ matildaCarson.setOptionsBitmask(256)
+
+ vanvi = stcSvc.spawnObject('object/mobile/shared_dressed_bestine_artist01.iff', 'tatooine', long(0), float(3312), float(5), float(-4655), float(0.95), float(-0.28))
+ vanvi.setCustomName('Vanvi Hotn')
+ vanvi.setOptionsBitmask(256)
+
+ harburik = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_lt_harburik.iff', 'tatooine', long(0), float(3486), float(5), float(-4740), float(0), float(-0.71), float(0), float(0.71))
+ harburik.setCustomName('Lt. Harburik')
+ harburik.setOptionsBitmask(256)
+
+ trehla = stcSvc.spawnObject('object/mobile/shared_dressed_tutorial_mentor.iff', 'tatooine', long(0), float(3484), float(5), float(-4808), float(0), float(0.92), float(0), float(-0.38))
+ trehla.setCustomName('Trehla Keelo')
+ trehla.setOptionsBitmask(256)
+
+ #Eisley Legacy Quest NPCs
+
+ vourk = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_opening_santos.iff', 'tatooine', long(0), float(3520.0), float(5.0), float(-4821.0), float(0.42), float(0.91))
+ vourk.setCustomName('Vourk Ver\'Zremp')
+ vourk.setOptionsBitmask(256)
+
+ building = core.objectService.getObject(long(1279956))
+ mayor = stcSvc.spawnObject('object/mobile/shared_dressed_mayor_mikdanyell_guhrantt.iff', 'tatooine', building.getCellByCellNumber(4), float(1.2), float(2.5), float(5.4), float(0), float(0), float(0), float(0))
+ #mayor.setOptionsBitmask(264)
+
+ enthaKandela = stcSvc.spawnObject('object/mobile/shared_dressed_entha_kandela.iff', 'tatooine', long(0), float(3511), float(5.0), float(-4785), float(0.70), float(0.71))
+ enthaKandela.setCustomName('Entha Kandela')
+ enthaKandela.setOptionsBitmask(256)
+
+ purvis = stcSvc.spawnObject('object/mobile/shared_dressed_purvis_arrison.iff', 'tatooine', long(0), float(3512.4), float(5.0), float(-4764.9), float(0.38), float(-0.92))
+ purvis.setCustomName('Purvis Arrison')
+ purvis.setOptionsBitmask(256)
+
+ building = core.objectService.getObject(long(1189630))
+ peawpRdawc = stcSvc.spawnObject('object/mobile/shared_peawp_bodyguard_trainer.iff', 'tatooine', building.getCellByCellNumber(9), float(-11.8), float(1.1), float(-10.1), float(0), float(0), float(0), float(0))
+ peawpRdawc.setCustomName('Peawp R\'dawc')
+ peawpRdawc.setOptionsBitmask(256)
+
+ nikoBrehe = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_opening_niko.iff', 'tatooine', long(0), float(3506.7), float(5.0), float(-4795.8), float(0.70), float(0.71))
+ nikoBrehe.setOptionsBitmask(264)
+
+ dunir = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_opening_dunir.iff', 'tatooine', long(0), float(3520.7), float(5.0), float(-4683.7), float(0.99), float(-0.08))
+ dunir.setOptionsBitmask(264)
+
+ #Eisley Ship Controller
+ stcSvc.spawnObject('object/mobile/shared_distant_ship_controller.iff', 'tatooine', long(0), float(3542.3), float(5.0), float(-4826.0), float(0.42), float(0.91))
+
+
+ #Profession Counselor
+ stcSvc.spawnObject('object/mobile/shared_respec_seller_f_1.iff', 'tatooine', long(0), float(3533.14), float(5), float(-4788.86), float(-0.3327), float(0.9288))
+
+ #Junk Dealers
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3355), float(5), float(-4823), float(0.71), float(0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3412), float(5), float(-4713), float(0.71), float(-0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3500), float(5), float(-4960), float(0), float(0))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3497), float(5), float(-4928), float(0), float(1))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3377), float(5), float(-4524), float(0.71), float(0.71))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3271), float(5), float(-4704), float(0), float(0))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3476), float(5), float(-4665), float(0.71), float(0.71))
+
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/mos_eisley_desert_swoopers.py b/scripts/static_spawns/tatooine/mos_eisley_desert_swoopers.py
new file mode 100644
index 00000000..8aca297d
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_desert_swoopers.py
@@ -0,0 +1,36 @@
+import sys
+# Project SWG: Mos Eisley Desert Swoopers: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ desert_swooper = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3319), float(5), float(-5125), float(0), float(0), float(0), float(0), 30)
+ desert_swooper1 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3309), float(5), float(-5121), float(0), float(0), float(0), float(0), 30)
+ desert_swooper2 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3325), float(5), float(-5112), float(0), float(0), float(0), float(0), 30)
+ desert_swooper3 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3334), float(5), float(-5130), float(0), float(0), float(0), float(0), 30)
+ desert_swooper4 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3315), float(5), float(-5122), float(0), float(0), float(0), float(0), 30)
+ desert_swooper5 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3322), float(5), float(-5138), float(0), float(0), float(0), float(0), 30)
+ desert_swooper6 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3331), float(5), float(-5119), float(0), float(0), float(0), float(0), 30)
+ desert_swooper7 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3292), float(5), float(-5155), float(0), float(0), float(0), float(0), 30)
+ desert_swooper8 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3312), float(5), float(-5155), float(0), float(0), float(0), float(0), 30)
+ desert_swooper9 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3303), float(5), float(-5145), float(0), float(0), float(0), float(0), 30)
+ desert_swooper10 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3296), float(5), float(-5121), float(0), float(0), float(0), float(0), 30)
+ desert_swooper11 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3280), float(5), float(-5112), float(0), float(0), float(0), float(0), 30)
+ desert_swooper12 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3294), float(5), float(-5130), float(0), float(0), float(0), float(0), 30)
+ desert_swooper13 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3303), float(5), float(-5119), float(0), float(0), float(0), float(0), 30)
+ desert_swooper14 = stcSvc.spawnObject('desert_swooper', 'tatooine', long(0), float(3290), float(5), float(-5138), float(0), float(0), float(0), float(0), 30)
+
+ desert_swooper_leader = stcSvc.spawnObject('desert_swooper_leader', 'tatooine', long(0), float(3313), float(5), float(-5138), float(0), float(0), float(0), float(0), 30)
+ desert_swooper_leader1 = stcSvc.spawnObject('desert_swooper_leader', 'tatooine', long(0), float(3316), float(5), float(-5131), float(0), float(0), float(0), float(0), 30)
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/mos_eisley_error_prone.py b/scripts/static_spawns/tatooine/mos_eisley_error_prone.py
new file mode 100644
index 00000000..90e68ac6
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_error_prone.py
@@ -0,0 +1,35 @@
+import sys
+# Project SWG: Mos Eisley Error Prone Droids: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ error_prone = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2868), float(39), float(-4814), float(0), float(0), float(0), float(0), 30)
+ error_prone1 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2815), float(38), float(-4815), float(0), float(0), float(0), float(0), 30)
+ error_prone2 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2875), float(34), float(-4777), float(0), float(0), float(0), float(0), 30)
+ error_prone3 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2850), float(37), float(-4786), float(0), float(0), float(0), float(0), 30)
+ error_prone4 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2835), float(41), float(-4806), float(0), float(0), float(0), float(0), 30)
+ error_prone5 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2839), float(42), float(-4834), float(0), float(0), float(0), float(0), 30)
+ error_prone6 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2849), float(40), float(-4848), float(0), float(0), float(0), float(0), 30)
+ error_prone7 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2880), float(35), float(-4848), float(0), float(0), float(0), float(0), 30)
+ error_prone8 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2878), float(38), float(-4835), float(0), float(0), float(0), float(0), 30)
+ error_prone9 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2880), float(38), float(-4819), float(0), float(0), float(0), float(0), 30)
+ error_prone10 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2878), float(38), float(-4835), float(0), float(0), float(0), float(0), 30)
+ error_prone11 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2880), float(38), float(-4819), float(0), float(0), float(0), float(0), 30)
+ error_prone12 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2895), float(35), float(-4826), float(0), float(0), float(0), float(0), 30)
+ error_prone13 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2895), float(39), float(-4795), float(0), float(0), float(0), float(0), 30)
+ error_prone14 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2860), float(39), float(-4827), float(0), float(0), float(0), float(0), 30)
+ error_prone15 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2851), float(40), float(-4806), float(0), float(0), float(0), float(0), 30)
+ error_prone16 = stcSvc.spawnObject('error-prone_battle_droid', 'tatooine', long(0), float(2871), float(38), float(-4799), float(0), float(0), float(0), float(0), 30)
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/mos_eisley_escaped_criminal.py b/scripts/static_spawns/tatooine/mos_eisley_escaped_criminal.py
new file mode 100644
index 00000000..225fb203
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_escaped_criminal.py
@@ -0,0 +1,32 @@
+import sys
+# Project SWG: Mos Eisley Error Prone Droids: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ escaped_criminal = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2862), float(13), float(-5103), float(0), float(0), float(0), float(0), 30)
+ escaped_criminal1 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2856), float(13), float(-5094), float(0), float(0), float(0), float(0), 30)
+ escaped_criminal2 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2845), float(10), float(-5084), float(0), float(0), float(0), float(0), 30)
+ escaped_criminal3 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2832), float(10), float(-5091), float(0), float(0), float(0), float(0), 30)
+ escaped_criminal4 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2815), float(7), float(-5109), float(0), float(0), float(0), float(0), 30)
+ escaped_criminal5 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2827), float(11), float(-5129), float(0), float(0), float(0), float(0), 30)
+ escaped_criminal6 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2843), float(7), float(-5099), float(0), float(0), float(0), float(0), 30)
+ escaped_criminal7 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2849), float(6), float(-5108), float(0), float(0), float(0), float(0), 30)
+ escaped_criminal8 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2852), float(7), float(-5117), float(0), float(0), float(0), float(0), 30)
+ escaped_criminal9 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2848), float(13), float(-5138), float(0), float(0), float(0), float(0), 30)
+ escaped_criminal10 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2809), float(9), float(-5121), float(0), float(0), float(0), float(0), 30)
+ escaped_criminal11 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2815), float(2), float(-5074), float(0), float(0), float(0), float(0), 30)
+ escaped_criminal12 = stcSvc.spawnObject('escaped_criminal', 'tatooine', long(0), float(2837), float(5), float(-5081), float(0), float(0), float(0), float(0), 30)
+
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/mos_eisley_gunrunners.py b/scripts/static_spawns/tatooine/mos_eisley_gunrunners.py
new file mode 100644
index 00000000..acbf8d2a
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_gunrunners.py
@@ -0,0 +1,38 @@
+import sys
+# Project SWG: Mos Eisley gunrunners: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # gunrunners
+ gunrunner = stcSvc.spawnObject('gunrunner', 'tatooine', long(0), float(2835), float(8), float(-4276), float(0), float(0), float(0), float(0), 45)
+ gunrunner1 = stcSvc.spawnObject('gunrunner', 'tatooine', long(0), float(2818), float(7), float(-4265), float(0), float(0), float(0), float(0), 45)
+ gunrunner2 = stcSvc.spawnObject('gunrunner', 'tatooine', long(0), float(2823), float(7), float(-4284), float(0), float(0), float(0), float(0), 45)
+ gunrunner3 = stcSvc.spawnObject('gunrunner', 'tatooine', long(0), float(2806), float(7), float(-4253), float(0), float(0), float(0), float(0), 45)
+ gunrunner4 = stcSvc.spawnObject('gunrunner', 'tatooine', long(0), float(2798), float(7), float(-4292), float(0), float(0), float(0), float(0), 45)
+ gunrunner5 = stcSvc.spawnObject('gunrunner', 'tatooine', long(0), float(2848), float(7), float(-4316), float(0), float(0), float(0), float(0), 45)
+ gunrunner6 = stcSvc.spawnObject('gunrunner', 'tatooine', long(0), float(2862), float(7), float(-4289), float(0), float(0), float(0), float(0), 45)
+ gunrunner7 = stcSvc.spawnObject('gunrunner', 'tatooine', long(0), float(2842), float(7), float(-4299), float(0), float(0), float(0), float(0), 45)
+ gunrunner8 = stcSvc.spawnObject('gunrunner', 'tatooine', long(0), float(2839), float(7), float(-4283), float(0), float(0), float(0), float(0), 45)
+ gunrunner9 = stcSvc.spawnObject('gunrunner', 'tatooine', long(0), float(2799), float(6), float(-4277), float(0), float(0), float(0), float(0), 45)
+ gunrunner10 = stcSvc.spawnObject('gunrunner', 'tatooine', long(0), float(2744), float(7), float(-4279), float(0), float(0), float(0), float(0), 45)
+ gunrunner11 = stcSvc.spawnObject('gunrunner', 'tatooine', long(0), float(2794), float(7), float(-4301), float(0), float(0), float(0), float(0), 45)
+
+ # gunrunner sentry
+ gunrunner_sentry = stcSvc.spawnObject('gunrunner_sentry', 'tatooine', long(0), float(2830), float(8), float(-4270), float(0), float(0), float(0), float(0), 45)
+ gunrunner_sentry1 = stcSvc.spawnObject('gunrunner_sentry', 'tatooine', long(0), float(2851), float(10), float(-4261), float(0), float(0), float(0), float(0), 45)
+ gunrunner_sentry2 = stcSvc.spawnObject('gunrunner_sentry', 'tatooine', long(0), float(2824), float(6), float(-4297), float(0), float(0), float(0), float(0), 45)
+ gunrunner_sentry3 = stcSvc.spawnObject('gunrunner_sentry', 'tatooine', long(0), float(2833), float(10), float(-4252), float(0), float(0), float(0), float(0), 45)
+ gunrunner_sentry4 = stcSvc.spawnObject('gunrunner_sentry', 'tatooine', long(0), float(2830), float(6), float(-4308), float(0), float(0), float(0), float(0), 45)
+
+
+ return
diff --git a/scripts/static_spawns/tatooine/mos_eisley_kreetles.py b/scripts/static_spawns/tatooine/mos_eisley_kreetles.py
new file mode 100644
index 00000000..ba3f62e0
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_kreetles.py
@@ -0,0 +1,38 @@
+import sys
+# Project SWG: MosEisley Kreetles: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # Carrion Kreetles
+ carrion_kreetle1 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3551), float(4), float(-5064), float(0), float(0), float(0), float(0), 30)
+ carrion_kreetle11 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3545), float(4), float(-5055), float(0), float(0), float(0), float(0), 30)
+ carrion_kreetle12 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3540), float(4), float(-5050), float(0), float(0), float(0), float(0), 30)
+ carrion_kreetle13 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3533), float(4), float(-5070), float(0), float(0), float(0), float(0), 30)
+ carrion_kreetle14 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3555), float(4), float(-5072), float(0), float(0), float(0), float(0), 30)
+
+
+ carrion_kreetle2 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3233), float(8), float(-4457), float(0), float(0), float(0), float(0), 30)
+ carrion_kreetle21 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3223), float(8), float(-4447), float(0), float(0), float(0), float(0), 30)
+ carrion_kreetle22 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3213), float(8), float(-4455), float(0), float(0), float(0), float(0), 30)
+ carrion_kreetle23 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3235), float(8), float(-4440), float(0), float(0), float(0), float(0), 30)
+ carrion_kreetle24 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3245), float(8), float(-4460), float(0), float(0), float(0), float(0), 30)
+
+
+ carrion_kreetle3 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3147), float(4), float(-4846), float(0), float(0), float(0), float(0), 30)
+ carrion_kreetle31 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3137), float(4), float(-4856), float(0), float(0), float(0), float(0), 30)
+ carrion_kreetle32 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3127), float(4), float(-4836), float(0), float(0), float(0), float(0), 30)
+ carrion_kreetle35 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3145), float(4), float(-4852), float(0), float(0), float(0), float(0), 30)
+ carrion_kreetle36 = stcSvc.spawnObject('carrion_kreetle', 'tatooine', long(0), float(3135), float(4), float(-4838), float(0), float(0), float(0), float(0), 30)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/static_spawns/tatooine/mos_eisley_mites.py b/scripts/static_spawns/tatooine/mos_eisley_mites.py
new file mode 100644
index 00000000..74e6d37c
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_mites.py
@@ -0,0 +1,62 @@
+import sys
+# Project SWG: MosEisley mites: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+
+ # Mound Mites
+ mound_mite1 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3785), float(57), float(-5057), float(0), float(0), float(0), float(0), 30)
+ mound_mite11 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3775), float(55), float(-5067), float(0), float(0), float(0), float(0), 30)
+ mound_mite12 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3765), float(53), float(-5077), float(0), float(0), float(0), float(0), 30)
+ mound_mite13 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3795), float(56), float(-5047), float(0), float(0), float(0), float(0), 30)
+ mound_mite14 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3805), float(53), float(-5037), float(0), float(0), float(0), float(0), 30)
+ mound_mite15 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3780), float(58), float(-5050), float(0), float(0), float(0), float(0), 30)
+ mound_mite16 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3790), float(55), float(-5040), float(0), float(0), float(0), float(0), 30)
+
+ # Mound Mites
+ mound_mite2 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3560), float(63), float(-4339), float(0), float(0), float(0), float(0), 30)
+ mound_mite21 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3550), float(63), float(-4349), float(0), float(0), float(0), float(0), 30)
+ mound_mite22 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3540), float(63), float(-4359), float(0), float(0), float(0), float(0), 30)
+ mound_mite23 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3570), float(63), float(-4329), float(0), float(0), float(0), float(0), 30)
+ mound_mite24 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3580), float(63), float(-4319), float(0), float(0), float(0), float(0), 30)
+ mound_mite25 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3555), float(63), float(-4345), float(0), float(0), float(0), float(0), 30)
+ mound_mite26 = stcSvc.spawnObject('mound_mite', 'tatooine', long(0), float(3565), float(63), float(-4325), float(0), float(0), float(0), float(0), 30)
+
+
+ # Legacy RockMites
+
+ rockmite = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3140), float(5), float(-4907), float(0), float(0), float(0), float(0), 30)
+ rockmite1 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3150), float(5), float(-4917), float(0), float(0), float(0), float(0), 30)
+ rockmite2 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3160), float(5), float(-4927), float(0), float(0), float(0), float(0), 30)
+ rockmite3 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3130), float(5), float(-4897), float(0), float(0), float(0), float(0), 30)
+ rockmite4 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3120), float(5), float(-4887), float(0), float(0), float(0), float(0), 30)
+ rockmite5 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3145), float(5), float(-4900), float(0), float(0), float(0), float(0), 30)
+ rockmite6 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3155), float(5), float(-4908), float(0), float(0), float(0), float(0), 30)
+
+ # Legacy RockMites
+ rockmite2 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3710), float(5), float(-4652), float(0), float(0), float(0), float(0), 30)
+ rockmite21 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3724), float(5), float(-4661), float(0), float(0), float(0), float(0), 30)
+ rockmite22 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3733), float(5), float(-4659), float(0), float(0), float(0), float(0), 30)
+ rockmite23 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3747), float(5), float(-4655), float(0), float(0), float(0), float(0), 30)
+ rockmite24 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3752), float(5), float(-4645), float(0), float(0), float(0), float(0), 30)
+ rockmite25 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3761), float(5), float(-4644), float(0), float(0), float(0), float(0), 30)
+ rockmite26 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3762), float(5), float(-4654), float(0), float(0), float(0), float(0), 30)
+ rockmite27 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3732), float(5), float(-4664), float(0), float(0), float(0), float(0), 30)
+ rockmite28 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3741), float(5), float(-4663), float(0), float(0), float(0), float(0), 30)
+ rockmite29 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3752), float(5), float(-4659), float(0), float(0), float(0), float(0), 30)
+ rockmite210 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3769), float(5), float(-4650), float(0), float(0), float(0), float(0), 30)
+ rockmite211 = stcSvc.spawnObject('rockmite', 'tatooine', long(0), float(3778), float(5), float(-4647), float(0), float(0), float(0), float(0), 30)
+
+
+
+ return
\ No newline at end of file
diff --git a/scripts/static_spawns/tatooine/mos_eisley_scavenger.py b/scripts/static_spawns/tatooine/mos_eisley_scavenger.py
new file mode 100644
index 00000000..0de1c0b5
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_scavenger.py
@@ -0,0 +1,35 @@
+import sys
+# Project SWG: Mos Eisley scavenger: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+
+ #Enforcers
+
+ scavenger = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3102), float(9), float(-4951), float(0), float(0), float(0), float(0), 30)
+ scavenger1 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3110), float(8), float(-4952), float(0), float(0), float(0), float(0), 30)
+ scavenger2 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3109), float(7), float(-4961), float(0), float(0), float(0), float(0), 30)
+ scavenger3 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3096), float(9), float(-4938), float(0), float(0), float(0), float(0), 30)
+ scavenger4 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3080), float(11), float(-4942), float(0), float(0), float(0), float(0), 30)
+ scavenger5 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3089), float(10), float(-4961), float(0), float(0), float(0), float(0), 30)
+ scavenger6 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3106), float(7), float(-4969), float(0), float(0), float(0), float(0), 30)
+ scavenger7 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3100), float(8), float(-4973), float(0), float(0), float(0), float(0), 30)
+ scavenger8 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3067), float(9), float(-4932), float(0), float(0), float(0), float(0), 30)
+ scavenger9 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3061), float(6), float(-4951), float(0), float(0), float(0), float(0), 30)
+ scavenger10 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3077), float(3), float(-4961), float(0), float(0), float(0), float(0), 30)
+ scavenger11 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3071), float(3), float(-4971), float(0), float(0), float(0), float(0), 30)
+ scavenger12 = stcSvc.spawnObject('scavenger', 'tatooine', long(0), float(3047), float(7), float(-4957), float(0), float(0), float(0), float(0), 30)
+
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/mos_eisley_shinn_bunker.py b/scripts/static_spawns/tatooine/mos_eisley_shinn_bunker.py
new file mode 100644
index 00000000..4add2ca5
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_shinn_bunker.py
@@ -0,0 +1,67 @@
+import sys
+# Project SWG: Mos Eisley Shinn bunker: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ building = core.objectService.getObject(long(-466404038086555772))
+
+ # Shinn Mugger outisde
+
+ shinn_mugger = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3410), float(8), float(-5461), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger1 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3432), float(9), float(-5445), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger2 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3464), float(10), float(-5430), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger3 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3457), float(12), float(-5419), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger4 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3431), float(6), float(-5427), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger5 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3405), float(6), float(-5434), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger6 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3398), float(5), float(-5459), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger7 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3394), float(7), float(-5483), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger8 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3417), float(8), float(-5491), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger9 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3439), float(9), float(-5482), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger10 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3447), float(9), float(-5462), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger11 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3429), float(7), float(-5473), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger12 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3449), float(10), float(-5504), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger13 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3415), float(7), float(-5501), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger14 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3392), float(7), float(-5489), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger15 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3380), float(5), float(-5465), float(0), float(0), float(0), float(0), 30)
+ shinn_mugger16 = stcSvc.spawnObject('shinn_mugger', 'tatooine', long(0), float(3394), float(4), float(-5456), float(0), float(0), float(0), float(0), 30)
+
+
+ #shinn Guards outside bunker
+ shinn_guard_o1 = stcSvc.spawnObject('shinn_guard', 'tatooine', long(0), float(3417), float(7), float(-5461), float(0), float(0), float(0), float(0), 30)
+ shinn_guard_o2 = stcSvc.spawnObject('shinn_guard', 'tatooine', long(0), float(3423), float(7), float(-5461), float(0), float(0), float(0), float(0), 30)
+
+ # Shinn Guards in Bunker
+ shinn_guard = stcSvc.spawnObject('shinn_guard', 'tatooine', building.getCellByCellNumber(long(1)), float(-3.3), float(0.3), float(3.6), float(0), float(0), float(0), float(0), 30)
+ shinn_guard1 = stcSvc.spawnObject('shinn_guard', 'tatooine', building.getCellByCellNumber(long(3)), float(2.9), float(0.3), float(-4.0), float(0), float(0), float(0), float(0), 30)
+ shinn_guard2 = stcSvc.spawnObject('shinn_guard', 'tatooine', building.getCellByCellNumber(long(4)), float(3.8), float(-3.3), float(4.8), float(0), float(0), float(0), float(0), 30)
+ shinn_guard3 = stcSvc.spawnObject('shinn_guard', 'tatooine', building.getCellByCellNumber(long(5)), float(-4.4), float(-10.3), float(-6.1), float(0), float(0), float(0), float(0), 30)
+ shinn_guard4 = stcSvc.spawnObject('shinn_guard', 'tatooine', building.getCellByCellNumber(long(7)), float(5.3), float(-13.8), float(6.6), float(0), float(0), float(0), float(0), 30)
+ shinn_guard5 = stcSvc.spawnObject('shinn_guard', 'tatooine', building.getCellByCellNumber(long(7)), float(-2.1), float(-13.8), float(6.8), float(0), float(0), float(0), float(0), 30)
+ shinn_guard6 = stcSvc.spawnObject('shinn_guard', 'tatooine', building.getCellByCellNumber(long(7)), float(-6.8), float(-13.8), float(6.7), float(0), float(0), float(0), float(0), 30)
+ shinn_guard7 = stcSvc.spawnObject('shinn_guard', 'tatooine', building.getCellByCellNumber(long(8)), float(1.5), float(-20.8), float(-3.5), float(0), float(0), float(0), float(0), 30)
+ shinn_guard8 = stcSvc.spawnObject('shinn_guard', 'tatooine', building.getCellByCellNumber(long(9)), float(-1.0), float(-20.7), float(11.0), float(0), float(0), float(0), float(0), 30)
+ shinn_guard9 = stcSvc.spawnObject('shinn_guard', 'tatooine', building.getCellByCellNumber(long(9)), float(3.6), float(-20.7), float(11.4), float(0), float(0), float(0), float(0), 30)
+ shinn_guard10 = stcSvc.spawnObject('shinn_guard', 'tatooine', building.getCellByCellNumber(long(9)), float(1.6), float(-20.7), float(4.7), float(0), float(0), float(0), float(0), 30)
+ shinn_guard11 = stcSvc.spawnObject('shinn_guard', 'tatooine', building.getCellByCellNumber(long(10)), float(-1.6), float(-20.8), float(23.4), float(0), float(0), float(0), float(0), 30)
+ shinn_guard12 = stcSvc.spawnObject('shinn_guard', 'tatooine', building.getCellByCellNumber(long(10)), float(4.6), float(-20.8), float(23.4), float(0), float(0), float(0), float(0), 30)
+
+ #temp until cellbycellname is fixed
+
+
+
+ # Vaigonn Shinn
+ vaigonn_shinn = stcSvc.spawnObject('vaigon_shinn', 'tatooine', building.getCellByCellNumber(long(10)), float(1.7), float(-20.8), float(29.7), float(-1), float(0), float(0), float(0), 30)
+
+ return
+
+
diff --git a/scripts/static_spawns/tatooine/mos_eisley_swoop_gang.py b/scripts/static_spawns/tatooine/mos_eisley_swoop_gang.py
new file mode 100644
index 00000000..734e756d
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_swoop_gang.py
@@ -0,0 +1,41 @@
+import sys
+# Project SWG: Mos Eisley Swoop gang: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+
+ #Enforcers
+
+ swoop_gang_enforcer = stcSvc.spawnObject('swoop_gang_enforcer', 'tatooine', long(0), float(3183), float(5), float(-4786), float(0), float(0), float(0), float(0), 30)
+ swoop_gang_enforcer1 = stcSvc.spawnObject('swoop_gang_enforcer', 'tatooine', long(0), float(3208), float(5), float(-4824), float(0), float(0), float(0), float(0), 30)
+
+ #Punk
+
+ swoop_gang_punk = stcSvc.spawnObject('swoop_gang_punk', 'tatooine', long(0), float(3194), float(5), float(-4839), float(0), float(0), float(0), float(0), 30)
+ swoop_gang_punk1 = stcSvc.spawnObject('swoop_gang_punk', 'tatooine', long(0), float(3167), float(5), float(-4795), float(0), float(0), float(0), float(0), 30)
+ swoop_gang_punk2 = stcSvc.spawnObject('swoop_gang_punk', 'tatooine', long(0), float(3207), float(5), float(-4808), float(0), float(0), float(0), float(0), 30)
+ swoop_gang_punk3 = stcSvc.spawnObject('swoop_gang_punk', 'tatooine', long(0), float(3149), float(5), float(-4816), float(0), float(0), float(0), float(0), 30)
+
+ #Rogue
+
+ swoop_gang_rogue = stcSvc.spawnObject('swoop_gang_rogue', 'tatooine', long(0), float(3151), float(5), float(-4802), float(0), float(0), float(0), float(0), 30)
+ swoop_gang_rogue1 = stcSvc.spawnObject('swoop_gang_rogue', 'tatooine', long(0), float(3199), float(5), float(-4799), float(0), float(0), float(0), float(0), 30)
+ swoop_gang_rogue2 = stcSvc.spawnObject('swoop_gang_rogue', 'tatooine', long(0), float(3180), float(5), float(-4811), float(0), float(0), float(0), float(0), 30)
+ #thug
+
+ swoop_gang_thug = stcSvc.spawnObject('swoop_gang_thug', 'tatooine', long(0), float(3220), float(5), float(-4800), float(0), float(0), float(0), float(0), 30)
+ swoop_gang_thug1 = stcSvc.spawnObject('swoop_gang_thug', 'tatooine', long(0), float(3169), float(5), float(-4823), float(0), float(0), float(0), float(0), 30)
+ swoop_gang_thug2 = stcSvc.spawnObject('swoop_gang_thug', 'tatooine', long(0), float(3168), float(5), float(-4773), float(0), float(0), float(0), float(0), 30)
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/mos_eisley_tempest_rills.py b/scripts/static_spawns/tatooine/mos_eisley_tempest_rills.py
new file mode 100644
index 00000000..e44369e0
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_tempest_rills.py
@@ -0,0 +1,44 @@
+import sys
+# Project SWG: MosEisley Tempest Rills: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # Tempest rills
+ tempest_rill1 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3716), float(5), float(-4602), float(0), float(0), float(0), float(0), 30)
+ tempest_rill2 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3701), float(5), float(-4649), float(0), float(0), float(0), float(0), 30)
+ tempest_rill3 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3741), float(5), float(-4651), float(0), float(0), float(0), float(0), 30)
+ tempest_rill4 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3668), float(5), float(-4597), float(0), float(0), float(0), float(0), 30)
+ tempest_rill5 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3695), float(5), float(-4613), float(0), float(0), float(0), float(0), 30)
+ tempest_rill6 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3678), float(5), float(-4613), float(0), float(0), float(0), float(0), 30)
+ tempest_rill7 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3718), float(5), float(-4651), float(0), float(0), float(0), float(0), 30)
+ tempest_rill8 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3737), float(5), float(-4633), float(0), float(0), float(0), float(0), 30)
+ tempest_rill9 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3692), float(5), float(-4621), float(0), float(0), float(0), float(0), 30)
+ tempest_rill10 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3695), float(5), float(-4646), float(0), float(0), float(0), float(0), 30)
+ tempest_rill11 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3795), float(5), float(-4647), float(0), float(0), float(0), float(0), 30)
+ tempest_rill12 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3716), float(5), float(-4613), float(0), float(0), float(0), float(0), 30)
+ tempest_rill13 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3704), float(5), float(-4624), float(0), float(0), float(0), float(0), 30)
+ tempest_rill14 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3687), float(5), float(-4600), float(0), float(0), float(0), float(0), 30)
+
+
+
+ # Tempest rills
+ tempest_rill4 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3875), float(48), float(-5068), float(0), float(0), float(0), float(0), 30)
+ tempest_rill41 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3855), float(45), float(-5048), float(0), float(0), float(0), float(0), 30)
+ tempest_rill42 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3865), float(45), float(-5058), float(0), float(0), float(0), float(0), 30)
+ tempest_rill43 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3885), float(56), float(-5088), float(0), float(0), float(0), float(0), 30)
+ tempest_rill44 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3892), float(58), float(-5078), float(0), float(0), float(0), float(0), 30)
+ tempest_rill45 = stcSvc.spawnObject('tempest_rill', 'tatooine', long(0), float(3860), float(44), float(-5043), float(0), float(0), float(0), float(0), 30)
+
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/mos_eisley_toggi_bok.py b/scripts/static_spawns/tatooine/mos_eisley_toggi_bok.py
new file mode 100644
index 00000000..6c172aa7
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_toggi_bok.py
@@ -0,0 +1,39 @@
+import sys
+# Project SWG: Mos Eisley Toogi Bok's place: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+
+ # Thiefs
+
+ thiefs = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2780), float(6), float(-4579), float(0), float(0), float(0), float(0), 30)
+ thiefs1 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2781), float(6), float(-4604), float(0), float(0), float(0), float(0), 30)
+ thiefs2 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2732), float(9), float(-4619), float(0), float(0), float(0), float(0), 30)
+ thiefs3 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2717), float(11), float(-4594), float(0), float(0), float(0), float(0), 30)
+ thiefs4 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2733), float(7), float(-4563), float(0), float(0), float(0), float(0), 30)
+ thiefs5 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2762), float(7), float(-4535), float(0), float(0), float(0), float(0), 30)
+ thiefs6 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2793), float(7), float(-4554), float(0), float(0), float(0), float(0), 30)
+ thiefs7 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2771), float(6), float(-4594), float(0), float(0), float(0), float(0), 30)
+ thiefs8 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2763), float(7), float(-4623), float(0), float(0), float(0), float(0), 30)
+ thiefs9 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2809), float(8), float(-4562), float(0), float(0), float(0), float(0), 30)
+ thiefs10 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2807), float(7), float(-4592), float(0), float(0), float(0), float(0), 30)
+ thiefs11 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2793), float(6), float(-4622), float(0), float(0), float(0), float(0), 30)
+ thiefs12 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2748), float(7), float(-4593), float(0), float(0), float(0), float(0), 30)
+ thiefs13 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2708), float(11), float(-4566), float(0), float(0), float(0), float(0), 30)
+ thiefs14 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2742), float(9), float(-4541), float(0), float(0), float(0), float(0), 30)
+ thiefs15 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2786), float(7), float(-4535), float(0), float(0), float(0), float(0), 30)
+ thiefs16 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2803), float(6), float(-4578), float(0), float(0), float(0), float(0), 30)
+ thiefs17 = stcSvc.spawnObject('thief', 'tatooine', long(0), float(2800), float(6), float(-4619), float(0), float(0), float(0), float(0), 30)
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/mos_eisley_tusken_soldiers.py b/scripts/static_spawns/tatooine/mos_eisley_tusken_soldiers.py
new file mode 100644
index 00000000..98e25c41
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_tusken_soldiers.py
@@ -0,0 +1,51 @@
+import sys
+# Project SWG: Moseisley Tusken soldiers: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # Tusken Solders
+ soldiers = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4168), float(8), float(-4735), float(0), float(0), float(0), float(0), 45)
+ soldiers1 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4170), float(8), float(-4731), float(0), float(0), float(0), float(0), 45)
+ soldiers11 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4172), float(8), float(-4727), float(0), float(0), float(0), float(0), 45)
+ soldiers12 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4174), float(8), float(-4723), float(0), float(0), float(0), float(0), 45)
+ soldiers13 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4176), float(8), float(-4719), float(0), float(0), float(0), float(0), 45)
+ soldiers14 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4178), float(8), float(-4739), float(0), float(0), float(0), float(0), 45)
+ soldiers15 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4176), float(8), float(-4743), float(0), float(0), float(0), float(0), 45)
+
+
+ soldiers2 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4162), float(8), float(-4735), float(0), float(0), float(0), float(0), 45)
+ soldiers25 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4168), float(8), float(-4739), float(0), float(0), float(0), float(0), 45)
+ soldiers26 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4166), float(8), float(-4743), float(0), float(0), float(0), float(0), 45)
+ soldiers27 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4164), float(8), float(-4747), float(0), float(0), float(0), float(0), 45)
+ soldiers28 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4162), float(8), float(-4751), float(0), float(0), float(0), float(0), 45)
+ soldiers29 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4160), float(8), float(-4756), float(0), float(0), float(0), float(0), 45)
+
+
+ soldiers3 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4158), float(8), float(-4735), float(0), float(0), float(0), float(0), 45)
+ soldiers31 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4160), float(8), float(-4731), float(0), float(0), float(0), float(0), 45)
+ soldiers32 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4162), float(8), float(-4727), float(0), float(0), float(0), float(0), 45)
+ soldiers33 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4164), float(8), float(-4723), float(0), float(0), float(0), float(0), 45)
+ soldiers38 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4158), float(8), float(-4751), float(0), float(0), float(0), float(0), 45)
+ soldiers39 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4156), float(8), float(-4756), float(0), float(0), float(0), float(0), 45)
+
+ soldiers4 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4154), float(8), float(-4735), float(0), float(0), float(0), float(0), 45)
+ soldiers41 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4156), float(8), float(-4731), float(0), float(0), float(0), float(0), 45)
+ soldiers42 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4158), float(8), float(-4727), float(0), float(0), float(0), float(0), 45)
+ soldiers47 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4152), float(8), float(-4747), float(0), float(0), float(0), float(0), 45)
+ soldiers48 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4156), float(8), float(-4751), float(0), float(0), float(0), float(0), 45)
+ soldiers49 = stcSvc.spawnObject('tusken_soldier', 'tatooine', long(0), float(4158), float(8), float(-4756), float(0), float(0), float(0), float(0), 45)
+
+
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/mos_eisley_tusken_warriors.py b/scripts/static_spawns/tatooine/mos_eisley_tusken_warriors.py
new file mode 100644
index 00000000..c051b473
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_tusken_warriors.py
@@ -0,0 +1,27 @@
+import sys
+# Project SWG: Moseisley Tusken warriors: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # Tusken Warriors
+ warrior = stcSvc.spawnObject('tusken_warrior', 'tatooine', long(0), float(4288), float(8), float(-4729), float(0), float(0), float(0), float(0), 45)
+ warrior1 = stcSvc.spawnObject('tusken_warrior', 'tatooine', long(0), float(4290), float(8), float(-4725), float(0), float(0), float(0), float(0), 45)
+ warrior2 = stcSvc.spawnObject('tusken_warrior', 'tatooine', long(0), float(4292), float(8), float(-4721), float(0), float(0), float(0), float(0), 45)
+ warrior3 = stcSvc.spawnObject('tusken_warrior', 'tatooine', long(0), float(4290), float(8), float(-4717), float(0), float(0), float(0), float(0), 45)
+ warrior4 = stcSvc.spawnObject('tusken_warrior', 'tatooine', long(0), float(4288), float(8), float(-4713), float(0), float(0), float(0), float(0), 45)
+ warrior5 = stcSvc.spawnObject('tusken_warrior', 'tatooine', long(0), float(4290), float(8), float(-4733), float(0), float(0), float(0), float(0), 45)
+ warrior6 = stcSvc.spawnObject('tusken_warrior', 'tatooine', long(0), float(4292), float(8), float(-4737), float(0), float(0), float(0), float(0), 45)
+ warrior8 = stcSvc.spawnObject('tusken_warrior', 'tatooine', long(0), float(4290), float(8), float(-4741), float(0), float(0), float(0), float(0), 45)
+ warrior9 = stcSvc.spawnObject('tusken_warrior', 'tatooine', long(0), float(4288), float(8), float(-4745), float(0), float(0), float(0), float(0), 45)
+ warrior0 = stcSvc.spawnObject('tusken_warrior', 'tatooine', long(0), float(4286), float(8), float(-4749), float(0), float(0), float(0), float(0), 45)
+
\ No newline at end of file
diff --git a/scripts/static_spawns/tatooine/mos_eisley_tusken_zealot.py b/scripts/static_spawns/tatooine/mos_eisley_tusken_zealot.py
new file mode 100644
index 00000000..007ebb35
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_tusken_zealot.py
@@ -0,0 +1,80 @@
+import sys
+# Project SWG: Tusken ZElaots: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # Outside of Tusken camp
+ zealot = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4005), float(5), float(-4846), float(0), float(0), float(0), float(0), 45)
+ zealot1 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4009), float(5), float(-4851), float(0), float(0), float(0), float(0), 45)
+ zealot2 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4009), float(5), float(-4852), float(0), float(0), float(0), float(0), 45)
+
+ # Outside of Tusken camp pt2
+
+ zealot3 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4051), float(5), float(-4859), float(0), float(0), float(0), float(0), 45)
+ zealot4 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4050), float(5), float(-4859), float(0), float(0), float(0), float(0), 45)
+ zealot5 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4050), float(5), float(-4858), float(0), float(0), float(0), float(0), 45)
+
+ # inside camp pt1 (behind the camp)
+
+ zealot5 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4076), float(5), float(-4812), float(0), float(0), float(0), float(0), 45)
+ zealot6 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4075), float(5), float(-4812), float(0), float(0), float(0), float(0), 45)
+ zealot7 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4074), float(5), float(-4812), float(0), float(0), float(0), float(0), 45)
+
+ # inside camp p2 (coming from starport)
+
+ zealot8 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(3991), float(5), float(-4794), float(0), float(0), float(0), float(0), 45)
+ zealot9 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(3995), float(5), float(-4788), float(0), float(0), float(0), float(0), 45)
+ zealot10 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(3993), float(5), float(-4794), float(0), float(0), float(0), float(0), 45)
+ zealot11 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(3992), float(5), float(-4812), float(0), float(0), float(0), float(0), 45)
+ zealot12 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(3997), float(5), float(-4812), float(0), float(0), float(0), float(0), 45)
+ zealot12 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4010), float(5), float(-4811), float(0), float(0), float(0), float(0), 45)
+ zealot13 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4014), float(5), float(-4811), float(0), float(0), float(0), float(0), 45)
+ zealot14 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4010), float(5), float(-4795), float(0), float(0), float(0), float(0), 45)
+ zealot15 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4013), float(5), float(-4793), float(0), float(0), float(0), float(0), 45)
+ zealot16 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4005), float(5), float(-4783), float(0), float(0), float(0), float(0), 45)
+
+ # inside camp pt3 (2nd from starport
+
+ zealot17 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4009), float(5), float(-4758), float(0), float(0), float(0), float(0), 45)
+ zealot18 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4010), float(5), float(-4759), float(0), float(0), float(0), float(0), 45)
+ zealot19 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4028), float(5), float(-4767), float(0), float(0), float(0), float(0), 45)
+ zealot20 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4020), float(5), float(-4766), float(0), float(0), float(0), float(0), 45)
+ zealot21 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4038), float(5), float(-4736), float(0), float(0), float(0), float(0), 45)
+ zealot22 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4033), float(5), float(-4743), float(0), float(0), float(0), float(0), 45)
+ zealot23 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4048), float(5), float(-4767), float(0), float(0), float(0), float(0), 45)
+ zealot24 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4039), float(5), float(-4767), float(0), float(0), float(0), float(0), 45)
+ zealot25 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4056), float(5), float(-4787), float(0), float(0), float(0), float(0), 45)
+ zealot26 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4047), float(5), float(-4787), float(0), float(0), float(0), float(0), 45)
+ zealot27 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4044), float(5), float(-4807), float(0), float(0), float(0), float(0), 45)
+ zealot28 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4049), float(5), float(-4807), float(0), float(0), float(0), float(0), 45)
+ zealot29 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4065), float(5), float(-4774), float(0), float(0), float(0), float(0), 45)
+ zealot30 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4063), float(5), float(-4767), float(0), float(0), float(0), float(0), 45)
+ zealot31 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4074), float(5), float(-4755), float(0), float(0), float(0), float(0), 45)
+ zealot32 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4065), float(5), float(-4755), float(0), float(0), float(0), float(0), 45)
+ zealot33 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4065), float(5), float(-4743), float(0), float(0), float(0), float(0), 45)
+ zealot34 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4070), float(5), float(-4743), float(0), float(0), float(0), float(0), 45)
+ zealot35 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4094), float(5), float(-4747), float(0), float(0), float(0), float(0), 45)
+ zealot36 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4102), float(5), float(-4753), float(0), float(0), float(0), float(0), 45)
+ zealot37 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4093), float(5), float(-4771), float(0), float(0), float(0), float(0), 45)
+ zealot38 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4080), float(5), float(-4766), float(0), float(0), float(0), float(0), 45)
+ zealot39 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4083), float(5), float(-4787), float(0), float(0), float(0), float(0), 45)
+ zealot40 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4094), float(5), float(-4783), float(0), float(0), float(0), float(0), 45)
+ zealot41 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4084), float(5), float(-4801), float(0), float(0), float(0), float(0), 45)
+
+ # inside camp pt4 terrace of the building
+
+ zealot42 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4081), float(8), float(-4752), float(0), float(0), float(0), float(0), 45)
+ zealot43 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4078), float(8), float(-4759), float(0), float(0), float(0), float(0), 45)
+ zealot44 = stcSvc.spawnObject('tusken_zealot', 'tatooine', long(0), float(4086), float(8), float(-4762), float(0), float(0), float(0), float(0), 45)
+
+ return
diff --git a/scripts/static_spawns/tatooine/mos_eisley_water_thiefs.py b/scripts/static_spawns/tatooine/mos_eisley_water_thiefs.py
new file mode 100644
index 00000000..b96e0594
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_water_thiefs.py
@@ -0,0 +1,28 @@
+import sys
+# Project SWG: water thief: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # Outside of Tusken camp
+ water_thief = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3079), float(7), float(-4370), float(0), float(0), float(0), float(0), 45)
+ water_thief1 = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3075), float(8), float(-4350), float(0), float(0), float(0), float(0), 45)
+ water_thief2 = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3097), float(8), float(-4350), float(0), float(0), float(0), float(0), 45)
+ water_thief3 = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3094), float(6), float(-4373), float(0), float(0), float(0), float(0), 45)
+ water_thief4 = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3065), float(5), float(-4377), float(0), float(0), float(0), float(0), 45)
+ water_thief5 = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3057), float(6), float(-4359), float(0), float(0), float(0), float(0), 45)
+ water_thief6 = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3106), float(9), float(-4350), float(0), float(0), float(0), float(0), 45)
+ water_thief7 = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3086), float(9), float(-4342), float(0), float(0), float(0), float(0), 45)
+ water_thief8 = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3065), float(8), float(-4348), float(0), float(0), float(0), float(0), 45)
+ water_thief9 = stcSvc.spawnObject('water_thief', 'tatooine', long(0), float(3054), float(5), float(-4378), float(0), float(0), float(0), float(0), 45)
+
+ return
diff --git a/scripts/static_spawns/tatooine/mos_eisley_womprats.py b/scripts/static_spawns/tatooine/mos_eisley_womprats.py
new file mode 100644
index 00000000..a7bdb444
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_womprats.py
@@ -0,0 +1,55 @@
+import sys
+# Project SWG: MosEisley Rat Spawn: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+
+ # City Sewer Swamprats
+ city_sewer = stcSvc.spawnObject('city_sewer_swamprat', 'tatooine', long(0), float(3216), float(8), float(-4465), float(0), float(0), float(0), float(0), 30)
+ city_sewer1 = stcSvc.spawnObject('city_sewer_swamprat', 'tatooine', long(0), float(3212), float(8), float(-4465), float(0), float(0), float(0), float(0), 30)
+ city_sewer2 = stcSvc.spawnObject('city_sewer_swamprat', 'tatooine', long(0), float(3208), float(8), float(-4467), float(0), float(0), float(0), float(0), 30)
+ city_sewer3 = stcSvc.spawnObject('city_sewer_swamprat', 'tatooine', long(0), float(3218), float(8), float(-4463), float(0), float(0), float(0), float(0), 30)
+ city_sewer4 = stcSvc.spawnObject('city_sewer_swamprat', 'tatooine', long(0), float(3220), float(8), float(-4462), float(0), float(0), float(0), float(0), 30)
+ city_sewer5 = stcSvc.spawnObject('city_sewer_swamprat', 'tatooine', long(0), float(3224), float(8), float(-4469), float(0), float(0), float(0), float(0), 30)
+ city_sewer6 = stcSvc.spawnObject('city_sewer_swamprat', 'tatooine', long(0), float(3218), float(8), float(-4467), float(0), float(0), float(0), float(0), 30)
+
+
+
+ # Sickly Womprats
+ sickly_womprat = stcSvc.spawnObject('sickly_womprat', 'tatooine', long(0), float(3115), float(9), float(-4758), float(0), float(0), float(0), float(0), 30)
+ sickly_womprat1 = stcSvc.spawnObject('sickly_womprat', 'tatooine', long(0), float(3111), float(9), float(-4758), float(0), float(0), float(0), float(0), 30)
+ sickly_womprat2 = stcSvc.spawnObject('sickly_womprat', 'tatooine', long(0), float(3103), float(9), float(-4758), float(0), float(0), float(0), float(0), 30)
+ sickly_womprat3 = stcSvc.spawnObject('sickly_womprat', 'tatooine', long(0), float(3115), float(9), float(-4754), float(0), float(0), float(0), float(0), 30)
+ sickly_womprat4 = stcSvc.spawnObject('sickly_womprat', 'tatooine', long(0), float(3115), float(9), float(-4750), float(0), float(0), float(0), float(0), 30)
+ sickly_womprat5 = stcSvc.spawnObject('sickly_womprat', 'tatooine', long(0), float(3117), float(9), float(-4760), float(0), float(0), float(0), float(0), 30)
+ sickly_womprat6 = stcSvc.spawnObject('sickly_womprat', 'tatooine', long(0), float(3121), float(9), float(-4766), float(0), float(0), float(0), float(0), 30)
+
+ # Normal Womprats
+ womprat = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3587), float(56), float(-4354), float(0), float(0), float(0), float(0), 30)
+ womprat1 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3583), float(56), float(-4354), float(0), float(0), float(0), float(0), 30)
+ womprat2 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3579), float(56), float(-4354), float(0), float(0), float(0), float(0), 30)
+ womprat3 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3587), float(56), float(-4350), float(0), float(0), float(0), float(0), 30)
+ womprat4 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3587), float(56), float(-4348), float(0), float(0), float(0), float(0), 30)
+ womprat5 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3587), float(56), float(-4358), float(0), float(0), float(0), float(0), 30)
+ womprat6 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3590), float(56), float(-4360), float(0), float(0), float(0), float(0), 30)
+
+
+ womprat2 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3841), float(49), float(-5072), float(0), float(0), float(0), float(0), 30)
+ womprat21 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3832), float(49), float(-5072), float(0), float(0), float(0), float(0), 30)
+ womprat22 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3823), float(49), float(-5072), float(0), float(0), float(0), float(0), 30)
+ womprat23 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3841), float(49), float(-5068), float(0), float(0), float(0), float(0), 30)
+ womprat24 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3841), float(49), float(-5060), float(0), float(0), float(0), float(0), 30)
+ womprat25 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3841), float(49), float(-5056), float(0), float(0), float(0), float(0), 30)
+ womprat26 = stcSvc.spawnObject('womprat', 'tatooine', long(0), float(3839), float(49), float(-5082), float(0), float(0), float(0), float(0), 30)
+
+ return
diff --git a/scripts/static_spawns/tatooine/mos_eisley_worrts.py b/scripts/static_spawns/tatooine/mos_eisley_worrts.py
new file mode 100644
index 00000000..f6402cf8
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_eisley_worrts.py
@@ -0,0 +1,33 @@
+import sys
+# Project SWG: MosEisley Worrts: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # Tame Worrts
+ tame_worrt1 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3153), float(4), float(-4945), float(0), float(0), float(0), float(0), 30)
+ tame_worrt11 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3143), float(4), float(-4935), float(0), float(0), float(0), float(0), 30)
+ tame_worrt12 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3123), float(4), float(-4925), float(0), float(0), float(0), float(0), 30)
+ tame_worrt13 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3163), float(4), float(-4955), float(0), float(0), float(0), float(0), 30)
+ tame_worrt14 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3173), float(4), float(-4965), float(0), float(0), float(0), float(0), 30)
+ tame_worrt15 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3145), float(4), float(-4950), float(0), float(0), float(0), float(0), 30)
+
+ # Tame Worrts
+ tame_worrt2 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3125), float(4), float(-4726), float(0), float(0), float(0), float(0), 30)
+ tame_worrt21 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3115), float(4), float(-4716), float(0), float(0), float(0), float(0), 30)
+ tame_worrt22 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3105), float(4), float(-4706), float(0), float(0), float(0), float(0), 30)
+ tame_worrt23 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3135), float(4), float(-4736), float(0), float(0), float(0), float(0), 30)
+ tame_worrt24 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3145), float(4), float(-4746), float(0), float(0), float(0), float(0), 30)
+ tame_worrt25 = stcSvc.spawnObject('tame_worrt', 'tatooine', long(0), float(3120), float(4), float(-4721), float(0), float(0), float(0), float(0), 30)
+
+
+ return
\ No newline at end of file
diff --git a/scripts/static_spawns/tatooine/mos_entha.py b/scripts/static_spawns/tatooine/mos_entha.py
new file mode 100644
index 00000000..4686d285
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_entha.py
@@ -0,0 +1,30 @@
+import sys
+# Project SWG: Mos Entha: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # TODO Check all NPCs for personalized scripting, change format.
+
+ #Outside
+ ankwee = stcSvc.spawnObject('object/mobile/shared_dressed_tatooine_entha_ankwee.iff', 'tatooine', long(0), float(1351), float(5.0), float(3108), float(0.42), float(0.91))
+ ankwee.setCustomName2('An\'kwee')
+ ankwee.setOptionsBitmask(256)
+
+ #Junkdealer
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(1271), float(7.7), float(2919), float(0), float(0))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(1271), float(7.7), float(2960), float(1), float(0))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(1396), float(7), float(3026), float(0), float(0))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(1471), float(7), float(3325), float(0), float(1))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(1463), float(7), float(3126), float(0.71), float(-0.71))
+ return
+
diff --git a/scripts/static_spawns/tatooine/mos_espa.py b/scripts/static_spawns/tatooine/mos_espa.py
new file mode 100644
index 00000000..666d8b1b
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_espa.py
@@ -0,0 +1,76 @@
+import sys
+# Project SWG: Mos Espa: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ #Wattos shop
+ building = core.objectService.getObject(long(-466404040703268293))
+
+
+ # TODO Check all NPCs for personalized scripting, change format.
+
+ # Cantina Interior
+ dalaSocuna = stcSvc.spawnObject('object/mobile/shared_space_rebel_tier1_tatooine_socuna.iff', 'tatooine', long(1256068), float(-28.4), float(-0.5), float(9.4), float(0.33), float(0.94))
+ #dalaSocuna.setCustomName2('Commander Da\'la Socuna')
+ #dalaSocuna.setOptionsBitmask(256)
+
+ #Watto's Shop ****TODO: Get Proper cells for Watto's Shop once Buildout structures are spawning as intended again.
+
+ watto = stcSvc.spawnObject('object/mobile/shared_watto.iff', 'tatooine', building.getCellByCellNumber(2), float(4.7), float(-0.5), float(2.4), float(-0.71), float(0), float(0.70), float(0))
+ #watto.setCustomName2('Watto')
+ #watto.setOptionsBitmask(256)
+
+ #Exterior Uninteractable NPCs
+ commoner18 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_zabrak_female_02.iff', 'tatooine', long(0), float(-2915.3), float(5.0), float(2148.5), float(0), float(0))
+ commoner18.setCustomName2('a Commoner')
+ commoner18.setOptionsBitmask(256)
+
+ jawa10 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(-2966.3), float(5.0), float(2196.9), float(0), float(0))
+ jawa10.setCustomName2('a Jawa')
+ jawa10.setOptionsBitmask(256)
+
+ commoner19 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_human_male_06.iff', 'tatooine', long(0), float(-2960.4), float(5.0), float(2271.3), float(0), float(0))
+ commoner19.setCustomName2('a Commoner')
+ commoner19.setOptionsBitmask(256)
+
+ commoner20 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_devaronian_male_01.iff', 'tatooine', long(0), float(-2934.3), float(5.0), float(2298.9), float(0.71), float(0.71))
+ commoner20.setCustomName2('a Commoner')
+ commoner20.setOptionsBitmask(256)
+
+ commoner21 = stcSvc.spawnObject('object/mobile/shared_dressed_noble_human_female_01.iff', 'tatooine', long(0), float(-2897.7), float(5.0), float(2345.4), float(0.71), float(0.71))
+ commoner21.setCustomName2('a Commoner')
+ commoner21.setOptionsBitmask(256)
+
+ commoner22 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_fat_twilek_male_01.iff', 'tatooine', long(0), float(-2763.8), float(5.0), float(2305.2), float(0.71), float(0.71))
+ commoner22.setCustomName2('a Commoner')
+ commoner22.setOptionsBitmask(256)
+
+ jawa11 = stcSvc.spawnObject('object/mobile/shared_jawa.iff', 'tatooine', long(0), float(-2936.8), float(5.0), float(2078.4), float(0.95105), float(0.3090))
+ jawa11.setCustomName2('a Jawa')
+ jawa11.setOptionsBitmask(256)
+
+ businessman4 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_tatooine_trandoshan_male_02.iff', 'tatooine', long(0), float(-2914.2), float(5.0), float(2022.4), float(0), float(0))
+ businessman4.setCustomName2('a Businessman')
+ businessman4.setOptionsBitmask(256)
+
+ commoner23 = stcSvc.spawnObject('object/mobile/shared_dressed_commoner_naboo_moncal_male_01.iff', 'tatooine', long(0), float(-2904.1), float(5.0), float(1965.3), float(0.71), float(0.71))
+ commoner23.setCustomName2('a Commoner')
+ commoner23.setOptionsBitmask(256)
+
+ #Junkdealer will be added as soon as i can find coords
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_03.iff', 'tatooine', long(0), float(-3060.50), float(5), float(2181.71), float(0), float(1))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_03.iff', 'tatooine', long(0), float(-2924.53), float(5), float(2173.97), float(0), float(1))
+
+
+ return
+
diff --git a/scripts/static_spawns/tatooine/mos_taike.py b/scripts/static_spawns/tatooine/mos_taike.py
new file mode 100644
index 00000000..e3e78bf7
--- /dev/null
+++ b/scripts/static_spawns/tatooine/mos_taike.py
@@ -0,0 +1,22 @@
+import sys
+# Project SWG: Mos Taike: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # TODO Check all NPCs for personalized scripting, change format.
+
+
+ #Junkdealer
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(3902), float(33), float(2362), float(0), float(0))
+ return
+
diff --git a/scripts/static_spawns/tatooine/tatooine.py b/scripts/static_spawns/tatooine/tatooine.py
new file mode 100644
index 00000000..9a45d308
--- /dev/null
+++ b/scripts/static_spawns/tatooine/tatooine.py
@@ -0,0 +1,21 @@
+import sys
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+########################################################
+# DO NOT ADD ANYTHING ELSE TO THIS SCRIPT, PLEASE USE THE
+# SUBFOLDERS FOR EACH PLANET AND CREATE NEW SCRIPTS FOR
+# EACH AREA OF A PLANET. - LEVARRIS
+########################################################
+ stcSvc = core.staticService
+ # Blue Frog: Uncomment only when needed for testing.
+ stcSvc.spawnObject('object/tangible/terminal/shared_terminal_character_builder.iff', 'tatooine', long(0), float(3525), float(4), float(-4801), float(0.70), float(0.71))
+
+########################################################
+# DO NOT ADD ANYTHING ELSE TO THIS SCRIPT, PLEASE USE THE
+# SUBFOLDERS FOR EACH PLANET AND CREATE NEW SCRIPTS FOR
+# EACH AREA OF A PLANET. - LEVARRIS
+########################################################
+ return
+
diff --git a/scripts/static_spawns/tatooine/wayfar.py b/scripts/static_spawns/tatooine/wayfar.py
new file mode 100644
index 00000000..4864ed87
--- /dev/null
+++ b/scripts/static_spawns/tatooine/wayfar.py
@@ -0,0 +1,23 @@
+import sys
+# Project SWG: Wayfar: Static Spawns
+# (C)2014 ProjectSWG
+
+
+
+from resources.datatables import Options
+from resources.datatables import State
+
+def addPlanetSpawns(core, planet):
+
+
+ stcSvc = core.staticService
+ objSvc = core.objectService
+
+ # TODO Check all NPCs for personalized scripting, change format.
+
+
+ #Junkdealer
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(-5242), float(75), float(-6495), float(0), float(0))
+ stcSvc.spawnObject('object/mobile/shared_junk_dealer_m_01.iff', 'tatooine', long(0), float(-5129), float(75), float(-6584), float(0), float(0))
+ return
+
diff --git a/scripts/static_spawns/yavin4/placeholder.txt b/scripts/static_spawns/yavin4/placeholder.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/scripts/static_travel_points.py b/scripts/static_travel_points.py
index e6d0987b..b1814ec9 100644
--- a/scripts/static_travel_points.py
+++ b/scripts/static_travel_points.py
@@ -21,39 +21,52 @@ def addPoints(core, planet):
if planet.getName() == 'tatooine':
tatooinePoints(core, planet)
if planet.getName() == 'yavin4':
- yavin4Points(core, planet)
+ yavin4Points(core, planet)
+ if planet.getName() == 'kashyyyk_main':
+ kashyyyk_mainPoints(core, planet)
+ if planet.getName() == 'mustafar':
+ mustafarPoints(core, planet)
return
def corelliaPoints(core, planet):
trvSvc = core.travelService
-
+
+ trvSvc.addTravelPoint(planet, "Coronet Shuttle A", -25, 28, -4409)
+ trvSvc.addTravelPoint(planet, "Coronet Shuttle B", -329, 28, -4641)
+ trvSvc.addTravelPoint(planet, "Vreni Island Shuttle", -5551, 15, -6059)
+ trvSvc.addTravelPoint(planet, "Tyrena Shuttle A", -5005, 21, -2386)
+ trvSvc.addTravelPoint(planet, "Tyrena Shuttle B", -5600, 21, -2790)
+ trvSvc.addTravelPoint(planet, "Doaba Guerfel Shuttleport", 3085, 280, 4993)
+ trvSvc.addTravelPoint(planet, "Kor Vella Shuttleport", -3775, 86, 3234)
+ trvSvc.addTravelPoint(planet, "Bela Vistal Shuttleport A", 6644, 330, -5922)
+ trvSvc.addTravelPoint(planet, "Bela Vistal Shuttleport B", 6930, 330, -5534)
trvSvc.addTravelPoint(planet, "Coronet Starport", -51, 28, -4735)
trvSvc.addTravelPoint(planet, "Tyrena Starport", -4975, 21, -2230)
trvSvc.addTravelPoint(planet, "Kor Vella Starport", -3136, 31, 2894)
- trvSvc.addTravelPoint(planet, "Doaba Guerful Starport", 3377, 308, 5605)
+ trvSvc.addTravelPoint(planet, "Doaba Guerfel Starport", 3377, 308, 5605)
return
def dantooinePoints(core, planet):
trvSvc = core.travelService
-
- trvSvc.addTravelPoint(planet, "Coronet Starport", -51, 28, -4735)
- trvSvc.addTravelPoint(planet, "Tyrena Starport", -4975, 21, -2230)
- trvSvc.addTravelPoint(planet, "Kor Vella Starport", -3136, 31, 2894)
- trvSvc.addTravelPoint(planet, "Doaba Guerful Starport", 3377, 308, 5605)
+
+ trvSvc.addTravelPoint(planet, "Mining Outpost", -635, 3, 2507)
+ trvSvc.addTravelPoint(planet, "Imperial Outpost", -4208, 3, -2350)
+ trvSvc.addTravelPoint(planet, "Agro Outpost", 1569, 4, -6415)
return
def dathomirPoints(core, planet):
trvSvc = core.travelService
- trvSvc.addTravelPoint(planet, "Science Outpost", -76, 18, -1586)
- trvSvc.addTravelPoint(planet, "Trade Outpost", -592, 6, 3087)
+ trvSvc.addTravelPoint(planet, "Science Outpost", -49, 18, -1584)
+ trvSvc.addTravelPoint(planet, "Trade Outpost", 618, 6, 3092)
+ trvSvc.addTravelPoint(planet, "Quarantine Zone", -5691, 511, -6467)
return
def endorPoints(core, planet):
trvSvc = core.travelService
- trvSvc.addTravelPoint(planet, "Smuggler Outpost", -978, 73, 1554)
- trvSvc.addTravelPoint(planet, "Research Outpost", 3222, 24, -3482)
+ trvSvc.addTravelPoint(planet, "Smuggler Outpost", -950, 73, 1553)
+ trvSvc.addTravelPoint(planet, "Research Outpost", 3201, 24, -3499)
return
def lokPoints(core, planet):
@@ -66,23 +79,38 @@ def nabooPoints(core, planet):
trvSvc = core.travelService
trvSvc.addTravelPoint(planet, "Kaadara Starport", 5295, -192, 6664)
+ trvSvc.addTravelPoint(planet, "Kaadara Shuttleport", 5123, -192, 6616)
+ trvSvc.addTravelPoint(planet, "Dee'ja Peak Shuttleport", 5331, 327, -1576)
+ trvSvc.addTravelPoint(planet, "Moenia Shuttleport", 4961, 3, -4892)
+ trvSvc.addTravelPoint(planet, "Lake Retreat Shuttleport", -5494, -150, -21)
+ trvSvc.addTravelPoint(planet, "Keren Shuttleport", 2021, 19, 2525)
+ trvSvc.addTravelPoint(planet, "Keren Shuttleport South", 1567, 25, 2837)
trvSvc.addTravelPoint(planet, "Keren Starport", 1352, 13, 2768)
trvSvc.addTravelPoint(planet, "Moenia Starport", 4728, 4, -4650)
+ trvSvc.addTravelPoint(planet, "Theed Shuttle A", -5856, 19, 4172)
+ trvSvc.addTravelPoint(planet, "Theed Shuttle B", -5005, 19, 4072)
+ trvSvc.addTravelPoint(planet, "Theed Shuttle C", -5411, 19, 4332)
+ trvSvc.addTravelPoint(planet, "Theed Spaceport", -4858, 5, 4164)
return
def roriPoints(core, planet):
trvSvc = core.travelService
- trvSvc.addTravelPoint(planet, "Narmle Starport", -5472, 80, 2161)
+ trvSvc.addTravelPoint(planet, "Narmle Starport", -5374, 80, -2188)
+ trvSvc.addTravelPoint(planet, "Narmle Shuttleport", -5255, 80, -2161)
trvSvc.addTravelPoint(planet, "Rebel Outpost", 3672, 96, -6421)
+ trvSvc.addTravelPoint(planet, "Restuss Starport", 5281, 80, 6171)
+ trvSvc.addTravelPoint(planet, "Restuss Shuttleport", 5398, 80, 6195)
return
def talusPoints(core, planet):
trvSvc = core.travelService
- trvSvc.addTravelPoint(planet, "Dearic Starport", 245, 6, -2931)
- trvSvc.addTravelPoint(planet, "Nashal Starport", 4480, 2, 6365)
- trvSvc.addTravelPoint(planet, "Imperial Outpost", -2212, 20, 2302)
+ trvSvc.addTravelPoint(planet, "Dearic Starport", 263, 6, -2952)
+ trvSvc.addTravelPoint(planet, "Dearic Shuttleport", 699, 6, -3041)
+ trvSvc.addTravelPoint(planet, "Nashal Starport", 4453, 2, 5354)
+ trvSvc.addTravelPoint(planet, "Nashal Shuttleport", 4334, 9, 5431)
+ trvSvc.addTravelPoint(planet, "Imperial Outpost", -2226, 20, 2319)
return
def tatooinePoints(core, planet):
@@ -92,12 +120,33 @@ def tatooinePoints(core, planet):
trvSvc.addTravelPoint(planet, "Mos Eisley Starport", 3619, 5, -4801)
trvSvc.addTravelPoint(planet, "Mos Espa Starport", -2829, 5, 2080)
trvSvc.addTravelPoint(planet, "Mos Entha Starport", 1238, 7, 3062)
+ trvSvc.addTravelPoint(planet, "Anchorhead Shuttle", 48, 52, -5319)
+ trvSvc.addTravelPoint(planet, "Mos Entha Shuttleport A", 1731, 7, 3205)
+ trvSvc.addTravelPoint(planet, "Mos Entha Shuttleport B", 1396, 7, 3487)
+ trvSvc.addTravelPoint(planet, "Mos Espa Shuttle West", -3132, 5, 2172)
+ trvSvc.addTravelPoint(planet, "Mos Espa Shuttle East", -2799, 5, 2163)
+ trvSvc.addTravelPoint(planet, "Mos Espa Shuttle South", -2892, 5, 1914)
+ trvSvc.addTravelPoint(planet, "Mos Eisley Shuttleport", 3434, 5, -4659)
+ trvSvc.addTravelPoint(planet, "Bestine Shuttleport", -1071, 12, -3566)
+ trvSvc.addTravelPoint(planet, "Wayfar Shuttleport", -5089, 75, -6594)
return
def yavin4Points(core, planet):
trvSvc = core.travelService
- trvSvc.addTravelPoint(planet, "Imperial Base", 4033, 37, -6234)
- trvSvc.addTravelPoint(planet, "Labor Outpost", -6939, 73, -5706)
- trvSvc.addTravelPoint(planet, "Mining Outpost", -277, 35, 4879)
- return
\ No newline at end of file
+ trvSvc.addTravelPoint(planet, "Imperial Base", 4054, 37, -6216)
+ trvSvc.addTravelPoint(planet, "Labor Outpost", -6921, 73, -5726)
+ trvSvc.addTravelPoint(planet, "Mining Outpost", -267, 35, 4896)
+ return
+
+def kashyyyk_mainPoints(core, planet):
+ trvSvc = core.travelService
+
+ trvSvc.addTravelPoint(planet, "Kachirho Starport", -688, 19, -165)
+ return
+
+def mustafarPoints(core, planet):
+ trvSvc = core.travelService
+
+ trvSvc.addTravelPoint(planet, "Mensix Mining Facility", 405, 230, -1352)
+ return
diff --git a/scripts/weather.py b/scripts/weather.py
new file mode 100644
index 00000000..397986ae
--- /dev/null
+++ b/scripts/weather.py
@@ -0,0 +1,16 @@
+import sys
+
+def init(core):
+ weatherSvc = core.weatherService
+ weatherSvc.addPlanetSettings('tatooine', 75, 0)
+ weatherSvc.addPlanetSettings('naboo', 85, 0)
+ weatherSvc.addPlanetSettings('corellia', 85, 1)
+ weatherSvc.addPlanetSettings('dantooine', 80, 1)
+ weatherSvc.addPlanetSettings('rori', 75, 2)
+ weatherSvc.addPlanetSettings('talus', 75, 2)
+ weatherSvc.addPlanetSettings('lok', 75, 2)
+ weatherSvc.addPlanetSettings('dathomir', 50, 3)
+ weatherSvc.addPlanetSettings('endor', 80, 0)
+ weatherSvc.addPlanetSettings('yavin4', 65, 2)
+ weatherSvc.addPlanetSettings('kashyyyk_main', 80, 0)
+
diff --git a/src/main/NGECore.java b/src/main/NGECore.java
index 77a22c65..95a4ecb7 100644
--- a/src/main/NGECore.java
+++ b/src/main/NGECore.java
@@ -21,44 +21,89 @@
******************************************************************************/
package main;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
import java.io.IOException;
import java.sql.PreparedStatement;
import java.sql.SQLException;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Vector;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import org.apache.mina.core.service.IoHandler;
+import org.apache.mina.core.session.IoSession;
+import com.sleepycat.je.Transaction;
+import com.sleepycat.persist.EntityCursor;
-
-
+import protocol.swg.chat.ChatSystemMessage;
+import net.engio.mbassy.bus.config.BusConfiguration;
+import resources.common.BountyListItem;
import resources.common.RadialOptions;
import resources.common.ThreadMonitor;
import resources.objects.creature.CreatureObject;
+import resources.objects.guild.GuildObject;
+import resources.objects.resource.GalacticResource;
+import resources.objects.resource.ResourceRoot;
import services.AttributeService;
import services.BuffService;
import services.CharacterService;
import services.ConnectionService;
-import services.EquipmentService;
+import services.ConversationService;
+import services.DevService;
+import services.EntertainmentService;
import services.GroupService;
+import services.housing.HousingService;
+import services.InstanceService;
import services.LoginService;
+import services.LootService;
import services.PlayerService;
import services.ScriptService;
import services.SimulationService;
import services.SkillModService;
import services.SkillService;
import services.StaticService;
+import services.SurveyService;
import services.TerrainService;
+import services.WeatherService;
+import services.ai.AIService;
+import services.bazaar.AuctionItem;
+import services.bazaar.BazaarService;
+import services.chat.ChatRoom;
import services.chat.ChatService;
+import services.chat.Mail;
+import services.collections.CollectionService;
import services.combat.CombatService;
import services.command.CombatCommand;
import services.command.CommandService;
+import services.equipment.EquipmentService;
+import services.gcw.FactionService;
import services.gcw.GCWService;
-import services.guild.GuildService;
+import services.GuildService;
+import services.LoginService;
import services.map.MapService;
+import services.mission.MissionService;
+import services.object.DuplicateId;
+import services.object.ObjectId;
import services.object.ObjectService;
import services.object.UpdateService;
+import services.pet.MountService;
+import services.playercities.PlayerCityService;
+import services.resources.HarvesterService;
+import services.resources.ResourceService;
+import services.retro.RetroService;
+import services.spawn.SpawnService;
import services.sui.SUIService;
import services.trade.TradeService;
import services.travel.TravelService;
@@ -76,12 +121,16 @@ import engine.resources.common.CRC;
import engine.resources.common.PHPBB3Auth;
import engine.resources.config.Config;
import engine.resources.config.DefaultConfig;
+import engine.resources.container.Traverser;
import engine.resources.database.DatabaseConnection;
+import engine.resources.database.ODBCursor;
import engine.resources.database.ObjectDatabase;
import engine.resources.objects.SWGObject;
import engine.resources.scene.Point3D;
import engine.resources.scene.Quaternion;
+import engine.resources.service.InteractiveJythonAcceptor;
import engine.resources.service.NetworkDispatch;
+import engine.servers.InteractiveJythonServer;
import engine.servers.MINAServer;
import engine.servers.PingServer;
@@ -90,13 +139,15 @@ import engine.servers.PingServer;
public class NGECore {
public static boolean didServerCrash = false;
-
+
private static NGECore instance;
private Config config = null;
-
+ private String motd = "";
+ private volatile boolean isShuttingDown = false;
+ private long galacticTime = System.currentTimeMillis();
- private ConcurrentHashMap clients = new ConcurrentHashMap();
+ private ConcurrentHashMap clients = new ConcurrentHashMap();
// Database
@@ -105,9 +156,11 @@ public class NGECore {
// Services
public LoginService loginService;
+ public RetroService retroService;
public ConnectionService connectionService;
public CommandService commandService;
public CharacterService characterService;
+ public FactionService factionService;
public ObjectService objectService;
public MapService mapService;
public UpdateService updateService;
@@ -129,6 +182,24 @@ public class NGECore {
public SkillModService skillModService;
public EquipmentService equipmentService;
public TravelService travelService;
+ public CollectionService collectionService;
+ public EntertainmentService entertainmentService;
+ public WeatherService weatherService;
+ public SpawnService spawnService;
+ public AIService aiService;
+ public MissionService missionService;
+ public InstanceService instanceService;
+ public DevService devService;
+ public SurveyService surveyService;
+ public ResourceService resourceService;
+ public ConversationService conversationService;
+ public BazaarService bazaarService;
+ public HousingService housingService;
+ public LootService lootService;
+ public HarvesterService harvesterService;
+ public MountService mountService;
+ public PlayerCityService playerCityService;
+
// Login Server
public NetworkDispatch loginDispatch;
@@ -137,9 +208,27 @@ public class NGECore {
// Zone Server
public NetworkDispatch zoneDispatch;
private MINAServer zoneServer;
+
+ // Interactive Jython Console
+ public InteractiveJythonAcceptor jythonAcceptor;
+ private InteractiveJythonServer jythonServer;
- private ObjectDatabase creatureODB;
private ObjectDatabase mailODB;
+ private ObjectDatabase guildODB;
+ private ObjectDatabase objectIdODB;
+ private ObjectDatabase duplicateIdODB;
+ private ObjectDatabase chatRoomODB;
+
+ private BusConfiguration eventBusConfig = BusConfiguration.Default(1, new ThreadPoolExecutor(1, 4, 1, TimeUnit.MINUTES, new LinkedBlockingQueue()));
+
+ private ObjectDatabase auctionODB;
+ private ObjectDatabase resourcesODB;
+ private ObjectDatabase resourceRootsODB;
+ private ObjectDatabase resourceHistoryODB;
+ private ObjectDatabase swgObjectODB;
+ private ObjectDatabase bountiesODB;
+
+ public static boolean PACKET_DEBUG = false;
public NGECore() {
@@ -148,7 +237,6 @@ public class NGECore {
public void start() {
instance = this;
-
final ThreadMonitor deadlockDetector = new ThreadMonitor();
Thread deadlockMonitor = new Thread(new Runnable() {
@Override
@@ -167,22 +255,66 @@ public class NGECore {
if (!(config.loadConfigFile())) {
config = DefaultConfig.getConfig();
}
+
+ Config options = new Config();
+ options.setFilePath("options.cfg");
+ boolean optionsConfigLoaded = options.loadConfigFile();
+
+ if (optionsConfigLoaded && options.getInt("CLEAN.ODB.FOLDERS") > 0) {
+ File baseFolder = new File("./odb");
+
+ if (baseFolder.isDirectory()) {
+ for (File odbFolder : baseFolder.listFiles()) {
+ if (odbFolder.isDirectory()) {
+ for (File file : odbFolder.listFiles()) {
+ if (!file.isDirectory() && !file.getName().equals("placeholder.txt")) { file.delete(); }
+ }
+ }
+ }
+ }
+ System.out.println("Cleaned ODB Folders.");
+ }
+
+ try(BufferedReader br = new BufferedReader(new FileReader("./motd.txt"))) {
+ for(String line; (line = br.readLine()) != null;) {
+ motd += line;
+ }
+ } catch (IOException e1) { e1.printStackTrace(); }
+
// Database
databaseConnection = new DatabaseConnection();
databaseConnection.connect(config.getString("DB.URL"), config.getString("DB.NAME"), config.getString("DB.USER"), config.getString("DB.PASS"), "postgresql");
-
- databaseConnection2 = new DatabaseConnection();
- setGalaxyStatus(1);
- creatureODB = new ObjectDatabase("creature", true, false, true);
- mailODB = new ObjectDatabase("mails", true, false, true);
+ String db2Url = config.getString("DB2.URL");
+ if (db2Url == null || db2Url.matches("^\\s*$")) {
+ databaseConnection2 = null;
+ } else {
+ databaseConnection2 = new DatabaseConnection();
+ databaseConnection2.connect(config.getString("DB2.URL"), config.getString("DB2.NAME"), config.getString("DB2.USER"), config.getString("DB2.PASS"), "mysql");
+ }
+
+ setGalaxyStatus(1);
+ swgObjectODB = new ObjectDatabase("swgobjects", true, true, true, SWGObject.class);
+ mailODB = new ObjectDatabase("mails", true, true, true, Mail.class);
+ guildODB = new ObjectDatabase("guild", true, true, true, GuildObject.class);
+ objectIdODB = new ObjectDatabase("oids", true, true, true, ObjectId.class);
+ duplicateIdODB = new ObjectDatabase("doids", true, true, true, DuplicateId.class);
+ chatRoomODB = new ObjectDatabase("chatRooms", true, true, true, ChatRoom.class);
+ resourcesODB = new ObjectDatabase("resources", true, true, true, GalacticResource.class);
+ resourceRootsODB = new ObjectDatabase("resourceroots", true, true, true, ResourceRoot.class);
+ resourceHistoryODB = new ObjectDatabase("resourcehistory", true, true, true, GalacticResource.class);
+ auctionODB = new ObjectDatabase("auction", true, true, true, AuctionItem.class);
+ bountiesODB = new ObjectDatabase("bounties", true, true, true, BountyListItem.class);
+
// Services
loginService = new LoginService(this);
+ retroService = new RetroService(this);
connectionService = new ConnectionService(this);
characterService = new CharacterService(this);
mapService = new MapService(this);
travelService = new TravelService(this);
-
+
+ factionService = new FactionService(this);
objectService = new ObjectService(this);
terrainService = new TerrainService(this);
updateService = new UpdateService(this);
@@ -198,7 +330,36 @@ public class NGECore {
skillService = new SkillService(this);
skillModService = new SkillModService(this);
equipmentService = new EquipmentService(this);
+ entertainmentService = new EntertainmentService(this);
+ devService = new DevService(this);
+ conversationService = new ConversationService(this);
+ bazaarService = new BazaarService(this);
+ housingService = new HousingService(this);
+ lootService = new LootService(this);
+ harvesterService = new HarvesterService(this);
+ mountService = new MountService(this);
+ playerCityService = new PlayerCityService(this);
+ staticService = new StaticService(this);
+ if (config.keyExists("JYTHONCONSOLE.PORT")) {
+ int jythonPort = config.getInt("JYTHONCONSOLE.PORT");
+ if (jythonPort > 0) {
+
+ System.out.println("Starting InteractiveJythonServer on Port " + jythonPort);
+ jythonAcceptor = new InteractiveJythonAcceptor();
+ jythonServer = new InteractiveJythonServer((IoHandler) jythonAcceptor, jythonPort, this);
+ jythonAcceptor.setServer(jythonServer);
+ jythonServer.start();
+ }
+ }
+ spawnService = new SpawnService(this);
+ aiService = new AIService(this);
+ missionService = new MissionService(this);
+
+ if (optionsConfigLoaded && options.getInt("LOAD.RESOURCE.SYSTEM") == 1) {
+ surveyService = new SurveyService(this);
+ resourceService = new ResourceService(this);
+ }
// Ping Server
try {
@@ -217,8 +378,10 @@ public class NGECore {
// Zone Server
zoneDispatch = new NetworkDispatch(this, true);
+ zoneDispatch.addService(retroService);
zoneDispatch.addService(connectionService);
zoneDispatch.addService(characterService);
+ zoneDispatch.addService(factionService);
zoneDispatch.addService(objectService);
zoneDispatch.addService(commandService);
zoneDispatch.addService(chatService);
@@ -226,12 +389,26 @@ public class NGECore {
zoneDispatch.addService(mapService);
zoneDispatch.addService(travelService);
zoneDispatch.addService(playerService);
-
+ zoneDispatch.addService(buffService);
+ zoneDispatch.addService(entertainmentService);
+ zoneDispatch.addService(missionService);
+ zoneDispatch.addService(bazaarService);
+ zoneDispatch.addService(lootService);
+ zoneDispatch.addService(mountService);
+ zoneDispatch.addService(housingService);
+ zoneDispatch.addService(playerCityService);
+ zoneDispatch.addService(staticService);
+
+ if (optionsConfigLoaded && options.getInt("LOAD.RESOURCE.SYSTEM") == 1) {
+ zoneDispatch.addService(surveyService);
+ zoneDispatch.addService(resourceService);
+ }
+
zoneServer = new MINAServer(zoneDispatch, config.getInt("ZONE.PORT"));
zoneServer.start();
- staticService = new StaticService(this);
- // Planets
+ //Start terrainList
+ // Original Planets
terrainService.addPlanet(1, "tatooine", "terrain/tatooine.trn", true);
terrainService.addPlanet(2, "naboo", "terrain/naboo.trn", true);
terrainService.addPlanet(3, "corellia", "terrain/corellia.trn", true);
@@ -244,38 +421,132 @@ public class NGECore {
terrainService.addPlanet(10, "dathomir", "terrain/dathomir.trn", true);
terrainService.addPlanet(11, "mustafar", "terrain/mustafar.trn", true);
terrainService.addPlanet(12, "kashyyyk_main", "terrain/kashyyyk_main.trn", true);
- terrainService.loadSnapShotObjects();
+ //Dungeon Terrains
+ // TODO: Fix BufferUnderFlow Errors on loaded of dungeon instances.
+ terrainService.addPlanet(13, "kashyyyk_dead_forest", "terrain/kashyyyk_dead_forest.trn", true);
+ terrainService.addPlanet(14, "kashyyyk_hunting", "terrain/kashyyyk_hunting.trn", true);
+ terrainService.addPlanet(15, "kashyyyk_north_dungeons", "terrain/kashyyyk_north_dungeons.trn", true);
+ terrainService.addPlanet(16, "kashyyyk_rryatt_trail", "terrain/kashyyyk_rryatt_trail.trn", true);
+ terrainService.addPlanet(17, "kashyyyk_south_dungeons", "terrain/kashyyyk_south_dungeons.trn", true);
+ terrainService.addPlanet(18, "adventure1", "terrain/adventure1.trn", true);
+ terrainService.addPlanet(19, "adventure2", "terrain/adventure2.trn", true);
+ terrainService.addPlanet(20, "dungeon1", "terrain/dungeon1.trn", true);
+ //Space Zones
+ // NOTE: Commented out for now until space is implemented. No need to be loaded into memory when space is not implemented.
+ /*terrainService.addPlanet(21, "space_corellia", "terrain/space_corellia.trn", true);
+ terrainService.addPlanet(22, "space_corellia_2", "terrain/space_corellia_2.trn", true);
+ terrainService.addPlanet(23, "space_dantooine", "terrain/space_dantooine.trn", true);
+ terrainService.addPlanet(24, "space_dathomir", "terrain/space_dathomir.trn", true);
+ terrainService.addPlanet(25, "space_endor", "terrain/space_endor.trn", true);
+ terrainService.addPlanet(26, "space_env", "terrain/space_env.trn", true);
+ terrainService.addPlanet(27, "space_halos", "terrain/space_halos.trn", true);
+ terrainService.addPlanet(28, "space_heavy1", "terrain/space_heavy1.trn", true);
+ terrainService.addPlanet(29, "space_kashyyyk", "terrain/space_kashyyyk.trn", true);
+ terrainService.addPlanet(30, "space_light1", "terrain/space_light1.trn", true);
+ terrainService.addPlanet(31, "space_lok", "terrain/space_lok.trn", true);
+ terrainService.addPlanet(32, "space_naboo", "terrain/space_naboo.trn", true);
+ terrainService.addPlanet(33, "space_naboo_2", "terrain/space_naboo_2.trn", true);
+ terrainService.addPlanet(34, "space_nova_orion", "terrain/space_nova_orion.trn", true);
+ terrainService.addPlanet(35, "space_npe_falcon", "terrain/space_npe_falcon.trn", true); // TODO: New Player Tutorial
+ terrainService.addPlanet(36, "space_npe_falcon_2", "terrain/space_npe_falcon_2.trn", true); // TODO: New Player Tutorial
+ terrainService.addPlanet(37, "space_ord_mantell", "terrain/space_ord_mantell.trn", true);
+ terrainService.addPlanet(38, "space_ord_mantell_2", "terrain/space_ord_mantell_2.trn", true);
+ terrainService.addPlanet(39, "space_ord_mantell_3", "terrain/space_ord_mantell_3.trn", true);
+ terrainService.addPlanet(40, "space_ord_mantell_4", "terrain/space_ord_mantell_4.trn", true);
+ terrainService.addPlanet(41, "space_ord_mantell_5", "terrain/space_ord_mantell_5.trn", true);
+ terrainService.addPlanet(42, "space_ord_mantell_6", "terrain/space_ord_mantell_6.trn", true);
+ terrainService.addPlanet(43, "space_tatooine", "terrain/space_tatooine.trn", true);
+ terrainService.addPlanet(44, "space_tatooine_2", "terrain/space_tatooine_2.trn", true);
+ terrainService.addPlanet(45, "space_yavin4", "terrain/space_yavin4.trn", true);*/
+ //PSWG New Content Terrains (WARNING Keep commented out unless you have the current build of kaas!)
+
+ //terrainService.addPlanet(46, "kaas", "terrain/kaas.trn", true);
+
+ //end terrainList
- // Zone services that need to be loaded after the above
- simulationService = new SimulationService(this);
- zoneDispatch.addService(simulationService);
+ chatService.loadChatRooms();
+ spawnService = new SpawnService(this);
+ terrainService.loadClientPois();
// Travel Points
travelService.loadTravelPoints();
+ simulationService = new SimulationService(this);
- // Static Spawns
- staticService.spawnStatics();
+
+ if (optionsConfigLoaded && options.getInt("LOAD.RESOURCE.SYSTEM") > 0) {
+ resourceService.loadResourceRoots();
+ resourceService.loadResources();
+ }
+
+ terrainService.loadSnapShotObjects();
+ objectService.loadServerTemplates();
+ objectService.loadBuildings();
+ harvesterService.loadHarvesters();
+
+ simulationService.insertSnapShotObjects();
+ simulationService.insertPersistentBuildings();
+ // Zone services that need to be loaded after the above
+ zoneDispatch.addService(simulationService);
guildService = new GuildService(this);
zoneDispatch.addService(guildService);
gcwService = new GCWService(this);
zoneDispatch.addService(gcwService);
+
+ collectionService = new CollectionService(this);
+ zoneDispatch.addService(collectionService);
tradeService = new TradeService(this);
zoneDispatch.addService(tradeService);
zoneDispatch.addService(skillService);
- travelService.startShuttleSchedule();
+ instanceService = new InstanceService(this);
+ zoneDispatch.addService(instanceService);
+
+ weatherService = new WeatherService(this);
+ weatherService.loadPlanetSettings();
+
+ spawnService.loadMobileTemplates();
+ spawnService.loadLairTemplates();
+ spawnService.loadLairGroups();
+ spawnService.loadDynamicGroups();;
+ spawnService.loadSpawnAreas();
+
+ staticService.spawnStatics();
+
+ equipmentService.loadBonusSets();
+
+ retroService.run();
didServerCrash = false;
System.out.println("Started Server.");
+ cleanupCreatureODB();
setGalaxyStatus(2);
}
-
+ private void cleanupCreatureODB() {
+ ODBCursor cursor = swgObjectODB.getCursor();
+
+ List deletedObjects = new ArrayList();
+
+ while(cursor.hasNext()) {
+ Object next = cursor.next();
+ if (next == null) continue;
+ SWGObject creature = (SWGObject) next;
+ if(!characterService.playerExists(creature.getObjectID()) && creature instanceof CreatureObject)
+ deletedObjects.add((CreatureObject) creature);
+ }
+ cursor.close();
+
+ for(CreatureObject creature : deletedObjects) {
+ swgObjectODB.remove(creature.getObjectID());
+ }
+
+ System.out.println("Deleted " + deletedObjects.size() + " creatures.");
+ }
public void stop() {
System.out.println("Stopping Servers and Connections.");
@@ -347,6 +618,10 @@ public class NGECore {
return config;
}
+ public String getGalaxyName() {
+ return config.getString("GALAXY_NAME");
+ }
+
public DatabaseConnection getDatabase1() {
return databaseConnection;
}
@@ -355,17 +630,53 @@ public class NGECore {
return databaseConnection2;
}
- public ObjectDatabase getCreatureODB() {
- return creatureODB;
+ public ObjectDatabase getSWGObjectODB() {
+ return swgObjectODB;
}
public ObjectDatabase getMailODB() {
return mailODB;
}
+ public ObjectDatabase getGuildODB() {
+ return guildODB;
+ }
+
+ public ObjectDatabase getObjectIdODB() {
+ return objectIdODB;
+ }
+
+ public ObjectDatabase getDuplicateIdODB() {
+ return duplicateIdODB;
+ }
+
+ public ObjectDatabase getChatRoomODB() {
+ return chatRoomODB;
+ }
+
+ public ObjectDatabase getBountiesODB() {
+ return bountiesODB;
+ }
+
+ public ObjectDatabase getResourcesODB() {
+ return resourcesODB;
+ }
+
+ public ObjectDatabase getResourceRootsODB() {
+ return resourceRootsODB;
+ }
+
+ public ObjectDatabase getResourceHistoryODB() {
+ return resourceHistoryODB;
+ }
+
+ public ObjectDatabase getAuctionODB() {
+ return auctionODB;
+ }
+
public int getActiveClients() {
int connections = 0;
- for (Map.Entry c : clients.entrySet()) {
+ for (Map.Entry c : clients.entrySet()) {
if(c.getValue().getSession() != null) {
if (c.getValue().getSession().isConnected()) {
connections++;
@@ -377,7 +688,7 @@ public class NGECore {
public int getActiveZoneClients() {
int connections = 0;
- for (Map.Entry c : clients.entrySet()) {
+ for (Map.Entry c : clients.entrySet()) {
if(c.getValue().getSession() != null) {
if (c.getValue().getSession().isConnected() && c.getValue().getParent() != null) {
connections++;
@@ -388,23 +699,23 @@ public class NGECore {
}
- public Client getClient(int connectionID) {
- return clients.get(connectionID);
+ public Client getClient(IoSession session) {
+ return clients.get(session);
}
- public ConcurrentHashMap getActiveConnectionsMap() {
+ public ConcurrentHashMap getActiveConnectionsMap() {
return clients;
}
/*
* --------------- Other methods for services ---------------
*/
- public void addClient(Integer connectionID, Client client) {
- clients.put(connectionID, client);
+ public void addClient(IoSession session, Client client) {
+ clients.put(session, client);
}
- public void removeClient(Integer connectionID) {
- clients.remove(connectionID);
+ public void removeClient(IoSession session) {
+ clients.remove(session);
}
// for python scripts
@@ -415,5 +726,69 @@ public class NGECore {
public static NGECore getInstance() {
return instance;
}
+
+ public BusConfiguration getEventBusConfig() {
+ return eventBusConfig;
+ }
+
+ public void initiateShutdown() {
+ if(isShuttingDown)
+ return;
+ try {
+
+ for(int minutes = 15; minutes > 1; minutes--) {
+ chatService.broadcastGalaxy("The server will be shutting down soon. Please find a safe place to logout. (" + minutes + " minutes left)");
+ Thread.sleep(60000);
+ }
+ setGalaxyStatus(3);
+ chatService.broadcastGalaxy("The server will be shutting down soon. Please find a safe place to logout. (" + 1 + " minutes left)");
+ Thread.sleep(30000);
+ chatService.broadcastGalaxy("You will be disconnected in 30 seconds so the server can perform a final save before shutting down. Please find a safe place to logout now.");
+ Thread.sleep(20000);
+ chatService.broadcastGalaxy("You will be disconnected in 10 seconds so the server can perform a final save before shutting down. Please find a safe place to logout now.");
+ Thread.sleep(10000);
+ chatService.broadcastGalaxy("You will now be disconnected so the server can perform a final save before shutting down.");
+
+ synchronized(getActiveConnectionsMap()) {
+ for(Client client : getActiveConnectionsMap().values()) {
+ client.getSession().close(true);
+ connectionService.disconnect(client);
+ }
+ }
+
+ System.exit(0);
+
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+
+
+ }
+
+ public long getGalacticTime() {
+ return System.currentTimeMillis() - galacticTime;
+ }
+
+ public void closeODBs() {
+ swgObjectODB.close();
+ mailODB.close();
+ guildODB.close();
+ chatRoomODB.close();
+ resourcesODB.close();
+ resourceRootsODB.close();
+ resourceHistoryODB.close();
+ objectIdODB.close();
+ duplicateIdODB.close();
+ auctionODB.close();
+ }
+
+ public String getMotd() {
+ return motd;
+ }
+
+ public void setMotd(String motd) {
+ this.motd = motd;
+ }
}
diff --git a/src/protocol/Message.java b/src/protocol/Message.java
index 5085a975..9792eaec 100644
--- a/src/protocol/Message.java
+++ b/src/protocol/Message.java
@@ -103,6 +103,7 @@ public abstract class Message {
}
+ //TODO: Verify if character position is set correctly after reading a UTF-16 string
buffer.position(bufferPosition + length);
return result;
@@ -146,8 +147,8 @@ public abstract class Message {
return result.array();
}
-
-
+
+ //FIXME: this is redundant and was also bugged. At some point, get rid of the redundant functions.
/**
* Reads the next string in. It gets the length of the
* string from the short/int at the beginning of it
@@ -161,7 +162,7 @@ public abstract class Message {
if (charset.equals("US-ASCII") || charset.equals("UTF-8")) {
length = bb.getShort();
} else {
- length = bb.getInt();
+ length = bb.getInt() * 2;
}
if (length > bb.remaining())
return "";
@@ -201,4 +202,4 @@ public abstract class Message {
return getNextString(buffer, "UTF-16LE");
}
-}
+}
diff --git a/src/protocol/swg/AddIgnoreMessage.java b/src/protocol/swg/AddIgnoreMessage.java
new file mode 100644
index 00000000..eeca8600
--- /dev/null
+++ b/src/protocol/swg/AddIgnoreMessage.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import java.nio.ByteOrder;
+
+import main.NGECore;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import engine.resources.config.Config;
+import engine.resources.objects.SWGObject;
+
+public class AddIgnoreMessage extends SWGMessage {
+
+ private SWGObject player;
+ private boolean type;
+ private String ignoreName;
+
+ public AddIgnoreMessage(SWGObject obj, String name, boolean type) {
+ this.player = obj;
+ this.ignoreName = name;
+ this.type = type;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ Config config = NGECore.getInstance().getConfig();
+ String server = config.getProperty("GALAXY_NAME");
+
+ IoBuffer result = IoBuffer.allocate(34 + server.length() + ignoreName.length()).order(ByteOrder.LITTLE_ENDIAN);
+
+ result.putShort((short) 6);
+ result.putInt(0x70E9DA0F);
+ result.putLong(player.getObjectId());
+
+ result.put(getAsciiString("SWG"));
+ result.put(getAsciiString(server));
+ result.put(getAsciiString(ignoreName));
+
+ result.putInt(0);
+ result.put((byte) ((type) ? 1 : 0)); // add = T, remove = F
+ result.putInt(0);
+
+ return result.flip();
+ }
+
+}
diff --git a/src/protocol/swg/AttributeListMessage.java b/src/protocol/swg/AttributeListMessage.java
index da681a16..55721a52 100644
--- a/src/protocol/swg/AttributeListMessage.java
+++ b/src/protocol/swg/AttributeListMessage.java
@@ -22,7 +22,6 @@
package protocol.swg;
import java.nio.ByteOrder;
-import java.util.Map.Entry;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.buffer.SimpleBufferAllocator;
@@ -47,7 +46,7 @@ public class AttributeListMessage extends SWGMessage {
@Override
public IoBuffer serialize() {
- IoBuffer result = bufferPool.allocate(100, false).order(ByteOrder.LITTLE_ENDIAN);
+ final IoBuffer result = bufferPool.allocate(100, false).order(ByteOrder.LITTLE_ENDIAN);
result.setAutoExpand(true);
result.putShort((short) 5);
@@ -58,17 +57,16 @@ public class AttributeListMessage extends SWGMessage {
synchronized(target.getMutex()) {
result.putInt(target.getAttributes().size());
-
- for(Entry e : target.getAttributes().entrySet()) {
- result.put(getAsciiString(e.getKey()));
- result.put(getUnicodeString(e.getValue()));
- }
+ target.getAttributes().forEach((key, value) -> {
+ result.put(getAsciiString(key));
+ result.put(getUnicodeString(value));
+ });
}
result.putInt(0);
int size = result.position();
- result = bufferPool.allocate(size, false).put(result.array(), 0, size);
+ IoBuffer result2 = bufferPool.allocate(size, false).put(result.array(), 0, size);
- return result.flip();
+ return result2.flip();
}
diff --git a/src/protocol/swg/CharacterSheetResponseMessage.java b/src/protocol/swg/CharacterSheetResponseMessage.java
new file mode 100644
index 00000000..bdb6531d
--- /dev/null
+++ b/src/protocol/swg/CharacterSheetResponseMessage.java
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import java.nio.ByteOrder;
+
+import main.NGECore;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import resources.objects.creature.CreatureObject;
+import resources.objects.player.PlayerObject;
+import engine.resources.common.CRC;
+import engine.resources.objects.SWGObject;
+import engine.resources.scene.Point3D;
+
+public class CharacterSheetResponseMessage extends SWGMessage {
+
+ private PlayerObject player;
+ public CharacterSheetResponseMessage(PlayerObject player) {
+ this.player = player;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ CreatureObject creature = (CreatureObject) player.getContainer();
+
+ if (creature != null && player != null) {
+
+ SWGObject desCloner = null;
+ if (player.getBindLocation() != 0)
+ desCloner = NGECore.getInstance().objectService.getObject(player.getBindLocation());
+
+ String clonerPlanet = "";
+ String spouse = "";
+
+ if (desCloner != null)
+ clonerPlanet = desCloner.getPlanet().getName();
+
+ if (player.getSpouseName() != null)
+ spouse = player.getSpouseName();
+
+ IoBuffer buffer = IoBuffer.allocate(82 + clonerPlanet.length() + (spouse.length() * 2)).order(ByteOrder.LITTLE_ENDIAN);
+
+ buffer.putShort((short) 12);
+ buffer.putInt(CRC.StringtoCRC("CharacterSheetResponseMessage"));
+
+ buffer.putInt(0);
+ buffer.putInt(0);
+
+ if (desCloner != null) {
+ Point3D loc = desCloner.getPosition();
+ buffer.putFloat(loc.x); // bind x
+ buffer.putFloat(loc.y); // bind z
+ buffer.putFloat(loc.z); // bind y
+ buffer.put(getAsciiString(clonerPlanet)); // bind planet
+ } else {
+ buffer.putFloat(0); // bind x
+ buffer.putFloat(0); // bind z
+ buffer.putFloat(0); // bind y
+ buffer.put(getAsciiString("")); // bind planet
+ }
+
+ buffer.putFloat(0); // bank x
+ buffer.putFloat(0); // bank z
+ buffer.putFloat(0); // bank y
+ buffer.put(getAsciiString("tatooine"));
+
+ buffer.putFloat(0); // home x
+ buffer.putFloat(0); // home z
+ buffer.putFloat(0); // home y
+ buffer.put(getAsciiString("")); // home planet
+
+ buffer.put(getAsciiString("")); // Name of city player resides in
+
+ buffer.put(getUnicodeString(spouse));
+
+ buffer.putInt(creature.getPlayerObject().getLotsRemaining()); // lots remaining
+
+ return buffer.flip();
+ }
+ return null;
+ }
+
+}
diff --git a/src/protocol/swg/ChatOnAddFriend.java b/src/protocol/swg/ChatOnAddFriend.java
deleted file mode 100644
index be805945..00000000
--- a/src/protocol/swg/ChatOnAddFriend.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package protocol.swg;
-
-import java.nio.ByteOrder;
-
-import org.apache.mina.core.buffer.IoBuffer;
-
-public class ChatOnAddFriend extends SWGMessage {
-
- @Override
- public void deserialize(IoBuffer data) {
-
- }
-
- @Override
- public IoBuffer serialize() {
- IoBuffer result = IoBuffer.allocate(20).order(ByteOrder.LITTLE_ENDIAN);
-
- result.putShort((short) 0x03);
- result.putInt(0x2B2A0D94);
- result.putLong(0);
- result.flip();
- return result;
- }
-
-}
diff --git a/src/protocol/swg/ChatOnChangeFriendStatus.java b/src/protocol/swg/ChatOnChangeFriendStatus.java
deleted file mode 100644
index 5eeb3f33..00000000
--- a/src/protocol/swg/ChatOnChangeFriendStatus.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package protocol.swg;
-
-import java.nio.ByteOrder;
-
-import main.NGECore;
-
-import org.apache.mina.core.buffer.IoBuffer;
-
-import engine.resources.config.Config;
-import engine.resources.config.DefaultConfig;
-
-public class ChatOnChangeFriendStatus extends SWGMessage {
-
- private String name;
- private int type;
- private long playerID;
-
- // Adds or Removes a friend, not to be confused with online/offline status
- public ChatOnChangeFriendStatus(long playerID, String name, int type) {
- this.name = name;
- this.type = type;
- this.playerID = playerID;
- }
- @Override
- public void deserialize(IoBuffer data) {
-
- }
-
- @Override
- public IoBuffer serialize() {
- Config config = new Config();
- config.setFilePath("nge.cfg");
- if (!(config.loadConfigFile())) {
- config = DefaultConfig.getConfig();
- }
- String server = config.getString("GALAXY_NAME");
- IoBuffer result = IoBuffer.allocate(100 + this.name.length() + server.length()).order(ByteOrder.LITTLE_ENDIAN);
- result.putShort((short)0x06);
- result.putInt(0x54336726);
- result.putLong(playerID);
-
- result.put(getAsciiString("SWG"));
- result.put(getAsciiString(server));
- result.put(getAsciiString(name));
- result.putInt(0);
- result.putInt(type);
- result.put((byte) 0);
- result.flip();
- //System.out.println("ChatOnChangeFriendStatus: " + result.getHexDump());
- return result;
- }
-
-}
diff --git a/src/protocol/swg/ChatSystemMessage.java b/src/protocol/swg/ChatSystemMessage.java
deleted file mode 100644
index e12aa1f4..00000000
--- a/src/protocol/swg/ChatSystemMessage.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013
- *
- * This File is part of NGECore2.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- *
- * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
- * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
- ******************************************************************************/
-package protocol.swg;
-
-import java.nio.ByteOrder;
-
-import org.apache.mina.core.buffer.IoBuffer;
-
-import resources.common.Opcodes;
-
-public class ChatSystemMessage extends SWGMessage{
-
- private String stfFilename;
- private String stfName;
- private int stat;
- private String message;
- private byte displayType;
-
- public ChatSystemMessage(String message, byte displayType) {
- this.message = message;
- this.displayType = displayType;
- }
-
- public ChatSystemMessage(String stfFilename, String stfName, int stat, byte displayType) {
- this.stfFilename = stfFilename;
- this.stfName = stfName;
- this.stat = stat;
- this.displayType = displayType;
- }
-
- public void deserialize(IoBuffer data) {
-
- }
-
- public IoBuffer serialize() {
- if (message != null) {
- IoBuffer result = IoBuffer.allocate(15 + message.length() * 2).order(ByteOrder.LITTLE_ENDIAN);
- result.putShort((short) 2);
- result.putInt(Opcodes.ChatSystemMessage);
- result.put(displayType); // 0x00 = Chat and Screen // 0x02 = Chat only
- result.put(getUnicodeString(message));
- result.putInt(0);
- return result.flip();
- } else {
- IoBuffer result = IoBuffer.allocate(99 + stfFilename.length() + stfName.length()).order(ByteOrder.LITTLE_ENDIAN);
- result.putShort((short) 4);
- result.putInt(Opcodes.ChatSystemMessage);
- result.put((byte) 0); //result.put((byte) displayType); // 0x00 = Chat and Screen // 0x02 = Chat only
- result.putInt(0);
- result.putInt(54);
- result.putShort((short) 0);
- result.put((byte) 1);
- result.putInt(-1);
- result.put(getAsciiString(stfFilename));
- result.putInt(0);
- result.put(getAsciiString(stfName));
- result.putInt(0);
- result.putLong(0);
- result.putLong(0);
- result.putLong(0);
- result.putLong(0);
- result.putLong(0);
- result.putLong(0);
- result.putLong(0);
- result.putInt(stat);
- result.putInt(0);
- result.put((byte) 0);
- return result.flip();
- }
- }
-
-}
diff --git a/src/protocol/swg/ClientPermissionsMessage.java b/src/protocol/swg/ClientPermissionsMessage.java
index b2f7dc22..8a2ba6de 100644
--- a/src/protocol/swg/ClientPermissionsMessage.java
+++ b/src/protocol/swg/ClientPermissionsMessage.java
@@ -28,11 +28,14 @@ import org.apache.mina.core.buffer.IoBuffer;
public class ClientPermissionsMessage extends SWGMessage {
- public ClientPermissionsMessage() {
+ private int characterSlotsOpen;
+
+ public ClientPermissionsMessage(int characterSlotsOpen) {
+ if(characterSlotsOpen < 0)
+ characterSlotsOpen = 0;
+ this.characterSlotsOpen = characterSlotsOpen;
operandCount = 5;
opcode = 0xE00730E5;
-
- data = new byte[] { (byte)0x01, (byte)0x01, (byte)0x00, (byte)0x01 };
}
public void deserialize(IoBuffer data) {
@@ -44,9 +47,11 @@ public class ClientPermissionsMessage extends SWGMessage {
result.putShort(operandCount);
result.putInt(opcode);
- result.put(data);
- result.flip();
+ result.put((byte) 1);
+ result.put((byte) characterSlotsOpen);
+ result.put((byte) 0);
+ result.put((byte) 1);
- return result;
+ return result.flip();
}
}
diff --git a/src/protocol/swg/ClientVerifyAndLockNameRequest.java b/src/protocol/swg/ClientVerifyAndLockNameRequest.java
index 7d9c9722..ea0011f5 100644
--- a/src/protocol/swg/ClientVerifyAndLockNameRequest.java
+++ b/src/protocol/swg/ClientVerifyAndLockNameRequest.java
@@ -38,8 +38,8 @@ public class ClientVerifyAndLockNameRequest extends SWGMessage {
public void deserialize(IoBuffer buffer) {
buffer.position(6); // Skips SOE and SWG opcodes
raceTemplate = getNextAsciiString(buffer);
- name = getNextUnicodeString(buffer);;
-
+ name = getNextUnicodeString(buffer);
+ System.out.println("msg: " + name);
// Gets the first and last names
String [] splitName = name.split(" ");
firstName = splitName[0];
diff --git a/src/protocol/swg/CollectionServerFirstListRequest.java b/src/protocol/swg/CollectionServerFirstListRequest.java
new file mode 100644
index 00000000..cc053664
--- /dev/null
+++ b/src/protocol/swg/CollectionServerFirstListRequest.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+public class CollectionServerFirstListRequest extends SWGMessage {
+
+ private String server;
+
+ public CollectionServerFirstListRequest() {
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ data.getShort();
+ data.getInt();
+ setServer(getAsciiString(data));
+ }
+
+ public String getServer() {
+ return server;
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ return null;
+ }
+
+ public void setServer(String server) {
+ this.server = server;
+ }
+
+}
diff --git a/src/protocol/swg/CollectionServerFirstListResponse.java b/src/protocol/swg/CollectionServerFirstListResponse.java
new file mode 100644
index 00000000..0373dc5a
--- /dev/null
+++ b/src/protocol/swg/CollectionServerFirstListResponse.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import java.nio.ByteOrder;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import services.collections.ServerFirst;
+import engine.resources.common.CRC;
+
+public class CollectionServerFirstListResponse extends SWGMessage {
+
+ private Map sfList;
+ private String server;
+
+ public CollectionServerFirstListResponse(String server, Map serverFirstList){
+ this.sfList = serverFirstList;
+ this.server = server;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer;
+
+ int size = 0;
+
+ synchronized (sfList) {
+ for (Entry entry : sfList.entrySet()) {
+ size += entry.getValue().getBytes().length;
+ }
+
+ buffer = IoBuffer.allocate(12 + server.length() + size).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.putShort((short) 2);
+ buffer.putInt(CRC.StringtoCRC("CollectionServerFirstListResponse"));
+
+ buffer.put(getAsciiString(server));
+ buffer.putInt(sfList.size());
+
+ for (Entry entry : sfList.entrySet()) {
+ buffer.put(entry.getValue().getBytes());
+
+ }
+ return buffer.flip();
+ }
+ }
+}
diff --git a/src/protocol/swg/CommPlayerMessage.java b/src/protocol/swg/CommPlayerMessage.java
new file mode 100644
index 00000000..9acde60c
--- /dev/null
+++ b/src/protocol/swg/CommPlayerMessage.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import engine.resources.common.CRC;
+import resources.common.OutOfBand;
+
+public class CommPlayerMessage extends SWGMessage {
+
+ private long objectId;
+ private String model;
+ private OutOfBand outOfBand;
+ private int time;
+
+ public CommPlayerMessage(long objectId, OutOfBand outOfBand) {
+ this.objectId = objectId;
+ this.outOfBand = outOfBand;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(50).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.setAutoExpand(true);
+
+ buffer.putShort((short) 2);
+ buffer.putInt(0x594AD258);
+ buffer.put((byte) 0); // aurebesh borders on comm, space version? Can cause crashes
+ buffer.putLong(objectId);
+ buffer.put(outOfBand.serialize().array());
+ // Officer Supply Drop: 0x3E894347
+ // Rebel Faction Dude: 0x528CB3D7
+ if (model == null)
+ buffer.putInt(0x3E894347);
+ else
+ buffer.putInt(CRC.StringtoCRC(model));
+ buffer.putInt(0); // sound
+ buffer.putShort((short) 0); // unk
+ if (time == 0)
+ buffer.putShort((short) 16576);
+ else
+ buffer.putShort((short) time);
+ buffer.flip();
+ return buffer;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ public void setTime(int time) {
+ this.time = time;
+ }
+}
diff --git a/src/protocol/swg/CreateClientPathMessage.java b/src/protocol/swg/CreateClientPathMessage.java
new file mode 100644
index 00000000..930f9eb2
--- /dev/null
+++ b/src/protocol/swg/CreateClientPathMessage.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import java.nio.ByteOrder;
+import java.util.List;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import engine.resources.common.CRC;
+import engine.resources.common.StringUtilities;
+import engine.resources.scene.Point3D;
+
+public class CreateClientPathMessage extends SWGMessage {
+
+ private List coordinates;
+
+ public CreateClientPathMessage(List coordinates) {
+ this.coordinates = coordinates;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate((coordinates.size() * 12) + 10).order(ByteOrder.LITTLE_ENDIAN);
+
+ buffer.putShort((short) 2);
+ buffer.putInt(CRC.StringtoCRC("CreateClientPathMessage"));
+
+ buffer.putInt(coordinates.size());
+ for(Point3D point : coordinates) {
+ buffer.putFloat(point.x);
+ buffer.putFloat(point.z);
+ buffer.putFloat(point.y);
+ }
+
+ buffer.flip();
+ StringUtilities.printBytes(buffer.array());
+ return buffer;
+ }
+
+}
diff --git a/src/protocol/swg/EnterStructurePlacementModeMessage.java b/src/protocol/swg/EnterStructurePlacementModeMessage.java
new file mode 100644
index 00000000..b46ed3db
--- /dev/null
+++ b/src/protocol/swg/EnterStructurePlacementModeMessage.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import java.nio.ByteOrder;
+
+import main.NGECore;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import services.travel.TravelPoint;
+import engine.resources.objects.SWGObject;
+
+@SuppressWarnings("unused")
+public class EnterStructurePlacementModeMessage extends SWGMessage {
+
+ private SWGObject deed;
+ private String structureTemplate;
+
+ public EnterStructurePlacementModeMessage(SWGObject deed, String structureTemplate) {
+ this.deed = deed;
+ this.structureTemplate = structureTemplate;
+ deed.setAttachment("structureTemplate", structureTemplate);
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer result = IoBuffer.allocate(16 + structureTemplate.length()).order(ByteOrder.LITTLE_ENDIAN);
+ result.putShort((short) 3);
+ result.putInt(0xE8A54DC1);
+ result.putLong(deed.getObjectID());
+ result.put(getAsciiString(structureTemplate));
+ return result.flip();
+ }
+
+}
\ No newline at end of file
diff --git a/src/protocol/swg/EnterTicketPurchaseModeMessage.java b/src/protocol/swg/EnterTicketPurchaseModeMessage.java
index 05d53ad5..d160f215 100644
--- a/src/protocol/swg/EnterTicketPurchaseModeMessage.java
+++ b/src/protocol/swg/EnterTicketPurchaseModeMessage.java
@@ -30,6 +30,7 @@ import org.apache.mina.core.buffer.IoBuffer;
import services.travel.TravelPoint;
import engine.resources.objects.SWGObject;
+@SuppressWarnings("unused")
public class EnterTicketPurchaseModeMessage extends SWGMessage {
private String planetName;
@@ -51,8 +52,7 @@ public class EnterTicketPurchaseModeMessage extends SWGMessage {
public IoBuffer serialize() {
final NGECore core = NGECore.getInstance();
TravelPoint nearestPoint = core.travelService.getNearestTravelPoint(player);
-
- IoBuffer result = IoBuffer.allocate(20 + planetName.length() + nearestPoint.getName().length()).order(ByteOrder.LITTLE_ENDIAN);
+ IoBuffer result = IoBuffer.allocate(11 + planetName.length() + nearestPoint.getName().length()).order(ByteOrder.LITTLE_ENDIAN);
result.putShort((short) 3);
result.putInt(0x904DAE1A);
@@ -60,6 +60,8 @@ public class EnterTicketPurchaseModeMessage extends SWGMessage {
result.put(getAsciiString(planetName));
result.put(getAsciiString(nearestPoint.getName()));
+ result.put((byte) 0);
+
return result.flip();
}
diff --git a/src/protocol/swg/FactionResponseMessage.java b/src/protocol/swg/FactionResponseMessage.java
new file mode 100644
index 00000000..fe3b8bbb
--- /dev/null
+++ b/src/protocol/swg/FactionResponseMessage.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import java.nio.ByteOrder;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import resources.common.Opcodes;
+
+public class FactionResponseMessage extends SWGMessage {
+
+ private Map factionStandingMap;
+ private int factionRank = 0;
+ private int rebelPoints = 0;
+ private int imperialPoints = 0;
+
+ public FactionResponseMessage(Map factionStandingMap, int factionRank) {
+ this.factionStandingMap = new TreeMap();
+ this.factionStandingMap.putAll(factionStandingMap);
+ this.factionRank = factionRank;
+
+ if (this.factionStandingMap.containsKey("rebel")) {
+ this.rebelPoints = this.factionStandingMap.get("rebel");
+ }
+
+ if (this.factionStandingMap.containsKey("imperial")) {
+ this.imperialPoints = this.factionStandingMap.get("imperial");
+ }
+ }
+
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ public IoBuffer serialize() {
+ int size = 26 + (factionStandingMap.size() * 4);
+
+ for (String faction : factionStandingMap.keySet()) {
+ size += (2 + faction.length());
+ }
+
+ IoBuffer result = IoBuffer.allocate(size, false).order(ByteOrder.LITTLE_ENDIAN);
+ result.setAutoExpand(true);
+ result.putShort((short) 2);
+ result.putInt(Opcodes.FactionResponseMessage);
+ result.putInt(factionRank);
+ result.putInt(rebelPoints);
+ result.putInt(imperialPoints);
+ result.putInt(factionStandingMap.size());
+ for (String faction : factionStandingMap.keySet()) {
+ result.put(getAsciiString(faction));
+ }
+ result.putInt(factionStandingMap.size());
+ for (Integer points : factionStandingMap.values()) {
+ result.putFloat((float) points);
+ }
+ result.flip();
+ return result;
+ }
+
+}
diff --git a/src/protocol/swg/GuildRequestMessage.java b/src/protocol/swg/GuildRequestMessage.java
new file mode 100644
index 00000000..d9f1f368
--- /dev/null
+++ b/src/protocol/swg/GuildRequestMessage.java
@@ -0,0 +1,31 @@
+package protocol.swg;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+public class GuildRequestMessage extends SWGMessage {
+
+ private long characterId;
+
+ public GuildRequestMessage() {
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ //data.getShort();
+ setCharacterId(data.getLong());
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ return null;
+ }
+
+ public long getCharacterId() {
+ return characterId;
+ }
+
+ public void setCharacterId(long characterId) {
+ this.characterId = characterId;
+ }
+
+}
diff --git a/src/protocol/swg/GuildResponseMessage.java b/src/protocol/swg/GuildResponseMessage.java
new file mode 100644
index 00000000..f98e6713
--- /dev/null
+++ b/src/protocol/swg/GuildResponseMessage.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+public class GuildResponseMessage extends SWGMessage {
+
+ private long player;
+ private String guildName;
+
+ public GuildResponseMessage(long player, String guild) {
+ this.player = player;
+ this.guildName = guild;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(18 + guildName.length()).order(ByteOrder.LITTLE_ENDIAN);
+
+ buffer.putShort((short) 4);
+ buffer.putInt(0x32263F20);
+
+ buffer.putLong(player);
+ buffer.put(getAsciiString(guildName));
+
+ return buffer.flip();
+ }
+}
diff --git a/src/protocol/swg/LoginClusterStatus.java b/src/protocol/swg/LoginClusterStatus.java
index 30028b44..725a8c8b 100644
--- a/src/protocol/swg/LoginClusterStatus.java
+++ b/src/protocol/swg/LoginClusterStatus.java
@@ -26,6 +26,8 @@ import java.util.TimeZone;
import org.apache.mina.core.buffer.IoBuffer;
+import engine.clients.Client;
+
public class LoginClusterStatus extends SWGMessage {
private byte[] servers;
@@ -46,7 +48,7 @@ public class LoginClusterStatus extends SWGMessage {
result.flip();
return result;
}
- public void addServer(int galaxyID, String serverIP, int serverPort, int pingPort, int maxCharacters, int status, int recommended, int population) {
+ public void addServer(int galaxyID, String serverIP, int serverPort, int pingPort, int maxCharacters, int status, int recommended, int population, Client client) {
IoBuffer result = IoBuffer.allocate(39 + serverIP.length()).order(ByteOrder.LITTLE_ENDIAN);
int populationStatus = 0;
@@ -64,6 +66,8 @@ public class LoginClusterStatus extends SWGMessage {
populationStatus = 6;
status = 3;
}
+ if(status == 3 && client.isGM())
+ status = 2;
result.putInt(populationStatus); // 0 = very light, 1 = light, 2 = medium , 3 = heavy, 4 = very heavy, 5 = extremely heavy, 6 = full
result.putInt(maxCharacters);
//result.putInt(0xFFFF8F80); // Distance?
diff --git a/src/protocol/swg/ObjControllerMessage.java b/src/protocol/swg/ObjControllerMessage.java
index e307d7c2..cb1ff04b 100644
--- a/src/protocol/swg/ObjControllerMessage.java
+++ b/src/protocol/swg/ObjControllerMessage.java
@@ -26,6 +26,7 @@ import java.nio.ByteOrder;
import org.apache.mina.core.buffer.IoBuffer;
+
import protocol.swg.objectControllerObjects.CommandEnqueue;
import protocol.swg.objectControllerObjects.DataTransform;
import protocol.swg.objectControllerObjects.DataTransformWithParent;
@@ -52,6 +53,29 @@ public class ObjControllerMessage extends SWGMessage {
public static final int OBJECT_MENU_RESPONSE = 0x0147;
public static final int SHOW_FLY_TEXT = 0x01BD;
public static final int START_TASK = 0x448;
+ public static final int ANIMATION = 0x00F2;
+ public static final int BUFF_BUILDER_CHANGE = 0x025A;
+ public static final int BUFF_BUILDER_END = 0x025B;
+ public static final int BUFF_BUILDER_START = 0x025C;
+ public static final int UI_PLAY_EFFECT = 0x0401;
+ public static final int SHOW_LOOT_BOX = 0x04BC;
+ public static final int IMAGE_DESIGN_START = 0x023A;
+ public static final int IMAGE_DESIGN_CHANGE = 0x0238;
+ public static final int IMAGE_DESIGN_END = 0x0239;
+ public static final int START_CONVERSATION = 0x00DD;
+ public static final int STOP_CONVERSATION = 0x00DE;
+ public static final int CONVERSATION_MESSAGE = 0x00DF;
+ public static final int CONVERSATION_OPTIONS = 0x00E0;
+ public static final int DRAFT_SCHEMATICS = 0x0102;
+ public static final int DRAFT_SLOTS = 0x0103;
+ public static final int CRAFT_EXPERIMENT = 0x0106;
+ public static final int CRAFT_ACKNOWLEDGE = 0x010C;
+ public static final int CRAFT_CUSTOMIZATION = 0x015A;
+ public static final int NEXT_CRAFTING_STAGE_RESULT = 0x01BE;
+ public static final int DRAFT_SLOTS_QUERY_RESPONSE = 0x01BF;
+ public static final int RESOURCE_WEIGHTS = 0x0207;
+ public static final int MISSION_ACCEPT_RESPONSE = 0x00FA;
+ public static final int MISSION_ABORT_RESPONSE = 0x0142;
public ObjControllerMessage() {
@@ -69,13 +93,14 @@ public class ObjControllerMessage extends SWGMessage {
}
public IoBuffer serialize() {
- IoBuffer buffer = IoBuffer.allocate(1024).order(ByteOrder.LITTLE_ENDIAN);
-
+ //IoBuffer buffer = IoBuffer.allocate(1024).order(ByteOrder.LITTLE_ENDIAN); -> java.nio.BufferOverflowException
+ IoBuffer buffer = IoBuffer.allocate(10).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.setAutoExpand(true);
buffer.putShort((short)5);
buffer.putInt(0x80CE5E46);
buffer.putInt(update);
buffer.put(objControllerObject.serialize());
-
+ //System.out.println("OBJMSG: " + StringUtilities.bytesToHex(buffer.flip().array()));
int size = buffer.position();
return IoBuffer.allocate(size).put(buffer.array(), 0, size).flip();
}
diff --git a/src/protocol/swg/ObjectMenuSelect.java b/src/protocol/swg/ObjectMenuSelectMessage.java
similarity index 89%
rename from src/protocol/swg/ObjectMenuSelect.java
rename to src/protocol/swg/ObjectMenuSelectMessage.java
index f3bd2f50..c24d00d2 100644
--- a/src/protocol/swg/ObjectMenuSelect.java
+++ b/src/protocol/swg/ObjectMenuSelectMessage.java
@@ -23,9 +23,9 @@ package protocol.swg;
import org.apache.mina.core.buffer.IoBuffer;
-public class ObjectMenuSelect extends SWGMessage {
+public class ObjectMenuSelectMessage extends SWGMessage {
- private byte selection;
+ private short selection;
private long objectId;
@Override
@@ -34,7 +34,7 @@ public class ObjectMenuSelect extends SWGMessage {
buffer.getShort();
buffer.getInt();
setObjectId(buffer.getLong());
- setSelection(buffer.get());
+ setSelection(buffer.getShort());
}
@@ -44,11 +44,11 @@ public class ObjectMenuSelect extends SWGMessage {
return null;
}
- public byte getSelection() {
+ public short getSelection() {
return selection;
}
- public void setSelection(byte selection) {
+ public void setSelection(short selection) {
this.selection = selection;
}
diff --git a/src/protocol/swg/OkMessage.java b/src/protocol/swg/OkMessage.java
new file mode 100644
index 00000000..a5bc1276
--- /dev/null
+++ b/src/protocol/swg/OkMessage.java
@@ -0,0 +1,29 @@
+package protocol.swg;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import engine.resources.common.StringUtilities;
+
+public class OkMessage extends SWGMessage {
+
+ public OkMessage() {
+
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(6).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.putShort((short) 1);
+ buffer.putInt(0xA16CF9AF);
+ System.out.println(StringUtilities.bytesToHex(buffer.array()));
+ return buffer.flip();
+ }
+
+}
diff --git a/src/protocol/swg/ParametersMessage.java b/src/protocol/swg/ParametersMessage.java
index fbc87a36..0d4abb53 100644
--- a/src/protocol/swg/ParametersMessage.java
+++ b/src/protocol/swg/ParametersMessage.java
@@ -40,7 +40,7 @@ public class ParametersMessage extends SWGMessage {
IoBuffer packet = IoBuffer.allocate(10).order(ByteOrder.LITTLE_ENDIAN);
packet.putShort((short) 2);
- packet.putInt(0x7102B15F);
+ packet.putInt(0x487652DA);
packet.putInt(0x00000384);
return packet.flip();
diff --git a/src/protocol/swg/PlanetTravelPointListRequest.java b/src/protocol/swg/PlanetTravelPointListRequest.java
index 181bd631..fa62c567 100644
--- a/src/protocol/swg/PlanetTravelPointListRequest.java
+++ b/src/protocol/swg/PlanetTravelPointListRequest.java
@@ -21,17 +21,10 @@
******************************************************************************/
package protocol.swg;
-import java.util.List;
-
-import main.NGECore;
-
import org.apache.mina.core.buffer.IoBuffer;
-import engine.resources.scene.Planet;
-
public class PlanetTravelPointListRequest extends SWGMessage{
- private NGECore core;
private long objectId;
private String planet;
diff --git a/src/protocol/swg/PlanetTravelPointListResponse.java b/src/protocol/swg/PlanetTravelPointListResponse.java
index 131551fd..4bd409b9 100644
--- a/src/protocol/swg/PlanetTravelPointListResponse.java
+++ b/src/protocol/swg/PlanetTravelPointListResponse.java
@@ -35,12 +35,10 @@ public class PlanetTravelPointListResponse extends SWGMessage {
private String planetString;
private Vector travelPoints;
- private List planetList;
- public PlanetTravelPointListResponse(String planetString, Vector travelPoints, List planetList) {
+ public PlanetTravelPointListResponse(String planetString, Vector travelPoints) {
this.planetString = planetString;
this.travelPoints = travelPoints;
- this.planetList = planetList;
}
@Override
@@ -50,11 +48,11 @@ public class PlanetTravelPointListResponse extends SWGMessage {
@Override
public IoBuffer serialize() {
- IoBuffer result = IoBuffer.allocate(travelPoints.size() * 2).order(ByteOrder.LITTLE_ENDIAN);
+ IoBuffer result = IoBuffer.allocate(100).order(ByteOrder.LITTLE_ENDIAN);
result.setAutoExpand(true);
- result.putShort((short) 6); //2
- result.putInt(0x4D32541F); //4
+ result.putShort((short) 6);
+ result.putInt(0x4D32541F);
result.put(getAsciiString(planetString));
@@ -81,8 +79,9 @@ public class PlanetTravelPointListResponse extends SWGMessage {
for (TravelPoint point : travelPoints) {
result.put((byte) 1); // isReachable
}
- result.flip();
- return result;
+ int size = result.position();
+ result = IoBuffer.allocate(size).put(result.array(), 0, size);
+ return result.flip();
}
}
diff --git a/src/protocol/swg/PlayClientEffectObjectMessage.java b/src/protocol/swg/PlayClientEffectObjectMessage.java
index 5e9dead4..ad94129f 100644
--- a/src/protocol/swg/PlayClientEffectObjectMessage.java
+++ b/src/protocol/swg/PlayClientEffectObjectMessage.java
@@ -36,7 +36,6 @@ public class PlayClientEffectObjectMessage extends SWGMessage {
this.effectFile = effectFile;
this.objectId = objectId;
this.commandString = commandString;
-
}
@Override
@@ -47,9 +46,18 @@ public class PlayClientEffectObjectMessage extends SWGMessage {
result.putShort((short) 5);
result.putInt(0x8855434A);
result.put(getAsciiString(effectFile));
- result.putShort((short) 0);
- result.putLong(objectId);
- result.put(getAsciiString(commandString));
+
+ if(!effectFile.startsWith("clienteffect/holoemote_"))
+ {
+ result.putShort((short) 0); // Because waverunner is a dweeb
+ result.putLong(objectId);
+ result.put(getAsciiString(commandString));
+ }
+ else
+ {
+ result.put(getAsciiString(commandString));
+ result.putLong(objectId);
+ }
return result.flip();
diff --git a/src/protocol/swg/PlayClientEffectObjectTransformMessage.java b/src/protocol/swg/PlayClientEffectObjectTransformMessage.java
new file mode 100644
index 00000000..e5a0e7d4
--- /dev/null
+++ b/src/protocol/swg/PlayClientEffectObjectTransformMessage.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.mina.core.buffer.SimpleBufferAllocator;
+
+import engine.resources.scene.Point3D;
+import engine.resources.scene.Quaternion;
+
+public class PlayClientEffectObjectTransformMessage extends SWGMessage {
+
+ private long objectId;
+ private String effectFile;
+ private String commandString;
+ private Point3D effectorPosition;
+ private Quaternion effectorOrientation;
+ public SimpleBufferAllocator bufferPool = new SimpleBufferAllocator();
+
+ public PlayClientEffectObjectTransformMessage(String effectFile, long objectId, String commandString, Point3D effectorPosition, Quaternion effectorOrientation) {
+
+ this.effectFile = effectFile;
+ this.objectId = objectId;
+ this.commandString = commandString;
+ this.effectorPosition = effectorPosition;
+ this.effectorOrientation = effectorOrientation;
+ }
+
+ @Override
+ public IoBuffer serialize() {
+
+ IoBuffer result = bufferPool.allocate(100, false).order(ByteOrder.LITTLE_ENDIAN);
+ result.setAutoExpand(true);
+ result.putShort((short) 5);
+ result.putInt(0x4F5E09B6);
+ result.put(getAsciiString(effectFile));
+ result.putFloat(effectorOrientation.w); // qw
+ result.putFloat(effectorOrientation.x); // qx
+ result.putFloat(effectorOrientation.y); // qy
+ result.putFloat(effectorOrientation.z); // qz
+ result.putFloat(effectorPosition.x); // pos.x
+ result.putFloat(effectorPosition.y); // pos.y
+ result.putFloat(effectorPosition.z); // pos.z
+ result.putLong(objectId);
+ result.put(getAsciiString(commandString));
+
+ int size = result.position();
+ result.flip();
+ result = bufferPool.allocate(size, false).put(result.array(), 0, size);
+
+ return IoBuffer.allocate(size).put(result.array(), 0, size).flip();
+ }
+
+ /*
+ 00 09 54 6C 05 00 B6 09-5E 4F 1B 00 61 70 70 65
+ 61 72 61 6E 63 65 2F 70-74 5F 6C 6F 6F 74 5F 64
+ 69 73 63 2E 70 72 74 00-00 00 00 00 00 00 00 00
+ 00 00 00 00 00 80 3F 00-00 00 00 24 F8 AA 3F 00
+ 00 00 00 3B 54 E1 3E 33-00 00 00 06 00 6C 6F 6F
+ 74 4D 65 01 EB 3C
+ */
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
diff --git a/src/protocol/swg/PlayerMoneyResponse.java b/src/protocol/swg/PlayerMoneyResponse.java
new file mode 100644
index 00000000..0438dd02
--- /dev/null
+++ b/src/protocol/swg/PlayerMoneyResponse.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+public class PlayerMoneyResponse extends SWGMessage {
+
+ int cash;
+ int bank;
+
+ public PlayerMoneyResponse(int cash, int bank) {
+ this.cash = cash;
+ this.bank = bank;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(14).order(ByteOrder.LITTLE_ENDIAN);
+
+ buffer.putShort((short) 3);
+ buffer.putInt(0x367E737E);
+
+ buffer.putInt(bank);
+ buffer.putInt(cash);
+
+ buffer.flip();
+ return buffer;
+ }
+
+}
diff --git a/src/protocol/swg/ResourceListForSurveyMessage.java b/src/protocol/swg/ResourceListForSurveyMessage.java
new file mode 100644
index 00000000..e1c9c886
--- /dev/null
+++ b/src/protocol/swg/ResourceListForSurveyMessage.java
@@ -0,0 +1,119 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import java.io.UnsupportedEncodingException;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Vector;
+
+import main.NGECore;
+
+import org.apache.mina.core.buffer.IoBuffer;
+import protocol.swg.SWGMessage;
+import resources.objects.creature.CreatureObject;
+import resources.objects.resource.GalacticResource;
+import resources.objects.tangible.TangibleObject;
+
+public class ResourceListForSurveyMessage extends SWGMessage {
+
+ private TangibleObject tool;
+ private List resourceList;
+
+ public ResourceListForSurveyMessage(TangibleObject tool, List resourceList) {
+ this.tool = tool;
+ this.resourceList = resourceList;
+ }
+
+ public ResourceListForSurveyMessage(NGECore core, TangibleObject tool, CreatureObject surveyor) {
+ this.tool = tool;
+ this.resourceList = new ArrayList();
+ byte generalType = 0;
+ String toolName = tool.getDetailName();
+ if (toolName.equals("survey_tool_mineral"))
+ generalType = (byte) 0;
+ if (toolName.equals("survey_tool_inorganic"))
+ generalType = (byte) 1;
+ if (toolName.equals("survey_tool_organic") || toolName.equals("survey_tool_lumber"))
+ generalType = (byte) 2;
+ if (toolName.equals("survey_tool_gas"))
+ generalType = (byte) 3;
+ if (toolName.equals("survey_tool_moisture"))
+ generalType = (byte) 4;
+ if (toolName.equals("survey_tool_solar"))
+ generalType = (byte) 5;
+ if (toolName.equals("survey_tool_wind"))
+ generalType = (byte) 6;
+ if (toolName.equals("survey_tool_liquid"))
+ generalType = (byte) 7;
+
+ Vector planetVector = core.resourceService.getSpawnedResourcesByPlanetAndType(surveyor.getPlanetId(),generalType);
+
+ resourceList = new ArrayList(planetVector);
+
+ }
+
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ public IoBuffer serialize() {
+ IoBuffer result = IoBuffer.allocate(10).order(ByteOrder.LITTLE_ENDIAN);
+ result.setAutoExpand(true);
+ result.putShort((short)4);
+ result.putInt(0x8A64B1D5);
+ result.putInt(resourceList.size());
+ GalacticResource resourceElement = null;
+ for (int i = 0; i < resourceList.size(); i++) {
+ resourceElement = resourceList.get(i);
+ try {
+ result.putShort((short)resourceElement.getName().length()); // CStringesque length ahead
+ result.put(resourceElement.getName().getBytes("US-ASCII"));
+ result.putLong(resourceElement.getId());
+ result.putShort((short)resourceElement.getFileName().length());
+ result.put(resourceElement.getFileName().getBytes("US-ASCII"));
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ e.getMessage();
+ e.getCause();
+ }
+ }
+ if (resourceElement != null) {
+ try {
+ result.putShort((short)resourceElement.getCategory().length());
+ result.put(resourceElement.getCategory().getBytes("US-ASCII"));
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ } else {
+ result.putShort((short)0);
+ }
+
+ result.putLong(tool.getObjectID());
+
+ int size = result.position();
+ result.flip();
+ tools.CharonPacketUtils.printAnalysis(IoBuffer.allocate(size).put(result.array(), 0, size).flip());
+ return IoBuffer.allocate(size).put(result.array(), 0, size).flip();
+ }
+}
diff --git a/src/protocol/swg/SWGMessageFactory.java b/src/protocol/swg/SWGMessageFactory.java
index fc5bd8c3..640b019e 100644
--- a/src/protocol/swg/SWGMessageFactory.java
+++ b/src/protocol/swg/SWGMessageFactory.java
@@ -24,6 +24,7 @@ package protocol.swg;
import java.nio.ByteBuffer;
import protocol.Message;
+import protocol.swg.chat.ChatInstantMessageToCharacter;
public class SWGMessageFactory {
diff --git a/src/protocol/swg/SceneDestroyObject.java b/src/protocol/swg/SceneDestroyObject.java
index e5fbfd02..2048f614 100644
--- a/src/protocol/swg/SceneDestroyObject.java
+++ b/src/protocol/swg/SceneDestroyObject.java
@@ -45,6 +45,7 @@ public class SceneDestroyObject extends SWGMessage {
result.putInt(0x4D45D504);
result.putLong(objectId);
+ result.put((byte) 0); // unk
return result.flip();
}
}
diff --git a/src/protocol/swg/ServerWeatherMessage.java b/src/protocol/swg/ServerWeatherMessage.java
index dfe21b2d..e8dc0955 100644
--- a/src/protocol/swg/ServerWeatherMessage.java
+++ b/src/protocol/swg/ServerWeatherMessage.java
@@ -45,7 +45,7 @@ public class ServerWeatherMessage extends SWGMessage {
}
public IoBuffer serialize() {
- IoBuffer result = IoBuffer.allocate(26).order(ByteOrder.LITTLE_ENDIAN);;
+ IoBuffer result = IoBuffer.allocate(22).order(ByteOrder.LITTLE_ENDIAN);
result.putShort((short)3);
result.putInt(0x486356EA);
@@ -54,6 +54,6 @@ public class ServerWeatherMessage extends SWGMessage {
result.putFloat(cloudY);
result.putFloat(cloudZ);
- return result;
+ return result.flip();
}
}
diff --git a/src/protocol/swg/SetWaypointColor.java b/src/protocol/swg/SetWaypointColor.java
new file mode 100644
index 00000000..f7a418d9
--- /dev/null
+++ b/src/protocol/swg/SetWaypointColor.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+public class SetWaypointColor extends SWGMessage {
+
+ private long objectId;
+ private String color;
+
+ public SetWaypointColor() {
+
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ //data.getShort();
+ //data.getInt();
+ objectId = data.getLong();
+ short size = data.getShort();
+ try {
+ color = new String(ByteBuffer.allocate(size).put(data.array(), data.position(), size).array(), "US-ASCII");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public IoBuffer serialize() {
+
+ return null;
+ }
+
+ public long getObjectId() {
+ return objectId;
+ }
+
+ public void setObjectId(long objectId) {
+ this.objectId = objectId;
+ }
+
+ public String getColor() {
+ return color;
+ }
+
+ public void setColor(String color) {
+ this.color = color;
+ }
+
+}
diff --git a/src/protocol/swg/ShowBackpack.java b/src/protocol/swg/ShowBackpack.java
new file mode 100644
index 00000000..04ba5b3b
--- /dev/null
+++ b/src/protocol/swg/ShowBackpack.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+public class ShowBackpack extends SWGMessage {
+
+ private long objectId;
+ private boolean showBackpack;
+
+ public ShowBackpack() { }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ setObjectId(data.getLong());
+ setShowBackpack((data.get() == 1) ? true : false);
+ }
+
+ public long getObjectId() {
+ return objectId;
+ }
+
+ public boolean isShowBackpack() {
+ return showBackpack;
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ return null;
+ }
+
+ public void setObjectId(long objectId) {
+ this.objectId = objectId;
+ }
+
+ public void setShowBackpack(boolean showBackpack) {
+ this.showBackpack = showBackpack;
+ }
+
+}
diff --git a/src/protocol/swg/ShowHelmet.java b/src/protocol/swg/ShowHelmet.java
new file mode 100644
index 00000000..4c5c2ecb
--- /dev/null
+++ b/src/protocol/swg/ShowHelmet.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+public class ShowHelmet extends SWGMessage {
+
+ private long objectId;
+ private boolean showHelmet;
+
+ public ShowHelmet() { }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ setObjectId(data.getLong());
+ setShowHelmet((data.get() == 1) ? true : false);
+ }
+
+ public long getObjectId() {
+ return objectId;
+ }
+
+ public boolean isShowHelmet() {
+ return showHelmet;
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ return null;
+ }
+
+ public void setObjectId(long objectId) {
+ this.objectId = objectId;
+ }
+
+ public void setShowHelmet(boolean showHelmet) {
+ this.showHelmet = showHelmet;
+ }
+
+}
diff --git a/src/protocol/swg/SurveyMapUpdateMessage.java b/src/protocol/swg/SurveyMapUpdateMessage.java
new file mode 100644
index 00000000..21a2728f
--- /dev/null
+++ b/src/protocol/swg/SurveyMapUpdateMessage.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import java.nio.ByteOrder;
+import java.util.Vector;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+import resources.objects.resource.ResourceConcentration;
+
+public class SurveyMapUpdateMessage extends SWGMessage {
+
+ private IoBuffer buffer;
+ private float highestConcentration;
+ float highestX;
+ float highestZ;
+
+ public SurveyMapUpdateMessage(Vector concentrationMap, int pointsAmount) {
+ //this.buffer = buffer;
+
+ this.buffer = IoBuffer.allocate(10).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.setAutoExpand(true);
+ buffer.putInt(pointsAmount);
+ highestX = 0;
+ highestZ = 0;
+ highestConcentration = 0;
+ for (int i = 0; i < pointsAmount; i++) {
+ ResourceConcentration cursorConcentration = concentrationMap.get(i);
+ float concentration = 0.01f*cursorConcentration.getConcentration(); // percentage
+ float markerX = cursorConcentration.getCoordsX();
+ float markerZ = cursorConcentration.getCoordsZ();
+// System.out.println("markerX " + markerX);
+// System.out.println("markerZ " + markerZ);
+// System.out.println("concentration " + concentration);
+ buffer.putFloat(markerX);
+ buffer.putFloat(0);
+ buffer.putFloat(markerZ);
+ buffer.putFloat(concentration);
+ if (highestConcentration
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+public class UnknownAbilityPacket extends SWGMessage {
+
+ private String ability;
+
+ public UnknownAbilityPacket(String ability) {
+ this.ability = ability;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ // TODO Auto-generated method stub
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(8 + ability.length()).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.putShort((short) 2);
+ buffer.putInt(0xE67E3875);
+ buffer.put(getAsciiString(ability));
+ return buffer.flip();
+ }
+
+}
diff --git a/src/protocol/swg/UpdateCellPermissionMessage.java b/src/protocol/swg/UpdateCellPermissionMessage.java
index fe35f240..943eb532 100644
--- a/src/protocol/swg/UpdateCellPermissionMessage.java
+++ b/src/protocol/swg/UpdateCellPermissionMessage.java
@@ -42,13 +42,13 @@ public class UpdateCellPermissionMessage extends SWGMessage {
}
public IoBuffer serialize() {
- IoBuffer result = IoBuffer.allocate(128).order(ByteOrder.LITTLE_ENDIAN);
+ IoBuffer result = IoBuffer.allocate(15).order(ByteOrder.LITTLE_ENDIAN);
result.putShort((short)3);
result.putInt(0xF612499C);
result.put(permission);
result.putLong(cellId);
- return result;
+ return result.flip();
}
}
diff --git a/src/protocol/swg/auctionManagerClientListener/AcceptAuctionResponseMessage.java b/src/protocol/swg/auctionManagerClientListener/AcceptAuctionResponseMessage.java
new file mode 100644
index 00000000..49aae248
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/AcceptAuctionResponseMessage.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class AcceptAuctionResponseMessage extends SWGMessage {
+
+ private long itemId;
+ private int error;
+
+ public AcceptAuctionResponseMessage(long itemId, int error) {
+ this.itemId = itemId;
+ this.error = error;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer result = IoBuffer.allocate(18).order(ByteOrder.LITTLE_ENDIAN);
+ result.putShort((short) 3);
+ result.putInt(0xC58A446E);
+ result.putLong(itemId);
+ result.putInt(error);
+ return result.flip();
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/AuctionItemDescriptionMessage.java b/src/protocol/swg/auctionManagerClientListener/AuctionItemDescriptionMessage.java
new file mode 100644
index 00000000..bdb7e95e
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/AuctionItemDescriptionMessage.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class AuctionItemDescriptionMessage extends SWGMessage {
+
+ private long itemId;
+ private String description;
+
+ public AuctionItemDescriptionMessage(long itemId, String description) {
+ this.itemId = itemId;
+ this.description = description;
+ }
+
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer result = IoBuffer.allocate(26 + (description.length() * 2)).order(ByteOrder.LITTLE_ENDIAN);
+ result.putShort((short) 2);
+ result.putInt(0xFE0E644B);
+ result.putLong(itemId);
+ result.put(getUnicodeString(description));
+ result.putInt(0);
+ result.putInt(0);
+ return result.flip();
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/AuctionQueryHeadersMessage.java b/src/protocol/swg/auctionManagerClientListener/AuctionQueryHeadersMessage.java
new file mode 100644
index 00000000..b92f96c3
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/AuctionQueryHeadersMessage.java
@@ -0,0 +1,185 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class AuctionQueryHeadersMessage extends SWGMessage {
+
+ private int range;
+ private int counter;
+ private int screen;
+ private int category;
+ private int itemTypeCRC;
+ private String searchString;
+ private int unkInt;
+ private int minPrice;
+ private int maxPrice;
+ private byte includeEntranceFee;
+ private long vendorId;
+ private byte vendorFlag;
+ private short offset;
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ data.skip(6);
+ setRange(data.getInt());
+ setCounter(data.getInt());
+ setScreen(data.getInt());
+ setCategory(data.getInt());
+ setItemTypeCRC(data.getInt());
+ data.get(); // unk
+ int size = data.getInt();
+ try {
+ setSearchString(new String(ByteBuffer.allocate(size * 2).put(data.array(), data.position(), size * 2).array(), "UTF-16LE"));
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ data.position(data.position() + size * 2);
+
+ setUnkInt(data.getInt());
+ setMinPrice(data.getInt());
+ setMaxPrice(data.getInt());
+ setIncludeEntranceFee(data.get());
+ data.skip(5); // unk
+ setVendorId(data.getLong());
+ setVendorFlag(data.get());
+ setOffset(data.getShort());
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public int getRange() {
+ return range;
+ }
+
+ public void setRange(int range) {
+ this.range = range;
+ }
+
+ public int getCounter() {
+ return counter;
+ }
+
+ public void setCounter(int counter) {
+ this.counter = counter;
+ }
+
+ public int getScreen() {
+ return screen;
+ }
+
+ public void setScreen(int screen) {
+ this.screen = screen;
+ }
+
+ public int getCategory() {
+ return category;
+ }
+
+ public void setCategory(int category) {
+ this.category = category;
+ }
+
+ public int getItemTypeCRC() {
+ return itemTypeCRC;
+ }
+
+ public void setItemTypeCRC(int itemTypeCRC) {
+ this.itemTypeCRC = itemTypeCRC;
+ }
+
+ public String getSearchString() {
+ return searchString;
+ }
+
+ public void setSearchString(String searchString) {
+ this.searchString = searchString;
+ }
+
+ public int getUnkInt() {
+ return unkInt;
+ }
+
+ public void setUnkInt(int unkInt) {
+ this.unkInt = unkInt;
+ }
+
+ public int getMinPrice() {
+ return minPrice;
+ }
+
+ public void setMinPrice(int minPrice) {
+ this.minPrice = minPrice;
+ }
+
+ public int getMaxPrice() {
+ return maxPrice;
+ }
+
+ public void setMaxPrice(int maxPrice) {
+ this.maxPrice = maxPrice;
+ }
+
+ public byte getIncludeEntranceFee() {
+ return includeEntranceFee;
+ }
+
+ public void setIncludeEntranceFee(byte includeEntranceFee) {
+ this.includeEntranceFee = includeEntranceFee;
+ }
+
+ public long getVendorId() {
+ return vendorId;
+ }
+
+ public void setVendorId(long vendorId) {
+ this.vendorId = vendorId;
+ }
+
+ public byte getVendorFlag() {
+ return vendorFlag;
+ }
+
+ public void setVendorFlag(byte vendorFlag) {
+ this.vendorFlag = vendorFlag;
+ }
+
+ public short getOffset() {
+ return offset;
+ }
+
+ public void setOffset(short offset) {
+ this.offset = offset;
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/AuctionQueryHeadersResponseMessage.java b/src/protocol/swg/auctionManagerClientListener/AuctionQueryHeadersResponseMessage.java
new file mode 100644
index 00000000..a6327d7a
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/AuctionQueryHeadersResponseMessage.java
@@ -0,0 +1,198 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import java.nio.ByteOrder;
+import java.util.LinkedHashSet;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+import services.bazaar.AuctionItem;
+
+public class AuctionQueryHeadersResponseMessage extends SWGMessage {
+
+ private int screen;
+ private int counter;
+ private LinkedHashSet locationList = new LinkedHashSet();
+ private LinkedHashSet itemList = new LinkedHashSet();
+ private long playerId;
+ private short offset;
+ private boolean continues;
+
+ public AuctionQueryHeadersResponseMessage(long playerId, int screen, int counter, short offset, boolean continues) {
+ this.playerId = playerId;
+ this.screen = screen;
+ this.counter = counter;
+ this.offset = offset;
+ this.continues = continues;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void addItem(AuctionItem item) {
+ locationList.add(item.getVuid());
+ locationList.add(item.getOwnerName());
+
+ if(item.isAuction() && item.getStatus() == AuctionItem.FORSALE)
+ locationList.add(item.getBidderName());
+ else
+ locationList.add("");
+
+ itemList.add(item);
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ final IoBuffer result = IoBuffer.allocate(100).order(ByteOrder.LITTLE_ENDIAN);
+ result.setAutoExpand(true);
+
+ result.putShort((short) 8);
+ result.putInt(0xFA500E52);
+ result.putInt(counter);
+ result.putInt(screen);
+
+ result.putInt(locationList.size());
+
+ for(String str : locationList) {
+ result.put(getAsciiString(str));
+ }
+
+ result.putInt(itemList.size());
+
+ for(AuctionItem item : itemList) {
+ result.put(getUnicodeString(item.getItemName()));
+ //System.out.println(item.getItemName());
+ }
+
+ result.putInt(itemList.size());
+
+ int i = 0;
+ for(AuctionItem item : itemList) {
+
+ result.putLong(item.getObjectId());
+ result.put((byte) i);
+ result.putInt(item.getPrice());
+ result.putInt((int) ((item.getExpireTime() - System.currentTimeMillis()) / 1000));
+ result.putInt(item.getPrice()); // if != price then auction instead of instant sale
+ //result.putInt(0);
+ result.putShort((short) getStringIndex(item.getVuid()));
+ result.putLong(item.getOwnerId());
+ result.putShort((short) getStringIndex(item.getOwnerName()));
+ /*result.putInt(0);
+ result.put((byte) 0);
+ result.putShort((short) getStringIndex(item.getOwnerName()));
+ result.put((byte) 0);*/
+ result.putLong(0);
+ result.putInt(0); // unk seen as 2 mostly, doesnt seem to have any effect
+ result.putInt(0);
+ result.putShort((short) 0);
+ result.putInt(item.getItemType()); // gameObjectType/category bitmask
+
+ result.putInt(0);
+ int options = 0;
+
+ if(item.getOwnerId() == playerId && (item.getStatus() == AuctionItem.OFFERED || item.getStatus() == AuctionItem.FORSALE))
+ options |= 0x800;
+
+ result.putInt(item.getAuctionOptions() | options);
+ result.putInt(0);
+
+
+ /*result.put((byte) 0);
+ result.putInt(CRC.StringtoCRC(item.getItem().getTemplate()));
+ result.putShort((short) 0);
+ result.put((byte) 0);
+ result.put((byte) 1);
+ result.putInt(0);
+ result.putInt(0);
+ result.put((byte) 0);
+ result.putInt(2);
+ result.putInt(0);
+ result.putShort((short) 0);
+ result.putInt(item.getItemType());
+ result.putInt(0);
+ result.putInt(0);
+ result.putInt(0);*/
+
+/*
+ result.put((byte) (item.isAuction() ? 0 : 1));
+ result.putShort((short) getStringIndex(item.getVuid()));
+ result.putLong(item.getOwnerId());
+ result.putShort((short) getStringIndex(item.getOwnerName()));
+
+ if(item.isAuction() && item.getStatus() == AuctionItem.FORSALE) {
+ result.putLong(item.getBuyerId());
+ result.putShort((short) getStringIndex(item.getBidderName()));
+ } else {
+ result.putLong(0);
+ result.putShort((short) getStringIndex(""));
+ }
+
+ result.putInt(item.getProxyBid());
+ result.putInt(item.getPrice());
+ result.putInt(item.getItemType());
+
+ int options = 0;
+
+ if(item.getOwnerId() == playerId && (item.getStatus() == AuctionItem.OFFERED || item.getStatus() == AuctionItem.FORSALE))
+ options |= 0x800;
+
+ result.putInt(item.getAuctionOptions() | options);
+ result.putInt(0);
+ */
+ i++;
+
+ }
+
+ result.putShort(offset);
+
+ if(continues)
+ result.put((byte) 1);
+ else
+ result.put((byte) 0);
+
+ int size = result.position();
+ IoBuffer result2 = IoBuffer.allocate(size).put(result.array(), 0, size);
+
+ return result2.flip();
+ }
+
+ private int getStringIndex(String str) {
+ int i = 0;
+ for(String string : locationList) {
+ if(str.equals(string))
+ return i;
+ i++;
+ }
+ return i;
+ }
+
+ public void setContinues(boolean continues) {
+ this.continues = continues;
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/BidAuctionMessage.java b/src/protocol/swg/auctionManagerClientListener/BidAuctionMessage.java
new file mode 100644
index 00000000..b065b56e
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/BidAuctionMessage.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class BidAuctionMessage extends SWGMessage {
+
+ private long auctionId;
+ private long vendorId;
+ private int myPrice;
+ private int proxyPrice;
+
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ data.skip(6);
+ setAuctionId(data.getLong());
+ setVendorId(data.getLong());
+ setMyPrice(data.getInt());
+ setProxyPrice(data.getInt());
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public long getAuctionId() {
+ return auctionId;
+ }
+
+ public void setAuctionId(long auctionId) {
+ this.auctionId = auctionId;
+ }
+
+ public int getMyPrice() {
+ return myPrice;
+ }
+
+ public void setMyPrice(int myPrice) {
+ this.myPrice = myPrice;
+ }
+
+ public int getProxyPrice() {
+ return proxyPrice;
+ }
+
+ public void setProxyPrice(int proxyPrice) {
+ this.proxyPrice = proxyPrice;
+ }
+
+ public long getVendorId() {
+ return vendorId;
+ }
+
+ public void setVendorId(long vendorId) {
+ this.vendorId = vendorId;
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/BidAuctionResponseMessage.java b/src/protocol/swg/auctionManagerClientListener/BidAuctionResponseMessage.java
new file mode 100644
index 00000000..06eff2f5
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/BidAuctionResponseMessage.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class BidAuctionResponseMessage extends SWGMessage {
+
+ private long objectId;
+ private int status;
+
+ public static final int SUCCESS = 0;
+ public static final int INVALIDAUCTIONER = 1;
+ public static final int INVALIDITEM = 2;
+ public static final int INVALIDPRICE = 4;
+ public static final int NOTENOUGHCREDITS = 9;
+ public static final int PURCHASEFAILED = 10;
+ public static final int PURCHASEREJECTED = 11;
+ public static final int PRICETOOHIGH = 13;
+ public static final int PRICEOVERFLOW = 14;
+
+ public BidAuctionResponseMessage(long objectId, int status) {
+ this.objectId = objectId;
+ this.status = status;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer result = IoBuffer.allocate(18).order(ByteOrder.LITTLE_ENDIAN);
+ result.putShort((short) 3);
+ result.putInt(0x8FCBEF4A);
+ result.putLong(objectId);
+ result.putInt(status);
+ return result.flip();
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
+
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/CancelLiveAuctionMessage.java b/src/protocol/swg/auctionManagerClientListener/CancelLiveAuctionMessage.java
new file mode 100644
index 00000000..cc3705a1
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/CancelLiveAuctionMessage.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class CancelLiveAuctionMessage extends SWGMessage {
+
+ private long objectId;
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ data.skip(6);
+ setObjectId(data.getLong());
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public long getObjectId() {
+ return objectId;
+ }
+
+ public void setObjectId(long objectId) {
+ this.objectId = objectId;
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/CancelLiveAuctionResponseMessage.java b/src/protocol/swg/auctionManagerClientListener/CancelLiveAuctionResponseMessage.java
new file mode 100644
index 00000000..55e1ce02
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/CancelLiveAuctionResponseMessage.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class CancelLiveAuctionResponseMessage extends SWGMessage {
+
+ public static final int SUCCESS = 0;
+ public static final int NOTALLOWED = 1;
+ public static final int INVALIDITEM = 2;
+ public static final int NOTOWNER = 8;
+ public static final int ALREADYCOMPLETED = 15;
+ private long itemId;
+ private int status;
+
+ public CancelLiveAuctionResponseMessage(long itemId, int status) {
+ this.itemId = itemId;
+ this.status = status;
+ }
+
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer result = IoBuffer.allocate(19).order(ByteOrder.LITTLE_ENDIAN);
+ result.putShort((short) 4);
+ result.putInt(0x7DA2246C);
+ result.putLong(itemId);
+ result.putInt(status);
+ result.put((byte) 0); // unk
+ return result.flip();
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
+
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/CommoditiesItemTypeListResponse.java b/src/protocol/swg/auctionManagerClientListener/CommoditiesItemTypeListResponse.java
new file mode 100644
index 00000000..a49dfa93
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/CommoditiesItemTypeListResponse.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import main.NGECore;
+
+import org.apache.mina.core.buffer.IoBuffer;
+import org.apache.mina.core.buffer.SimpleBufferAllocator;
+
+import protocol.swg.SWGMessage;
+import services.bazaar.AuctionItem;
+
+public class CommoditiesItemTypeListResponse extends SWGMessage {
+
+ private Map> itemList = new HashMap>();
+ private static SimpleBufferAllocator bufferPool = new SimpleBufferAllocator();
+
+ public void addItem(AuctionItem item) {
+ if(itemList.get(item.getItemType()) == null)
+ itemList.put(item.getItemType(), new ArrayList());
+ itemList.get(item.getItemType()).add(item);
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ // TODO Auto-generated method stub
+
+ }
+ /**
+ * Struct of category lists:
+ * int numberofcategories
+ *
+ * int category
+ * number of items in category
+ *
+ * int server crc (w/o shared_)
+ * int category
+ * astring stf filename
+ * int spacer
+ * astring stf name
+ *
+ */
+
+ @Override
+ public IoBuffer serialize() {
+ String galaxy = NGECore.getInstance().getGalaxyName();
+ IoBuffer result = bufferPool.allocate(14 + galaxy.length(), false).order(ByteOrder.LITTLE_ENDIAN);
+ result.setAutoExpand(true);
+ result.putShort((short) 2);
+ result.putInt(0xD4E937FC);
+ result.put(getAsciiString(galaxy + "." + Integer.toString(itemList.size())));
+ result.putInt(itemList.size());
+
+ for(Entry> e : itemList.entrySet()) {
+ result.putInt(e.getKey());
+ result.putInt(e.getValue().size());
+ for(AuctionItem item : e.getValue()) {
+ result.putInt(item.getItemTypeCRC());
+ result.putInt(item.getItemType());
+ result.put(item.getItem().getObjectName().getBytes());
+ }
+ }
+
+ int size = result.position();
+ IoBuffer result2 = IoBuffer.allocate(size).put(result.array(), 0, size);
+
+ return result2.flip();
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/CommoditiesResourceTypeListResponse.java b/src/protocol/swg/auctionManagerClientListener/CommoditiesResourceTypeListResponse.java
new file mode 100644
index 00000000..f898ade4
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/CommoditiesResourceTypeListResponse.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import java.nio.ByteOrder;
+import java.util.Vector;
+
+import main.NGECore;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class CommoditiesResourceTypeListResponse extends SWGMessage {
+
+ private Vector resNames;
+
+ public CommoditiesResourceTypeListResponse(Vector resNames) {
+ this.resNames = resNames;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ String galaxyName = NGECore.getInstance().getGalaxyName();
+ final IoBuffer result = IoBuffer.allocate(100).order(ByteOrder.LITTLE_ENDIAN);
+ result.setAutoExpand(true);
+
+ result.putShort((short) 2);
+ result.putInt(0x5EDD19CB);
+
+ result.put(getAsciiString(galaxyName + "." + String.valueOf(resNames.size())));
+ result.putInt(479);
+ result.putLong(0);
+
+ // wrong struct, TODO: research
+ resNames.forEach(s -> result.put(getAsciiString(s)));
+
+ int size = result.position();
+ IoBuffer result2 = IoBuffer.allocate(size).put(result.array(), 0, size);
+
+ return result2.flip();
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/CreateAuctionMessage.java b/src/protocol/swg/auctionManagerClientListener/CreateAuctionMessage.java
new file mode 100644
index 00000000..33a57339
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/CreateAuctionMessage.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class CreateAuctionMessage extends SWGMessage {
+
+ private long objectId;
+ private long vendorId;
+ private int price;
+ private int duration;
+ private String description;
+ private byte premium;
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ data.skip(6);
+ setObjectId(data.getLong());
+ int size = data.getInt();
+ try {
+ setDescription(new String(ByteBuffer.allocate(size * 2).put(data.array(), data.position(), size * 2).array(), "UTF-16LE"));
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ data.position(data.position() + size * 2);
+
+ setVendorId(data.getLong());
+ setPrice(data.getInt());
+ setDuration(data.getInt()); // in minutes
+ setPremium(data.get());
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public long getObjectId() {
+ return objectId;
+ }
+
+ public void setObjectId(long objectId) {
+ this.objectId = objectId;
+ }
+
+ public long getVendorId() {
+ return vendorId;
+ }
+
+ public void setVendorId(long vendorId) {
+ this.vendorId = vendorId;
+ }
+
+ public int getPrice() {
+ return price;
+ }
+
+ public void setPrice(int price) {
+ this.price = price;
+ }
+
+ public int getDuration() {
+ return duration;
+ }
+
+ public void setDuration(int duration) {
+ this.duration = duration;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public boolean getPremium() {
+ if(premium == 1)
+ return true;
+ return false;
+ }
+
+ public void setPremium(byte premium) {
+ this.premium = premium;
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/CreateAuctionResponseMessage.java b/src/protocol/swg/auctionManagerClientListener/CreateAuctionResponseMessage.java
new file mode 100644
index 00000000..8a067dff
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/CreateAuctionResponseMessage.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class CreateAuctionResponseMessage extends SWGMessage {
+
+ public static final int SUCCESS = 0;
+ public static final int INVALIDAUCTIONER = 1;
+ public static final int INVALIDITEM = 2;
+ public static final int BADVENDOR = 3;
+ public static final int INVALIDPRICE = 4;
+ public static final int INVALIDDURATION = 5;
+ public static final int ALREADYFORSALE = 6;
+ public static final int UNKERROR = 6;
+ public static final int DONTOWNITEM = 8;
+ public static final int NOTENOUGHCREDITS = 9;
+ public static final int TOOMANYITEMS = 13;
+ public static final int PRICETOOHIGH = 14;
+ public static final int CANTSELLTRADINGITEM = 19;
+ public static final int VENDORFULL = 25;
+
+ private long objectId;
+ private int status;
+
+ public CreateAuctionResponseMessage(long objectId, int status) {
+ this.objectId = objectId;
+ this.status = status;
+ }
+
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer result = IoBuffer.allocate(20).order(ByteOrder.LITTLE_ENDIAN);
+ result.putShort((short) 4);
+ result.putInt(0x0E61CC92);
+ result.putLong(objectId);
+ result.putInt(status);
+ result.putShort((short) 0);
+ return result.flip();
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/CreateImmediateAuctionMessage.java b/src/protocol/swg/auctionManagerClientListener/CreateImmediateAuctionMessage.java
new file mode 100644
index 00000000..0546f41e
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/CreateImmediateAuctionMessage.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class CreateImmediateAuctionMessage extends SWGMessage {
+
+ private long objectId;
+ private long vendorId;
+ private int price;
+ private int duration;
+ private String description;
+ private byte premium;
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ data.skip(6);
+ setObjectId(data.getLong());
+ setVendorId(data.getLong());
+ setPrice(data.getInt());
+ setDuration(data.getInt()); // in minutes
+ int size = data.getInt();
+ try {
+ setDescription(new String(ByteBuffer.allocate(size * 2).put(data.array(), data.position(), size * 2).array(), "UTF-16LE"));
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ data.position(data.position() + size * 2);
+ setPremium(data.get());
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public long getObjectId() {
+ return objectId;
+ }
+
+ public void setObjectId(long objectId) {
+ this.objectId = objectId;
+ }
+
+ public long getVendorId() {
+ return vendorId;
+ }
+
+ public void setVendorId(long vendorId) {
+ this.vendorId = vendorId;
+ }
+
+ public int getPrice() {
+ return price;
+ }
+
+ public void setPrice(int price) {
+ this.price = price;
+ }
+
+ public int getDuration() {
+ return duration;
+ }
+
+ public void setDuration(int duration) {
+ this.duration = duration;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public boolean getPremium() {
+ if(premium == 1)
+ return true;
+ return false;
+ }
+
+ public void setPremium(byte premium) {
+ this.premium = premium;
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/GetAuctionDetails.java b/src/protocol/swg/auctionManagerClientListener/GetAuctionDetails.java
new file mode 100644
index 00000000..946c0a06
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/GetAuctionDetails.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class GetAuctionDetails extends SWGMessage {
+
+ private long objectId;
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ data.skip(6);
+ setObjectId(data.getLong());
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public long getObjectId() {
+ return objectId;
+ }
+
+ public void setObjectId(long objectId) {
+ this.objectId = objectId;
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/GetAuctionDetailsResponse.java b/src/protocol/swg/auctionManagerClientListener/GetAuctionDetailsResponse.java
new file mode 100644
index 00000000..e4aaac6c
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/GetAuctionDetailsResponse.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+import resources.objects.tangible.TangibleObject;
+import services.bazaar.AuctionItem;
+
+public class GetAuctionDetailsResponse extends SWGMessage {
+
+ private AuctionItem target;
+
+ public GetAuctionDetailsResponse(AuctionItem target) {
+ this.target = target;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ final IoBuffer result = IoBuffer.allocate(100).order(ByteOrder.LITTLE_ENDIAN);
+ result.setAutoExpand(true);
+
+ result.putShort((short) 2);
+ result.putInt(0xFE0E644B);
+ result.putLong(target.getObjectId());
+ result.put(getUnicodeString(target.getItemDescription()));
+ result.putInt(target.getItem().getAttributes().size());
+ target.getItem().getAttributes().forEach((key, value) -> {
+ result.put(getAsciiString(key));
+ result.put(getUnicodeString(value));
+ });
+ result.put(getAsciiString(target.getItem().getTemplate()));
+ if(((TangibleObject) target.getItem()).getCustomization() != null) {
+ result.putShort((short) ((TangibleObject) target.getItem()).getCustomization().length);
+ result.put(((TangibleObject) target.getItem()).getCustomization());
+ } else
+ result.putShort((short) 0);
+
+
+ int size = result.position();
+ IoBuffer result2 = IoBuffer.allocate(size).put(result.array(), 0, size);
+
+ return result2.flip();
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/IsVendorOwnerMessage.java b/src/protocol/swg/auctionManagerClientListener/IsVendorOwnerMessage.java
new file mode 100644
index 00000000..35b3b498
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/IsVendorOwnerMessage.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class IsVendorOwnerMessage extends SWGMessage {
+
+ private long terminalId;
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ data.skip(6);
+ setTerminalId(data.getLong());
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public long getTerminalId() {
+ return terminalId;
+ }
+
+ public void setTerminalId(long terminalId) {
+ this.terminalId = terminalId;
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/IsVendorOwnerResponseMessage.java b/src/protocol/swg/auctionManagerClientListener/IsVendorOwnerResponseMessage.java
new file mode 100644
index 00000000..cfc73637
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/IsVendorOwnerResponseMessage.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class IsVendorOwnerResponseMessage extends SWGMessage {
+
+ private int permission;
+ private int errorCode;
+ private long terminalId;
+ private String terminalString;
+
+ public IsVendorOwnerResponseMessage(int permission, int errorCode, long terminalId, String terminalString) {
+ this.permission = permission;
+ this.errorCode = errorCode;
+ this.terminalId = terminalId;
+ this.terminalString = terminalString;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer result = IoBuffer.allocate(26 + terminalString.length()).order(ByteOrder.LITTLE_ENDIAN);
+ result.putShort((short) 6);
+ result.putInt(0xCE04173E);
+ result.putInt(permission);
+ result.putInt(errorCode);
+ result.putLong(terminalId);
+ result.put(getAsciiString(terminalString));
+ result.putShort((short) 0x64); // unk
+ return result.flip();
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/RetrieveAuctionItemMessage.java b/src/protocol/swg/auctionManagerClientListener/RetrieveAuctionItemMessage.java
new file mode 100644
index 00000000..af2f0c0c
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/RetrieveAuctionItemMessage.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class RetrieveAuctionItemMessage extends SWGMessage {
+
+ private long objectId;
+ private long vendorId;
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ data.skip(6);
+ setObjectId(data.getLong());
+ setVendorId(data.getLong());
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public long getObjectId() {
+ return objectId;
+ }
+
+ public void setObjectId(long objectId) {
+ this.objectId = objectId;
+ }
+
+ public long getVendorId() {
+ return vendorId;
+ }
+
+ public void setVendorId(long vendorId) {
+ this.vendorId = vendorId;
+ }
+
+}
diff --git a/src/protocol/swg/auctionManagerClientListener/RetrieveAuctionItemResponseMessage.java b/src/protocol/swg/auctionManagerClientListener/RetrieveAuctionItemResponseMessage.java
new file mode 100644
index 00000000..ad9093da
--- /dev/null
+++ b/src/protocol/swg/auctionManagerClientListener/RetrieveAuctionItemResponseMessage.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.auctionManagerClientListener;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class RetrieveAuctionItemResponseMessage extends SWGMessage {
+
+ private long objectId;
+ private int status;
+
+ public static final int SUCCESS = 0;
+ public static final int NOTALLOWED = 1;
+ public static final int FULLINVENTORY = 12;
+ public static final int TOOFAR = 0x100;
+ public static final int DONTRETRIEVE = 0x200;
+
+ public RetrieveAuctionItemResponseMessage(long objectId, int status) {
+ this.objectId = objectId;
+ this.status = status;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer result = IoBuffer.allocate(18).order(ByteOrder.LITTLE_ENDIAN);
+ result.putShort((short) 3);
+ result.putInt(0x9499EF8C);
+ result.putLong(objectId);
+ result.putInt(status);
+ return result.flip();
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
+
+
+}
diff --git a/src/protocol/swg/chat/ChatCreateRoom.java b/src/protocol/swg/chat/ChatCreateRoom.java
new file mode 100644
index 00000000..841c1614
--- /dev/null
+++ b/src/protocol/swg/chat/ChatCreateRoom.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+
+public class ChatCreateRoom extends SWGMessage {
+
+ private String address, title;
+ private boolean privacy, moderatorOnly;
+ private int request;
+
+ public ChatCreateRoom() { }
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ this.privacy = (boolean) ((data.get() == 1) ? false : true);
+ this.moderatorOnly = (boolean) ((data.get() == 1) ? true : false);
+ data.getShort(); // unk
+ this.address = getAsciiString(data);
+ this.title = getAsciiString(data);
+ this.request = data.getInt();
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ return null;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+ public String getTitle() {
+ return title;
+ }
+ public boolean isPrivacy() {
+ return privacy;
+ }
+ public boolean isModeratorOnly() {
+ return moderatorOnly;
+ }
+
+ public int getRequest() {
+ return request;
+ }
+
+}
diff --git a/src/protocol/swg/ChatDeletePersistentMessage.java b/src/protocol/swg/chat/ChatDeletePersistentMessage.java
similarity index 96%
rename from src/protocol/swg/ChatDeletePersistentMessage.java
rename to src/protocol/swg/chat/ChatDeletePersistentMessage.java
index 1e812255..3f0d1b70 100644
--- a/src/protocol/swg/ChatDeletePersistentMessage.java
+++ b/src/protocol/swg/chat/ChatDeletePersistentMessage.java
@@ -19,10 +19,12 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package protocol.swg;
+package protocol.swg.chat;
import org.apache.mina.core.buffer.IoBuffer;
+import protocol.swg.SWGMessage;
+
public class ChatDeletePersistentMessage extends SWGMessage {
diff --git a/src/protocol/swg/chat/ChatEnterRoomById.java b/src/protocol/swg/chat/ChatEnterRoomById.java
new file mode 100644
index 00000000..2e2ec8e5
--- /dev/null
+++ b/src/protocol/swg/chat/ChatEnterRoomById.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class ChatEnterRoomById extends SWGMessage {
+
+ private int roomId;
+ private int requestId;
+ private String roomName;
+
+ public ChatEnterRoomById() { }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ data.getShort();
+ data.getInt();
+
+ this.requestId = data.getInt();
+ this.roomId = data.getInt();
+ this.roomName = getAsciiString(data);
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ return null;
+ }
+
+ public int getRequestId() {
+ return requestId;
+ }
+
+ public int getRoomId() {
+ return roomId;
+ }
+
+ public String getRoomname() {
+ return roomName;
+ }
+}
diff --git a/src/protocol/swg/ChatFriendsListUpdate.java b/src/protocol/swg/chat/ChatFriendsListUpdate.java
similarity index 75%
rename from src/protocol/swg/ChatFriendsListUpdate.java
rename to src/protocol/swg/chat/ChatFriendsListUpdate.java
index b804c17b..f3a17a34 100644
--- a/src/protocol/swg/ChatFriendsListUpdate.java
+++ b/src/protocol/swg/chat/ChatFriendsListUpdate.java
@@ -1,4 +1,4 @@
-package protocol.swg;
+package protocol.swg.chat;
import java.nio.ByteOrder;
@@ -6,8 +6,7 @@ import main.NGECore;
import org.apache.mina.core.buffer.IoBuffer;
-import engine.resources.config.Config;
-import engine.resources.config.DefaultConfig;
+import protocol.swg.SWGMessage;
public class ChatFriendsListUpdate extends SWGMessage {
@@ -29,12 +28,8 @@ public class ChatFriendsListUpdate extends SWGMessage {
@Override
public IoBuffer serialize() {
- Config config = new Config();
- config.setFilePath("nge.cfg");
- if (!(config.loadConfigFile())) {
- config = DefaultConfig.getConfig();
- }
- String serverName = config.getString("GALAXY_NAME");
+
+ String serverName = NGECore.getInstance().getConfig().getString("GALAXY_NAME");
IoBuffer result = IoBuffer.allocate(50 + friendName.length()).order(ByteOrder.LITTLE_ENDIAN);
result.putShort((short) 3);
diff --git a/src/protocol/swg/ChatInstantMessageToCharacter.java b/src/protocol/swg/chat/ChatInstantMessageToCharacter.java
similarity index 98%
rename from src/protocol/swg/ChatInstantMessageToCharacter.java
rename to src/protocol/swg/chat/ChatInstantMessageToCharacter.java
index 1d0efccd..8a1414f9 100644
--- a/src/protocol/swg/ChatInstantMessageToCharacter.java
+++ b/src/protocol/swg/chat/ChatInstantMessageToCharacter.java
@@ -19,13 +19,15 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package protocol.swg;
+package protocol.swg.chat;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import org.apache.mina.core.buffer.IoBuffer;
+import protocol.swg.SWGMessage;
+
@SuppressWarnings("unused")
public class ChatInstantMessageToCharacter extends SWGMessage {
diff --git a/src/protocol/swg/ChatInstantMessagetoClient.java b/src/protocol/swg/chat/ChatInstantMessagetoClient.java
similarity index 97%
rename from src/protocol/swg/ChatInstantMessagetoClient.java
rename to src/protocol/swg/chat/ChatInstantMessagetoClient.java
index f87c0da8..f11903fc 100644
--- a/src/protocol/swg/ChatInstantMessagetoClient.java
+++ b/src/protocol/swg/chat/ChatInstantMessagetoClient.java
@@ -19,12 +19,14 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package protocol.swg;
+package protocol.swg.chat;
import java.nio.ByteOrder;
import org.apache.mina.core.buffer.IoBuffer;
+import protocol.swg.SWGMessage;
+
public class ChatInstantMessagetoClient extends SWGMessage{
diff --git a/src/protocol/swg/chat/ChatOnAddFriend.java b/src/protocol/swg/chat/ChatOnAddFriend.java
new file mode 100644
index 00000000..44b0b8ac
--- /dev/null
+++ b/src/protocol/swg/chat/ChatOnAddFriend.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class ChatOnAddFriend extends SWGMessage {
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer result = IoBuffer.allocate(20).order(ByteOrder.LITTLE_ENDIAN);
+
+ result.putShort((short) 0x03);
+ result.putInt(0x2B2A0D94);
+ result.putLong(0);
+ result.flip();
+ return result;
+ }
+
+}
diff --git a/src/protocol/swg/chat/ChatOnChangeFriendStatus.java b/src/protocol/swg/chat/ChatOnChangeFriendStatus.java
new file mode 100644
index 00000000..1c770233
--- /dev/null
+++ b/src/protocol/swg/chat/ChatOnChangeFriendStatus.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import java.nio.ByteOrder;
+
+import main.NGECore;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+import engine.resources.config.Config;
+
+public class ChatOnChangeFriendStatus extends SWGMessage {
+
+ private String name;
+ private int type;
+ private long playerID;
+
+ // Adds or Removes a friend, not to be confused with online/offline status
+ public ChatOnChangeFriendStatus(long playerID, String name, int type) {
+ this.name = name;
+ this.type = type;
+ this.playerID = playerID;
+ }
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ Config config = NGECore.getInstance().getConfig();
+ String server = config.getString("GALAXY_NAME");
+
+ IoBuffer result = IoBuffer.allocate(100 + this.name.length() + server.length()).order(ByteOrder.LITTLE_ENDIAN);
+ result.putShort((short)0x06);
+ result.putInt(0x54336726);
+ result.putLong(playerID);
+
+ result.put(getAsciiString("SWG"));
+ result.put(getAsciiString(server));
+ result.put(getAsciiString(name));
+ result.putInt(0);
+ result.putInt(type);
+ result.put((byte) 0);
+ result.flip();
+ //System.out.println("ChatOnChangeFriendStatus: " + result.getHexDump());
+ return result;
+ }
+
+}
diff --git a/src/protocol/swg/chat/ChatOnConnectAvatar.java b/src/protocol/swg/chat/ChatOnConnectAvatar.java
new file mode 100644
index 00000000..faebcf9d
--- /dev/null
+++ b/src/protocol/swg/chat/ChatOnConnectAvatar.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class ChatOnConnectAvatar extends SWGMessage {
+
+ public ChatOnConnectAvatar() { }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(6).order(ByteOrder.LITTLE_ENDIAN);
+
+ buffer.putShort((short) 1);
+ buffer.putInt(0xD72FE9BE);
+
+ return buffer.flip();
+ }
+
+}
diff --git a/src/protocol/swg/chat/ChatOnCreateRoom.java b/src/protocol/swg/chat/ChatOnCreateRoom.java
new file mode 100644
index 00000000..fc690fae
--- /dev/null
+++ b/src/protocol/swg/chat/ChatOnCreateRoom.java
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import java.nio.ByteOrder;
+
+import main.NGECore;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+import services.chat.ChatRoom;
+
+public class ChatOnCreateRoom extends SWGMessage {
+
+ private ChatRoom room;
+ private int error;
+ private int requestId;
+
+ public ChatOnCreateRoom(ChatRoom room, int error, int requestId) {
+ this.room = room;
+ this.error = error;
+ this.requestId = requestId;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ String server = NGECore.getInstance().getGalaxyName();
+ IoBuffer data = IoBuffer.allocate(100).order(ByteOrder.LITTLE_ENDIAN);
+ data.setAutoExpand(true);
+
+ data.putShort((short) 4);
+ data.putInt(0x35D7CC9F);
+
+ data.putInt(error);
+ data.putInt(room.getRoomId());
+ data.putInt(room.isPrivateRoom() ? 0 : 1);
+ data.put((byte) (room.isModeratorsOnly() ? 1 : 0));
+ data.put(getAsciiString(room.getRoomAddress()));
+ data.put(getAsciiString("SWG"));
+ data.put(getAsciiString(server));
+ data.put(getAsciiString(room.getCreator()));
+ data.put(getAsciiString("SWG"));
+ data.put(getAsciiString(server));
+ data.put(getAsciiString(room.getOwner()));
+ data.put(getUnicodeString(room.getDescription()));
+
+ data.putInt(0);
+ /*if (room.getModeratorList().size() > 0) {
+ for (CreatureObject creo : room.getModeratorList()) {
+ data.put(getAsciiString("SWG"));
+ data.put(getAsciiString(server));
+ data.put(getAsciiString(creo.getCustomName()));
+ }
+ }*/
+
+ data.putInt(0);
+ /*if (room.getUserList().size() > 0) {
+ for (CreatureObject creo : room.getUserList()) {
+ data.put(getAsciiString("SWG"));
+ data.put(getAsciiString(server));
+ data.put(getAsciiString(creo.getCustomName()));
+ }
+ }*/
+
+ data.putInt(requestId);
+ return data.flip();
+ }
+
+}
diff --git a/src/protocol/swg/chat/ChatOnEnteredRoom.java b/src/protocol/swg/chat/ChatOnEnteredRoom.java
new file mode 100644
index 00000000..fe82b29c
--- /dev/null
+++ b/src/protocol/swg/chat/ChatOnEnteredRoom.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import java.nio.ByteOrder;
+
+import main.NGECore;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+import engine.resources.common.CRC;
+import resources.common.Opcodes;
+
+public class ChatOnEnteredRoom extends SWGMessage {
+
+ private String characterName;
+ private int success;
+ private int roomId;
+ private boolean join;
+
+ public ChatOnEnteredRoom(String characterName, int success, int roomId, boolean join) {
+ this.characterName = characterName;
+ this.success = success;
+ this.roomId = roomId;
+ this.join = join;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ String galaxy = NGECore.getInstance().getGalaxyName();
+ IoBuffer buffer = IoBuffer.allocate(27 + galaxy.length() + characterName.length()).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.putShort((short) 5);
+ if (join)
+ buffer.putInt(Opcodes.ChatOnEnteredRoom);
+ else
+ buffer.putInt(CRC.StringtoCRC("ChatOnLeaveRoom"));
+ buffer.put(getAsciiString("SWG"));
+ buffer.put(getAsciiString(galaxy));
+ buffer.put(getAsciiString(characterName.toLowerCase()));
+ buffer.putInt(success);
+ buffer.putInt(roomId);
+ buffer.putInt(0);
+ return buffer.flip();
+ }
+
+ public static final int JOIN_SUCCESS = 0;
+ public static final int JOIN_FAIL_NO_INVITE = 0x10;
+}
diff --git a/src/protocol/swg/ChatOnGetFriendsList.java b/src/protocol/swg/chat/ChatOnGetFriendsList.java
similarity index 73%
rename from src/protocol/swg/ChatOnGetFriendsList.java
rename to src/protocol/swg/chat/ChatOnGetFriendsList.java
index 6ee5fea6..14d5ac8f 100644
--- a/src/protocol/swg/ChatOnGetFriendsList.java
+++ b/src/protocol/swg/chat/ChatOnGetFriendsList.java
@@ -1,14 +1,16 @@
-package protocol.swg;
+package protocol.swg.chat;
import java.nio.ByteOrder;
import java.util.List;
+import main.NGECore;
+
import org.apache.mina.core.buffer.IoBuffer;
-import engine.resources.config.Config;
-import engine.resources.config.DefaultConfig;
+import protocol.swg.SWGMessage;
import resources.objects.player.PlayerObject;
+// This is possibly unused
public class ChatOnGetFriendsList extends SWGMessage {
private List friendList;
@@ -24,17 +26,11 @@ public class ChatOnGetFriendsList extends SWGMessage {
}
@Override
public void deserialize(IoBuffer data) {
- // XXX Auto-generated method stub
-
+
}
@Override
public IoBuffer serialize() {
- Config config = new Config();
- config.setFilePath("nge.cfg");
- if (!(config.loadConfigFile())) {
- config = DefaultConfig.getConfig();
- }
IoBuffer buffer = IoBuffer.allocate(200).order(ByteOrder.LITTLE_ENDIAN);
@@ -47,7 +43,7 @@ public class ChatOnGetFriendsList extends SWGMessage {
for (String friend : player.getFriendList()) {
buffer.put(getAsciiString("SWG"));
- buffer.put(getAsciiString(config.getString("GALAXY_NAME")));
+ buffer.put(getAsciiString(NGECore.getInstance().getConfig().getString("GALAXY_NAME")));
int friendIndex = friendList.indexOf(friend);
@@ -56,7 +52,6 @@ public class ChatOnGetFriendsList extends SWGMessage {
int size = buffer.position();
buffer = IoBuffer.allocate(size).put(buffer.array(), 0, size);
buffer.flip();
- //System.out.println("ChatOnGetFriendsList: " + buffer.getHexDump());
return buffer;
}
diff --git a/src/protocol/swg/chat/ChatOnLeaveRoom.java b/src/protocol/swg/chat/ChatOnLeaveRoom.java
new file mode 100644
index 00000000..b9c2c0ba
--- /dev/null
+++ b/src/protocol/swg/chat/ChatOnLeaveRoom.java
@@ -0,0 +1,124 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class ChatOnLeaveRoom extends SWGMessage {
+
+ private String server;
+ private String character;
+ private String channelAddress;
+ private int errorId;
+ private int channelId;
+ private int requestId;
+
+ public ChatOnLeaveRoom() { }
+
+ public ChatOnLeaveRoom(String server, String character) {
+ this.server = server;
+ this.character = character;
+ this.errorId = 0;
+ this.requestId = 0;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ data.getShort();
+ data.getInt();
+ getAsciiString(data);
+ getAsciiString(data);
+ character = getAsciiString(data);
+ channelAddress = getAsciiString(data);
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(28 + server.length() + character.length()).order(ByteOrder.LITTLE_ENDIAN);
+
+ buffer.putShort((short) 5);
+ buffer.putInt(0x60B5098B);
+
+ buffer.put(getAsciiString("SWG"));
+ buffer.put(getAsciiString(server));
+ buffer.put(getAsciiString(character));
+
+ buffer.putInt(errorId);
+ buffer.putInt(channelId);
+ buffer.putInt(requestId);
+
+ return buffer.flip();
+ }
+
+ public String getServer() {
+ return server;
+ }
+
+ public void setServer(String server) {
+ this.server = server;
+ }
+
+ public String getCharacter() {
+ return character;
+ }
+
+ public void setCharacter(String character) {
+ this.character = character;
+ }
+
+ public String getChannelAddress() {
+ return channelAddress;
+ }
+
+ public void setChannelAddress(String channelAddress) {
+ this.channelAddress = channelAddress;
+ }
+
+ public int getErrorId() {
+ return errorId;
+ }
+
+ public void setErrorId(int errorId) {
+ this.errorId = errorId;
+ }
+
+ public int getChannelId() {
+ return channelId;
+ }
+
+ public void setChannelId(int channelId) {
+ this.channelId = channelId;
+ }
+
+ public int getRequestId() {
+ return requestId;
+ }
+
+ public void setRequestId(int requestId) {
+ this.requestId = requestId;
+ }
+
+}
diff --git a/src/protocol/swg/ChatOnSendInstantMessage.java b/src/protocol/swg/chat/ChatOnSendInstantMessage.java
similarity index 96%
rename from src/protocol/swg/ChatOnSendInstantMessage.java
rename to src/protocol/swg/chat/ChatOnSendInstantMessage.java
index 9bcb41da..f1be9e0a 100644
--- a/src/protocol/swg/ChatOnSendInstantMessage.java
+++ b/src/protocol/swg/chat/ChatOnSendInstantMessage.java
@@ -19,12 +19,14 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package protocol.swg;
+package protocol.swg.chat;
import java.nio.ByteOrder;
import org.apache.mina.core.buffer.IoBuffer;
+import protocol.swg.SWGMessage;
+
public class ChatOnSendInstantMessage extends SWGMessage {
private int errorType;
diff --git a/src/protocol/swg/ChatOnSendPersistentMessage.java b/src/protocol/swg/chat/ChatOnSendPersistentMessage.java
similarity index 96%
rename from src/protocol/swg/ChatOnSendPersistentMessage.java
rename to src/protocol/swg/chat/ChatOnSendPersistentMessage.java
index 3d8a3a48..9dc28eff 100644
--- a/src/protocol/swg/ChatOnSendPersistentMessage.java
+++ b/src/protocol/swg/chat/ChatOnSendPersistentMessage.java
@@ -19,12 +19,14 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package protocol.swg;
+package protocol.swg.chat;
import java.nio.ByteOrder;
import org.apache.mina.core.buffer.IoBuffer;
+import protocol.swg.SWGMessage;
+
public class ChatOnSendPersistentMessage extends SWGMessage {
diff --git a/src/protocol/swg/chat/ChatOnSendRoomMessage.java b/src/protocol/swg/chat/ChatOnSendRoomMessage.java
new file mode 100644
index 00000000..21d03390
--- /dev/null
+++ b/src/protocol/swg/chat/ChatOnSendRoomMessage.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class ChatOnSendRoomMessage extends SWGMessage {
+
+ private int errorCode;
+ private int msgId;
+
+ public ChatOnSendRoomMessage(int errorCode, int msgId) {
+ this.errorCode = errorCode;
+ this.msgId = msgId;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(14).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.putShort((short) 3);
+ buffer.putInt(0xE7B61633);
+ buffer.putInt(errorCode);
+ buffer.putInt(msgId); // msg id
+ return buffer.flip();
+ }
+
+ public static final int SUCCESS = 0;
+ public static final int FAILED_MODERATOR = 9;
+ public static final int FAILED_LENGTH = 16;
+
+}
diff --git a/src/protocol/swg/ChatPersistentMessageToClient.java b/src/protocol/swg/chat/ChatPersistentMessageToClient.java
similarity index 67%
rename from src/protocol/swg/ChatPersistentMessageToClient.java
rename to src/protocol/swg/chat/ChatPersistentMessageToClient.java
index 3db681b6..6571d02d 100644
--- a/src/protocol/swg/ChatPersistentMessageToClient.java
+++ b/src/protocol/swg/chat/ChatPersistentMessageToClient.java
@@ -19,11 +19,16 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package protocol.swg;
+package protocol.swg.chat;
import java.nio.ByteOrder;
import java.util.List;
+
import org.apache.mina.core.buffer.IoBuffer;
+
+import engine.resources.common.StringUtilities;
+import protocol.swg.SWGMessage;
+import resources.common.ProsePackage;
import services.chat.WaypointAttachment;
@@ -37,9 +42,10 @@ public class ChatPersistentMessageToClient extends SWGMessage {
private String subject;
private byte status;
private int timestamp;
- private List attachments;
+ private List waypointAttachments;
+ private List proseAttachments;
- public ChatPersistentMessageToClient(String sender, String galaxyName, int mailId, byte requestTypeFlag, String message, String subject, byte status, int timestamp, List attachments) {
+ public ChatPersistentMessageToClient(String sender, String galaxyName, int mailId, byte requestTypeFlag, String message, String subject, byte status, int timestamp, List waypointAttachments, List proseAttachments) {
this.sender = sender;
this.galaxyName = galaxyName;
@@ -49,7 +55,8 @@ public class ChatPersistentMessageToClient extends SWGMessage {
this.subject = subject;
this.status = status;
this.timestamp = timestamp;
- this.attachments = attachments;
+ this.waypointAttachments = waypointAttachments;
+ this.proseAttachments = proseAttachments;
}
@@ -79,15 +86,18 @@ public class ChatPersistentMessageToClient extends SWGMessage {
result.put(getUnicodeString(subject));
- if(requestTypeFlag == 1 || attachments.size() == 0)
+ if(requestTypeFlag == 1 || (waypointAttachments.size() == 0 && proseAttachments.size() == 0))
result.putInt(0);
- else if(requestTypeFlag == 0 && attachments.size() > 0){
+ else if(requestTypeFlag == 0 && (waypointAttachments.size() > 0 || proseAttachments.size() > 0)){
int position = result.position();
result.putInt(0);
- for(WaypointAttachment attachment : attachments) {
+ for(WaypointAttachment attachment : waypointAttachments) {
+ result.putShort((short) 0);
+ result.put((byte) 4);
+ result.putInt(0xFFFFFFFD);
result.putInt(0);
result.putFloat(attachment.positionX);
result.putFloat(attachment.positionY);
@@ -98,16 +108,38 @@ public class ChatPersistentMessageToClient extends SWGMessage {
result.putLong(attachment.cellID);
result.put(attachment.color);
result.put((byte) (attachment.active ? 1 : 0));
+ result.put((byte) 0);
}
+ for(ProsePackage prose : proseAttachments) {
+
+ result.putShort((short) 0);
+ result.put((byte) 1);
+ result.putInt(0xFFFFFFFF);
+ result.put(prose.getStf().getBytes());
+ result.putLong(prose.getTuObjectId());
+ result.put(prose.getTuStf().getBytes());
+ result.put(getUnicodeString(prose.getTuCustomString()));
+ result.putLong(prose.getTtObjectId());
+ result.put(prose.getTtStf().getBytes());
+ result.put(getUnicodeString(prose.getTtCustomString()));
+ result.putLong(prose.getToObjectId());
+ result.put(prose.getToStf().getBytes());
+ result.put(getUnicodeString(prose.getToCustomString()));
+ result.putInt(prose.getDiInteger());
+ result.putFloat(prose.getDfFloat());
+ result.put((byte) 0);
+
+ }
+
result.putInt(position, (result.position() - position - 4) / 2);
}
result.put(status);
result.putInt(timestamp);
- result.putInt(0);
+ //result.putInt(0);
int size = result.position();
result = IoBuffer.allocate(size).put(result.array(), 0, size);
diff --git a/src/protocol/swg/ChatPersistentMessageToServer.java b/src/protocol/swg/chat/ChatPersistentMessageToServer.java
similarity index 97%
rename from src/protocol/swg/ChatPersistentMessageToServer.java
rename to src/protocol/swg/chat/ChatPersistentMessageToServer.java
index a8602f83..bed5888d 100644
--- a/src/protocol/swg/ChatPersistentMessageToServer.java
+++ b/src/protocol/swg/chat/ChatPersistentMessageToServer.java
@@ -19,13 +19,16 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package protocol.swg;
+package protocol.swg.chat;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;
+
import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
import services.chat.WaypointAttachment;
@@ -89,7 +92,7 @@ public class ChatPersistentMessageToServer extends SWGMessage {
waypoint.active = false;
waypointAttachments.add(waypoint);
- System.out.println(waypoint.name);
+ //System.out.println(waypoint.name);
if(appendByte > 0)
buffer.get();
diff --git a/src/protocol/swg/chat/ChatQueryRoom.java b/src/protocol/swg/chat/ChatQueryRoom.java
new file mode 100644
index 00000000..25e94d27
--- /dev/null
+++ b/src/protocol/swg/chat/ChatQueryRoom.java
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import java.nio.ByteOrder;
+import java.util.Vector;
+
+import main.NGECore;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+import services.chat.ChatRoom;
+
+public class ChatQueryRoom extends SWGMessage {
+
+ private ChatRoom room;
+ private String roomAddress;
+ private int requestId;
+
+ public ChatQueryRoom() { }
+ public ChatQueryRoom(ChatRoom room, int requestId) {
+ this.room = room;
+ this.requestId = requestId;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ data.getShort();
+ data.getInt();
+ requestId = data.getInt();
+ roomAddress = getAsciiString(data);
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ String server = NGECore.getInstance().getGalaxyName();
+ IoBuffer buffer = IoBuffer.allocate(100).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.setAutoExpand(true);
+
+ buffer.putShort((short) 7);
+ buffer.putInt(0xC4DE864E);
+
+ Vector users = room.getUserList();
+
+ buffer.putInt(users.size());
+ if (users.size() > 0) {
+ for (String str : users) {
+ buffer.put(getAsciiString("SWG"));
+ buffer.put(getAsciiString(server));
+ buffer.put(getAsciiString(str));
+ }
+ }
+
+ buffer.putInt(0); // TODO: Invited list for chat rooms
+
+ Vector moderators = room.getModeratorList();
+
+ buffer.putInt(moderators.size());
+ if (moderators.size() > 0) {
+ for (String str : moderators) {
+ buffer.put(getAsciiString("SWG"));
+ buffer.put(getAsciiString(server));
+ buffer.put(getAsciiString(str));
+ }
+ }
+
+ Vector banned = room.getBanList();
+ buffer.putInt(banned.size());
+ if (banned.size() > 0) {
+ for (String str : banned) {
+ buffer.put(getAsciiString("SWG"));
+ buffer.put(getAsciiString(server));
+ buffer.put(getAsciiString(str));
+ }
+ }
+
+ buffer.putInt(requestId);
+ buffer.putInt(room.getRoomId());
+ buffer.putInt(room.isPrivateRoom() ? 0 : 1);
+ buffer.put((byte) (room.isModeratorsOnly() ? 1 : 0));
+
+ buffer.put(getAsciiString(room.getRoomAddress()));
+
+ buffer.put(getAsciiString("SWG"));
+ buffer.put(getAsciiString(server));
+ buffer.put(getAsciiString(room.getOwner()));
+
+ buffer.put(getAsciiString("SWG"));
+ buffer.put(getAsciiString(server));
+ buffer.put(getAsciiString(room.getCreator()));
+
+ buffer.put(getUnicodeString(room.getDescription()));
+
+ buffer.putInt(0); // moderator list
+ buffer.putInt(0); // user list
+ return buffer.flip();
+ }
+ public String getRoomAddress() {
+ return roomAddress;
+ }
+ public void setRoomAddress(String roomAddress) {
+ this.roomAddress = roomAddress;
+ }
+ public int getRequestId() {
+ return requestId;
+ }
+ public void setRequestId(int requestId) {
+ this.requestId = requestId;
+ }
+}
diff --git a/src/protocol/swg/ChatRequestPersistentMessage.java b/src/protocol/swg/chat/ChatRequestPersistentMessage.java
similarity index 96%
rename from src/protocol/swg/ChatRequestPersistentMessage.java
rename to src/protocol/swg/chat/ChatRequestPersistentMessage.java
index d52b4afd..dd9ec88f 100644
--- a/src/protocol/swg/ChatRequestPersistentMessage.java
+++ b/src/protocol/swg/chat/ChatRequestPersistentMessage.java
@@ -19,10 +19,12 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package protocol.swg;
+package protocol.swg.chat;
import org.apache.mina.core.buffer.IoBuffer;
+import protocol.swg.SWGMessage;
+
public class ChatRequestPersistentMessage extends SWGMessage {
diff --git a/src/protocol/swg/chat/ChatRoomList.java b/src/protocol/swg/chat/ChatRoomList.java
new file mode 100644
index 00000000..3021f72f
--- /dev/null
+++ b/src/protocol/swg/chat/ChatRoomList.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import java.nio.ByteOrder;
+import java.util.concurrent.ConcurrentHashMap;
+
+import main.NGECore;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+import services.chat.ChatRoom;
+
+public class ChatRoomList extends SWGMessage {
+
+ private ConcurrentHashMap chatRooms;
+ private ChatRoom room;
+
+ public ChatRoomList(ConcurrentHashMap chatRooms) {
+ this.chatRooms = chatRooms;
+ }
+
+ public ChatRoomList(ChatRoom room) {
+ this.room = room;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ String server = NGECore.getInstance().getGalaxyName();
+ IoBuffer buffer = IoBuffer.allocate(53).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.setAutoExpand(true);
+
+ buffer.putShort((short) 2);
+ buffer.putInt(0x70DEB197);
+
+ if (room != null) {
+ buffer.putInt(1);
+
+ buffer.putInt(room.getRoomId());
+ buffer.putInt((int) ((room.isPrivateRoom() ? 1 : 0)));
+ buffer.put((byte) ((room.isModeratorsOnly() ? 1 : 0)));
+ buffer.put(getAsciiString(room.getRoomAddress()));
+ buffer.put(getAsciiString("SWG"));
+ buffer.put(getAsciiString(server));
+ buffer.put(getAsciiString(room.getOwner()));
+ buffer.put(getAsciiString("SWG"));
+ buffer.put(getAsciiString(server));
+ buffer.put(getAsciiString(room.getCreator()));
+ buffer.put(getUnicodeString(room.getDescription()));
+ buffer.putInt(0); // moderator list (not used by client)
+ buffer.putInt(0); // user list (not used by client)
+ } else {
+ buffer.putInt(chatRooms.size());
+ chatRooms.forEach((key, value) -> {
+ if (value.isVisible()) {
+ buffer.putInt(value.getRoomId());
+ buffer.putInt((int) ((value.isPrivateRoom() ? 1 : 0)));
+ buffer.put((byte) ((value.isModeratorsOnly() ? 1 : 0)));
+ buffer.put(getAsciiString(value.getRoomAddress()));
+ buffer.put(getAsciiString("SWG"));
+ buffer.put(getAsciiString(server));
+ buffer.put(getAsciiString(value.getOwner()));
+ buffer.put(getAsciiString("SWG"));
+ buffer.put(getAsciiString(server));
+ buffer.put(getAsciiString(value.getCreator()));
+ buffer.put(getUnicodeString(value.getDescription()));
+ buffer.putInt(0); // moderator list (not used by client)
+ buffer.putInt(0); // user list (not used by client)
+ }
+ });
+ }
+ buffer.flip();
+ //StringUtilities.printBytes(buffer.array());
+ return buffer;
+ }
+
+}
diff --git a/src/protocol/swg/chat/ChatRoomMessage.java b/src/protocol/swg/chat/ChatRoomMessage.java
new file mode 100644
index 00000000..616d019d
--- /dev/null
+++ b/src/protocol/swg/chat/ChatRoomMessage.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import java.nio.ByteOrder;
+
+import main.NGECore;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class ChatRoomMessage extends SWGMessage {
+
+ private String character;
+ private String message;
+ private int roomId;
+
+ public ChatRoomMessage(int roomId, String player, String message) {
+ this.roomId = roomId;
+ this.character = player;
+ this.message = message;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ String server = NGECore.getInstance().getGalaxyName();
+
+ IoBuffer buffer = IoBuffer.allocate(27 + server.length() + character.length() + (message.length() * 2)).order(ByteOrder.LITTLE_ENDIAN);
+
+ buffer.putShort((short) 5);
+ buffer.putInt(0xCD4CE444);
+ buffer.put(getAsciiString("SWG"));
+ buffer.put(getAsciiString(server));
+ buffer.put(getAsciiString(character));
+ buffer.putInt(roomId);
+ buffer.put(getUnicodeString(message));
+ buffer.putInt(0); // out of band package ?
+ return buffer.flip();
+ }
+
+}
diff --git a/src/protocol/swg/chat/ChatSendToRoom.java b/src/protocol/swg/chat/ChatSendToRoom.java
new file mode 100644
index 00000000..68e0ced2
--- /dev/null
+++ b/src/protocol/swg/chat/ChatSendToRoom.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class ChatSendToRoom extends SWGMessage {
+
+ private String message;
+ private int roomId;
+ private int msgId;
+
+ public ChatSendToRoom() { }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ try {
+ data.getShort();
+ data.getInt();
+ int size = data.getInt();
+ message = new String(ByteBuffer.allocate(size * 2).put(data.array(), data.position(), size * 2).array(), "UTF-16LE");
+ data.position(data.position() + size * 2);
+ data.getInt();
+ setRoomId(data.getInt());
+ setMsgId(data.getInt());
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ return null;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public int getRoomId() {
+ return roomId;
+ }
+
+ public void setRoomId(int roomId) {
+ this.roomId = roomId;
+ }
+
+ public int getMsgId() {
+ return msgId;
+ }
+
+ public void setMsgId(int msgId) {
+ this.msgId = msgId;
+ }
+
+}
diff --git a/src/protocol/swg/chat/ChatServerStatus.java b/src/protocol/swg/chat/ChatServerStatus.java
new file mode 100644
index 00000000..2de0db65
--- /dev/null
+++ b/src/protocol/swg/chat/ChatServerStatus.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class ChatServerStatus extends SWGMessage {
+
+ public ChatServerStatus() { }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(7).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.putShort((short) 2);
+ buffer.putInt(0x7102B15F);
+ buffer.put((byte) 1);
+ return buffer.flip();
+ }
+}
diff --git a/src/protocol/swg/chat/ChatSystemMessage.java b/src/protocol/swg/chat/ChatSystemMessage.java
new file mode 100644
index 00000000..277eb596
--- /dev/null
+++ b/src/protocol/swg/chat/ChatSystemMessage.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+import resources.common.Opcodes;
+import resources.common.OutOfBand;
+
+public class ChatSystemMessage extends SWGMessage {
+
+ private String message;
+ private byte displayType;
+ private OutOfBand outOfBand;
+
+ public ChatSystemMessage(String message, OutOfBand outOfBand, byte displayType) {
+ this.message = message;
+ this.displayType = displayType;
+ this.outOfBand = outOfBand;
+ }
+
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ public IoBuffer serialize() {
+ IoBuffer outOfBandBuffer = outOfBand.serialize();
+ IoBuffer result = IoBuffer.allocate(7 + getUnicodeString(message).length + outOfBandBuffer.array().length).order(ByteOrder.LITTLE_ENDIAN);
+ result.putShort((short) 2);
+ result.putInt(Opcodes.ChatSystemMessage);
+ result.put(displayType);
+ result.put(getUnicodeString(message));
+ result.put(outOfBandBuffer.array());
+ return result.flip();
+ }
+
+}
diff --git a/src/protocol/swg/chat/VoiceChatStatus.java b/src/protocol/swg/chat/VoiceChatStatus.java
new file mode 100644
index 00000000..97936a19
--- /dev/null
+++ b/src/protocol/swg/chat/VoiceChatStatus.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.chat;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.SWGMessage;
+
+public class VoiceChatStatus extends SWGMessage {
+
+ public VoiceChatStatus() { }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(10).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.putShort((short) 2);
+ buffer.putInt(0x9E601905);
+ buffer.putInt(1);
+ return buffer.flip();
+ }
+
+}
diff --git a/src/protocol/swg/objectControllerObjects/Animation.java b/src/protocol/swg/objectControllerObjects/Animation.java
new file mode 100644
index 00000000..957cf7d2
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/Animation.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.ObjControllerMessage;
+
+public class Animation extends ObjControllerObject {
+
+ private long objectId;
+ private String animation;
+
+ public Animation(long objectId, String animation) {
+ this.objectId = objectId;
+ this.animation = animation;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer result = IoBuffer.allocate(20 + animation.length()).order(ByteOrder.LITTLE_ENDIAN);
+
+ result.putInt(ObjControllerMessage.ANIMATION);
+
+ result.putLong(objectId); // person performing animation's id
+ result.putInt(0); // seems to be just a place holder
+ result.put(getAsciiString(animation)); // animation name ex: tumble_to_standing
+
+ return result.flip();
+ }
+
+ public long getObjectId() {
+ return objectId;
+ }
+
+ public void setObjectId(long objectId) {
+ this.objectId = objectId;
+ }
+
+ public String getAnimation() {
+ return animation;
+ }
+
+ public void setAnimation(String animation) {
+ this.animation = animation;
+ }
+
+}
diff --git a/src/protocol/swg/objectControllerObjects/BiographyUpdate.java b/src/protocol/swg/objectControllerObjects/BiographyUpdate.java
new file mode 100644
index 00000000..290d4580
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/BiographyUpdate.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+public class BiographyUpdate extends ObjControllerObject {
+
+ private long objectId;
+ private long targetObjectId;
+
+ private String biography;
+
+ public BiographyUpdate(long objectId, long targetObjectId, String biography) {
+ this.objectId = objectId;
+ this.biography = biography;
+ this.targetObjectId = targetObjectId;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(28 + (biography.length() * 2)).order(ByteOrder.LITTLE_ENDIAN);
+
+ buffer.putInt(0x000001DB);
+ buffer.putLong(objectId); // requester
+ buffer.putInt(0);
+ buffer.putLong(targetObjectId);
+ buffer.put(getUnicodeString(biography));
+
+ return buffer.flip();
+ }
+
+
+}
diff --git a/src/protocol/swg/objectControllerObjects/BuffBuilderChangeMessage.java b/src/protocol/swg/objectControllerObjects/BuffBuilderChangeMessage.java
new file mode 100644
index 00000000..0c5740fd
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/BuffBuilderChangeMessage.java
@@ -0,0 +1,162 @@
+package protocol.swg.objectControllerObjects;
+
+import java.nio.ByteOrder;
+import java.util.Vector;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.ObjControllerMessage;
+import resources.buffs.BuffItem;
+
+public class BuffBuilderChangeMessage extends ObjControllerObject {
+
+ private boolean accepted;
+ private int buffCost;
+
+ private long bufferId;
+ private int buffRecipientAccepted;
+ private long buffRecipientId;
+
+ private long objectId;
+ private Vector statBuffs = new Vector();
+
+ private int time;
+
+ public BuffBuilderChangeMessage() {
+
+ }
+
+ public BuffBuilderChangeMessage(long objectId, long bufferId, long buffRecipientId, Vector statBuffs) {
+ this.objectId = objectId;
+ this.bufferId = bufferId;
+ this.buffRecipientId = buffRecipientId;
+ this.statBuffs = statBuffs;
+ }
+
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ setObjectId(data.getLong());
+ data.getInt();
+ setBufferId(data.getLong());
+ setBuffRecipientId(data.getLong());
+ setTime(data.getInt());
+ setBuffCost(data.getInt());
+
+ byte value = data.get();
+ if (value == (byte) 0)
+ setAccepted(false);
+ else if (value == (byte) 1)
+ setAccepted(true);
+
+ setBuffRecipientAccepted(data.getInt());
+
+ int statSize = data.getInt();
+ for (int i = 0; i < statSize; i++) {
+ BuffItem item = new BuffItem();
+
+ item.setSkillName(getAsciiString(data));
+ item.setInvested(data.getInt());
+ item.setEntertainerBonus(data.getInt());
+
+ statBuffs.add(item);
+ }
+ }
+
+ public boolean getAccepted() {
+ return accepted;
+ }
+
+ public int getBuffCost() {
+ return buffCost;
+ }
+
+ public long getBufferId() {
+ return bufferId;
+ }
+
+ public int getBuffRecipientAccepted() {
+ return buffRecipientAccepted;
+ }
+
+ public long getBuffRecipientId() {
+ return buffRecipientId;
+ }
+
+ public long getObjectId() {
+ return objectId;
+ }
+
+ public Vector getStatBuffs() {
+ return statBuffs;
+ }
+
+ public int getTime() {
+ return time;
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer result = IoBuffer.allocate(65 + statBuffs.size()).order(ByteOrder.LITTLE_ENDIAN);
+ result.setAutoExpand(true);
+
+ result.putInt(ObjControllerMessage.BUFF_BUILDER_CHANGE);
+ result.putLong(objectId);
+
+ result.putInt(0);
+
+ result.putLong(bufferId);
+ result.putLong(buffRecipientId);
+
+ result.putInt(time);
+ result.putInt(buffCost);
+
+ result.put((byte) ((accepted) ? 1 : 0));
+ result.putInt(buffRecipientAccepted);
+
+ result.putInt(statBuffs.size());
+
+ if (!statBuffs.isEmpty()) {
+ for (BuffItem item : statBuffs) {
+ result.put(getAsciiString(item.getSkillName()));
+ result.putInt(item.getInvested());
+ result.putInt(item.getEntertainerBonus());
+ }
+ }
+
+ return result.flip();
+ }
+
+ public void setAccepted(boolean accepted) {
+ this.accepted = accepted;
+ }
+
+ public void setBuffCost(int buffCost) {
+ this.buffCost = buffCost;
+ }
+
+ public void setBufferId(long bufferId) {
+ this.bufferId = bufferId;
+ }
+
+ public void setBuffRecipientAccepted(int buffRecipientAccepted) {
+ this.buffRecipientAccepted = buffRecipientAccepted;
+ }
+
+ public void setBuffRecipientId(long buffRecipientId) {
+ this.buffRecipientId = buffRecipientId;
+ }
+
+ public void setObjectId(long objectId) {
+ this.objectId = objectId;
+ }
+
+ public void setStatBuffs(Vector statBuffs) {
+ this.statBuffs = statBuffs;
+ }
+
+ public void setTime(int time) {
+ this.time = time;
+ }
+
+}
diff --git a/src/protocol/swg/objectControllerObjects/BuffBuilderEndMessage.java b/src/protocol/swg/objectControllerObjects/BuffBuilderEndMessage.java
new file mode 100644
index 00000000..b4aa5cd1
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/BuffBuilderEndMessage.java
@@ -0,0 +1,197 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import java.nio.ByteOrder;
+import java.util.Vector;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.ObjControllerMessage;
+import resources.buffs.BuffItem;
+
+public class BuffBuilderEndMessage extends ObjControllerObject {
+
+ private boolean accepted;
+ private int buffCost;
+
+ private long bufferId;
+ private int buffRecipientAccepted;
+ private long buffRecipientId;
+
+ private long objectId;
+ private Vector statBuffs = new Vector();
+
+ private int time;
+
+ public BuffBuilderEndMessage() {
+
+ }
+
+ public BuffBuilderEndMessage(BuffBuilderEndMessage endMessage) {
+ this.buffCost = endMessage.getBuffCost();
+ this.time = endMessage.getTime();
+ this.accepted = endMessage.getAccepted();
+ this.buffRecipientAccepted = endMessage.getBuffRecipientAccepted();
+ this.statBuffs = endMessage.getStatBuffs();
+ }
+
+ public BuffBuilderEndMessage(BuffBuilderChangeMessage changeMessage) {
+ this.buffRecipientId = changeMessage.getBuffRecipientId();
+ this.bufferId = changeMessage.getBufferId();
+ this.buffCost = changeMessage.getBuffCost();
+ this.time = changeMessage.getTime();
+ this.accepted = changeMessage.getAccepted();
+ this.buffRecipientAccepted = changeMessage.getBuffRecipientAccepted();
+ this.statBuffs = changeMessage.getStatBuffs();
+ }
+ @Override
+ public void deserialize(IoBuffer data) {
+ setObjectId(data.getLong());
+ data.getInt();
+ setBufferId(data.getLong());
+ setBuffRecipientId(data.getLong());
+ setTime(data.getInt());
+ setBuffCost(data.getInt());
+
+ byte value = data.get();
+ if (value == (byte) 0)
+ setAccepted(false);
+ else if (value == (byte) 1)
+ setAccepted(true);
+
+ setBuffRecipientAccepted(data.getInt());
+
+ int statSize = data.getInt();
+ for (int i = 0; i < statSize; i++) {
+ BuffItem item = new BuffItem();
+
+ String statName = getAsciiString(data);
+ item.setSkillName(statName);
+
+ int investedPoints = data.getInt();
+ item.setInvested(investedPoints);
+
+ int entBonus = data.getInt();
+ item.setEntertainerBonus(entBonus);
+
+ statBuffs.add(item);
+ }
+ }
+
+ public boolean getAccepted() {
+ return accepted;
+ }
+
+ public int getBuffCost() {
+ return buffCost;
+ }
+
+ public long getBufferId() {
+ return bufferId;
+ }
+
+ public int getBuffRecipientAccepted() {
+ return buffRecipientAccepted;
+ }
+
+ public long getBuffRecipientId() {
+ return buffRecipientId;
+ }
+
+ public long getObjectId() {
+ return objectId;
+ }
+
+ public Vector getStatBuffs() {
+ return statBuffs;
+ }
+
+ public int getTime() {
+ return time;
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer result = IoBuffer.allocate(65 + statBuffs.size()).order(ByteOrder.LITTLE_ENDIAN);
+ result.setAutoExpand(true);
+
+ result.putInt(ObjControllerMessage.BUFF_BUILDER_END);
+ result.putLong(objectId);
+
+ result.putInt(0);
+
+ result.putLong(bufferId);
+ result.putLong(buffRecipientId);
+
+ result.putInt(time);
+ result.putInt(buffCost);
+
+ result.put((byte) ((accepted) ? 1 : 0));
+ result.putInt(buffRecipientAccepted);
+
+ result.putInt(statBuffs.size());
+
+ if (!statBuffs.isEmpty()) {
+ for (BuffItem item : statBuffs) {
+ result.put(getAsciiString(item.getSkillName()));
+ result.putInt(item.getInvested());
+ result.putInt(item.getEntertainerBonus());
+ }
+ }
+
+ return result.flip();
+ }
+
+ public void setAccepted(boolean accepted) {
+ this.accepted = accepted;
+ }
+
+ public void setBuffCost(int buffCost) {
+ this.buffCost = buffCost;
+ }
+
+ public void setBufferId(long bufferId) {
+ this.bufferId = bufferId;
+ }
+
+ public void setBuffRecipientAccepted(int buffRecipientAccepted) {
+ this.buffRecipientAccepted = buffRecipientAccepted;
+ }
+
+ public void setBuffRecipientId(long buffRecipientId) {
+ this.buffRecipientId = buffRecipientId;
+ }
+
+ public void setObjectId(long objectId) {
+ this.objectId = objectId;
+ }
+
+ public void setStatBuffs(Vector statBuffs) {
+ this.statBuffs = statBuffs;
+ }
+
+ public void setTime(int time) {
+ this.time = time;
+ }
+
+}
diff --git a/src/protocol/swg/objectControllerObjects/BuffBuilderStartMessage.java b/src/protocol/swg/objectControllerObjects/BuffBuilderStartMessage.java
new file mode 100644
index 00000000..dd75d45c
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/BuffBuilderStartMessage.java
@@ -0,0 +1,59 @@
+package protocol.swg.objectControllerObjects;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.ObjControllerMessage;
+
+public class BuffBuilderStartMessage extends ObjControllerObject {
+
+ private long objectId;
+ private long recieverId;
+ private long bufferId;
+
+ public BuffBuilderStartMessage(long objectId, long bufferId, long recieverId) {
+ this.objectId = objectId;
+ this.bufferId = bufferId;
+ this.recieverId = recieverId;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer result = IoBuffer.allocate(37).order(ByteOrder.LITTLE_ENDIAN);
+
+ //0B 00 00-00 # flag (11)
+ result.putInt(ObjControllerMessage.BUFF_BUILDER_START);
+
+ result.putLong(objectId);
+ result.putInt(0); // tick count
+ result.putLong(bufferId);
+ result.putLong(recieverId);
+
+
+ //System.out.println("BBMSG: " + result.flip().getHexDump());
+ return result.flip();
+ }
+
+ public long getObjectId() {
+ return objectId;
+ }
+
+ public void setObjectId(long objectId) {
+ this.objectId = objectId;
+ }
+
+ public long getRecieverId() {
+ return recieverId;
+ }
+
+ public void setRecieverId(long recieverId) {
+ this.recieverId = recieverId;
+ }
+
+}
diff --git a/src/resources/objects/ListObject.java b/src/protocol/swg/objectControllerObjects/ChangeRoleIconChoice.java
similarity index 59%
rename from src/resources/objects/ListObject.java
rename to src/protocol/swg/objectControllerObjects/ChangeRoleIconChoice.java
index 815fe632..7a458ead 100644
--- a/src/resources/objects/ListObject.java
+++ b/src/protocol/swg/objectControllerObjects/ChangeRoleIconChoice.java
@@ -19,37 +19,35 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package resources.objects;
+package protocol.swg.objectControllerObjects;
-import java.nio.ByteBuffer;
+import org.apache.mina.core.buffer.IoBuffer;
-import org.apache.mina.core.buffer.SimpleBufferAllocator;
-
-
-import resources.common.StringUtilities;
-
-
-public abstract class ListObject implements IListObject {
+public class ChangeRoleIconChoice extends ObjControllerObject {
- public ListObject() { }
+ private long objectId = 0;
+ private int icon = 0;
- protected final Object objectMutex = new Object();
- public SimpleBufferAllocator bufferPool = new SimpleBufferAllocator();
-
- protected String getAsciiString(ByteBuffer buffer) {
- return StringUtilities.getAsciiString(buffer);
+ @Override
+ public IoBuffer serialize() {
+ return null;
}
- protected String getUnicodeString(ByteBuffer buffer) {
- return StringUtilities.getUnicodeString(buffer);
+ @Override
+ public void deserialize(IoBuffer buffer) {
+ //System.out.println(Utilities.getHexString(buffer.array()));
+ objectId = buffer.getLong();
+ buffer.skip(4);
+ if(buffer.hasRemaining())
+ icon = buffer.getInt();
}
- protected byte[] getAsciiString(String string) {
- return StringUtilities.getAsciiString(string);
+ public long getObjectId() {
+ return objectId;
}
- protected byte[] getUnicodeString(String string) {
- return StringUtilities.getUnicodeString(string);
+ public int getIcon() {
+ return icon;
}
}
diff --git a/src/protocol/swg/objectControllerObjects/CombatSpam.java b/src/protocol/swg/objectControllerObjects/CombatSpam.java
index 75eaf9cd..b6be2857 100644
--- a/src/protocol/swg/objectControllerObjects/CombatSpam.java
+++ b/src/protocol/swg/objectControllerObjects/CombatSpam.java
@@ -26,16 +26,17 @@ import java.nio.ByteOrder;
import org.apache.mina.core.buffer.IoBuffer;
import protocol.swg.ObjControllerMessage;
-import services.combat.CombatService.HitType;
+import resources.datatables.HitType;
+@SuppressWarnings("unused")
public class CombatSpam extends ObjControllerObject{
private long attackerId;
private long defenderId;
private int damage;
- private String file;
- private String text;
- private byte colorFlag;
+ //private String file;
+ //private String text;
+ //private byte colorFlag;
private boolean hit = true;
private boolean critical = false;
private boolean dodge = false;
diff --git a/src/protocol/swg/objectControllerObjects/CommandEnqueue.java b/src/protocol/swg/objectControllerObjects/CommandEnqueue.java
index 40b228a6..bb1705a4 100644
--- a/src/protocol/swg/objectControllerObjects/CommandEnqueue.java
+++ b/src/protocol/swg/objectControllerObjects/CommandEnqueue.java
@@ -39,6 +39,15 @@ public class CommandEnqueue extends ObjControllerObject {
public static final int STAND = 0xA8A25C79;
public static final int ATTACK = 0xA8FEF90A;
public static final int TRANSFERITEM = 0x3CFB449D;
+
+ //ent
+ // this really needed?
+ public static final int STARTDANCE = 0x7B1DCBE0;
+ public static final int STOPDANCE = 0xECC171CC;
+ public static final int FLOURISH = 0xC8998CE9;
+ public static final int FLO = 0x3B159B76;
+ public static final int BANDFLOURISH = 0xF4C60EC3;
+ public static final int BANDFLO = 0xDD3FB008;
private int actionCounter;
private int commandCRC;
diff --git a/src/protocol/swg/objectControllerObjects/ImageDesignMessage.java b/src/protocol/swg/objectControllerObjects/ImageDesignMessage.java
new file mode 100644
index 00000000..8c99498e
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/ImageDesignMessage.java
@@ -0,0 +1,361 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import java.nio.ByteOrder;
+import java.util.Vector;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.ObjControllerMessage;
+import resources.common.IDAttribute;
+
+public class ImageDesignMessage extends ObjControllerObject {
+
+ private long designerId;
+ private long targetId;
+ private long objectId;
+ private byte unkByte;
+ private String hair;
+ private String unk;
+ private int sessionId;
+ private int moneyDemanded;
+ private int moneyOffered;
+ private boolean designerCommited;
+ private boolean customerAccepted;
+ private byte flagStatMigration;
+
+ private int bodyFormSkill1;
+ private int faceFormSkill1;
+ private int bodyFormSkill2;
+ private int faceFormSkill2;
+
+ private String holoEmote;
+
+ private Vector bodyAttributes;
+ private Vector colorAttributes;
+
+ private boolean endMessage;
+
+ public ImageDesignMessage() { }
+
+ public ImageDesignMessage(long objectId, long designerId, long targetId) {
+ this.objectId = objectId;
+ this.designerId = designerId;
+ this.targetId = targetId;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ setObjectId(data.getLong());
+ data.getInt();
+ setDesignerId(data.getLong());
+ setTargetId(data.getLong());
+ data.getLong(); // tent id
+
+ setUnkByte(data.get());
+ setHair(getAsciiString(data));
+
+ setUnk(getAsciiString(data));
+ data.getInt(); // timer
+ setSessionId(data.getInt());
+ setMoneyDemanded(data.getInt());
+ setMoneyOffered(data.getInt());
+ setDesignerCommited((boolean) ((data.get() == 1) ? true : false));
+ setCustomerAccepted((boolean) ((data.getInt() == 1) ? true : false));
+
+ setBodyFormSkill1(data.getInt());
+ setFaceFormSkill1(data.getInt());
+
+ setBodyFormSkill2(data.getInt());
+ setFaceFormSkill2(data.getInt());
+
+ int bodyAttributesSize = data.getInt();
+
+ if (bodyAttributesSize > 0) {
+ Vector bodyAttributes = new Vector();
+
+ for (int i = 0; i < bodyAttributesSize; i++) {
+
+ IDAttribute atr = new IDAttribute();
+
+ atr.setName(getAsciiString(data));
+ atr.setFloatValue(data.getFloat());
+
+ bodyAttributes.add(atr);
+ }
+ setBodyAttributes(bodyAttributes);
+ }
+
+ int colorAttributesSize = data.getInt();
+
+ if (colorAttributesSize > 0) {
+ Vector colorAttributes = new Vector();
+
+ for (int i = 0; i < colorAttributesSize; i++) {
+
+ IDAttribute atr = new IDAttribute();
+
+ atr.setName(getAsciiString(data));
+ atr.setValue(data.getInt());
+
+ colorAttributes.add(atr);
+ }
+ setColorAttributes(colorAttributes);
+ }
+
+ setHoloEmote(getAsciiString(data));
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(100).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.setAutoExpand(true);
+
+ if (endMessage)
+ buffer.putInt(ObjControllerMessage.IMAGE_DESIGN_END);
+ else
+ buffer.putInt(ObjControllerMessage.IMAGE_DESIGN_CHANGE);
+
+ buffer.putLong(objectId);
+ buffer.putInt(0);
+
+ buffer.putLong(designerId);
+ buffer.putLong(targetId);
+ buffer.putLong(0); // tent id
+
+ buffer.put(unkByte);
+ if (hair != null)
+ buffer.put(getAsciiString(hair));
+ else
+ buffer.putShort((short) 0);
+
+ if (unk != null)
+ buffer.put(getAsciiString(unk));
+ else
+ buffer.putShort((short) 0);
+
+ buffer.putInt(0); // timer
+
+ buffer.putInt(sessionId);
+
+ buffer.putInt(moneyDemanded);
+ buffer.putInt(moneyOffered);
+
+ buffer.put((byte) ((designerCommited) ? 1 : 0));
+ buffer.putInt((int) ((customerAccepted) ? 1 : 0));
+
+ buffer.putInt(bodyFormSkill1);
+ buffer.putInt(faceFormSkill1);
+ buffer.putInt(bodyFormSkill2);
+ buffer.putInt(faceFormSkill2);
+
+ if(bodyAttributes != null && bodyAttributes.size() > 0) {
+ buffer.putInt(bodyAttributes.size());
+ for (IDAttribute atr : bodyAttributes) {
+ buffer.put(getAsciiString(atr.getName()));
+ buffer.putFloat(atr.getFloatValue());
+ }
+ } else {
+ buffer.putInt(0);
+ }
+
+ if (colorAttributes != null && colorAttributes.size() > 0) {
+ buffer.putInt(colorAttributes.size());
+ for (IDAttribute atr : colorAttributes) {
+ buffer.put(getAsciiString(atr.getName()));
+ buffer.putInt(atr.getValue());
+ }
+ } else {
+ buffer.putInt(0);
+ }
+
+ if (holoEmote != null)
+ buffer.put(getAsciiString(holoEmote));
+ else
+ buffer.putShort((short) 0);
+
+ return buffer.flip();
+ }
+
+ public long getDesignerId() {
+ return designerId;
+ }
+
+ public void setDesignerId(long designerId) {
+ this.designerId = designerId;
+ }
+
+ public long getTargetId() {
+ return targetId;
+ }
+
+ public void setTargetId(long targetId) {
+ this.targetId = targetId;
+ }
+
+ public long getObjectId() {
+ return objectId;
+ }
+
+ public void setObjectId(long objectId) {
+ this.objectId = objectId;
+ }
+
+ public byte getUnkByte() {
+ return unkByte;
+ }
+
+ public void setUnkByte(byte unkByte) {
+ this.unkByte = unkByte;
+ }
+
+ public String getHair() {
+ return hair;
+ }
+
+ public void setHair(String hair) {
+ this.hair = hair;
+ }
+
+ public String getUnk() {
+ return unk;
+ }
+
+ public void setUnk(String unk) {
+ this.unk = unk;
+ }
+
+ public int getSessionId() {
+ return sessionId;
+ }
+
+ public void setSessionId(int sessionId) {
+ this.sessionId = sessionId;
+ }
+
+ public int getMoneyDemanded() {
+ return moneyDemanded;
+ }
+
+ public void setMoneyDemanded(int moneyDemanded) {
+ this.moneyDemanded = moneyDemanded;
+ }
+
+ public int getMoneyOffered() {
+ return moneyOffered;
+ }
+
+ public void setMoneyOffered(int moneyOffered) {
+ this.moneyOffered = moneyOffered;
+ }
+
+ public boolean isDesignerCommited() {
+ return designerCommited;
+ }
+
+ public void setDesignerCommited(boolean designerCommited) {
+ this.designerCommited = designerCommited;
+ }
+
+ public boolean isCustomerAccepted() {
+ return customerAccepted;
+ }
+
+ public void setCustomerAccepted(boolean customerAccepted) {
+ this.customerAccepted = customerAccepted;
+ }
+
+ public byte getFlagStatMigration() {
+ return flagStatMigration;
+ }
+
+ public void setFlagStatMigration(byte flagStatMigration) {
+ this.flagStatMigration = flagStatMigration;
+ }
+
+ public int getBodyFormSkill1() {
+ return bodyFormSkill1;
+ }
+
+ public void setBodyFormSkill1(int bodyFormSkill1) {
+ this.bodyFormSkill1 = bodyFormSkill1;
+ }
+
+ public int getFaceFormSkill1() {
+ return faceFormSkill1;
+ }
+
+ public void setFaceFormSkill1(int faceFormSkill1) {
+ this.faceFormSkill1 = faceFormSkill1;
+ }
+
+ public int getBodyFormSkill2() {
+ return bodyFormSkill2;
+ }
+
+ public void setBodyFormSkill2(int bodyFormSkill2) {
+ this.bodyFormSkill2 = bodyFormSkill2;
+ }
+
+ public int getFaceFormSkill2() {
+ return faceFormSkill2;
+ }
+
+ public void setFaceFormSkill2(int faceFormSkill2) {
+ this.faceFormSkill2 = faceFormSkill2;
+ }
+
+ public String getHoloEmote() {
+ return holoEmote;
+ }
+
+ public void setHoloEmote(String holoEmote) {
+ this.holoEmote = holoEmote;
+ }
+
+ public Vector getBodyAttributes() {
+ return bodyAttributes;
+ }
+
+ public void setBodyAttributes(Vector bodyAttributes) {
+ this.bodyAttributes = bodyAttributes;
+ }
+
+ public Vector getColorAttributes() {
+ return colorAttributes;
+ }
+
+ public void setColorAttributes(Vector colorAttributes) {
+ this.colorAttributes = colorAttributes;
+ }
+
+ public boolean isEndMessage() {
+ return endMessage;
+ }
+
+ public void setEndMessage(boolean endMessage) {
+ this.endMessage = endMessage;
+ }
+
+}
diff --git a/src/protocol/swg/objectControllerObjects/ImageDesignStartMessage.java b/src/protocol/swg/objectControllerObjects/ImageDesignStartMessage.java
new file mode 100644
index 00000000..fdada211
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/ImageDesignStartMessage.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.ObjControllerMessage;
+
+public class ImageDesignStartMessage extends ObjControllerObject {
+
+ private long objectId;
+ private long designer;
+ private long target;
+
+ public ImageDesignStartMessage(long objectId, long designer, long target) {
+ this.designer = designer;
+ this.target = target;
+ this.objectId = objectId;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(46).order(ByteOrder.LITTLE_ENDIAN);
+
+ buffer.putInt(ObjControllerMessage.IMAGE_DESIGN_START);
+ buffer.putLong(objectId);
+
+ buffer.putInt(0);
+ buffer.putLong(designer);
+ buffer.putLong(target);
+ buffer.putLong(0);
+ buffer.putShort((short) 0);
+ return buffer.flip();
+ }
+
+}
diff --git a/src/protocol/swg/objectControllerObjects/MissionAbort.java b/src/protocol/swg/objectControllerObjects/MissionAbort.java
new file mode 100644
index 00000000..2195c511
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/MissionAbort.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.ObjControllerMessage;
+
+public class MissionAbort extends ObjControllerObject {
+ private long characterId;
+ private long missionId;
+
+ public MissionAbort() { }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ setCharacterId(data.getLong());
+ data.getInt();
+ setMissionId(data.getLong());
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(32).order(ByteOrder.LITTLE_ENDIAN);
+
+ buffer.putInt(ObjControllerMessage.MISSION_ABORT_RESPONSE);
+ buffer.putLong(characterId);
+ buffer.putInt(0);
+ buffer.putLong(missionId);
+ return null;
+ }
+
+ public long getMissionId() { return missionId; }
+
+ public void setMissionId(long missionId) { this.missionId = missionId; }
+
+ public long getCharacterId() { return characterId; }
+
+ public void setCharacterId(long characterId) { this.characterId = characterId; }
+}
diff --git a/src/protocol/swg/objectControllerObjects/MissionAcceptRequest.java b/src/protocol/swg/objectControllerObjects/MissionAcceptRequest.java
new file mode 100644
index 00000000..403861d3
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/MissionAcceptRequest.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+public class MissionAcceptRequest extends ObjControllerObject {
+
+ private long missionObjId;
+ private long terminalObjId;
+ private byte terminalType;
+
+ public MissionAcceptRequest() { }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ data.getLong();
+ data.getInt();
+ setMissionObjId(data.getLong());
+ setTerminalObjId(data.getLong());
+ setTerminalType(data.get());
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ return null;
+ }
+
+ public long getMissionObjId() {
+ return missionObjId;
+ }
+
+ public void setMissionObjId(long misssionObjId) {
+ this.missionObjId = misssionObjId;
+ }
+
+ public long getTerminalObjId() {
+ return terminalObjId;
+ }
+
+ public void setTerminalObjId(long terminalObjId) {
+ this.terminalObjId = terminalObjId;
+ }
+
+ public void setTerminalType(byte terminalType) {
+ this.terminalType = terminalType;
+ }
+
+ public byte getTerminalType() {
+ return terminalType;
+ }
+}
diff --git a/src/protocol/swg/objectControllerObjects/MissionAcceptResponse.java b/src/protocol/swg/objectControllerObjects/MissionAcceptResponse.java
new file mode 100644
index 00000000..faad427b
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/MissionAcceptResponse.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.ObjControllerMessage;
+
+public class MissionAcceptResponse extends ObjControllerObject {
+
+ private long objectId;
+ private long missionObjId;
+ private byte terminalType;
+ private byte flag;
+
+ public MissionAcceptResponse(long objectId, long missionObjId, byte terminalType, byte flag) {
+ this.objectId = objectId;
+ this.missionObjId = missionObjId;
+ this.terminalType = terminalType;
+ this.flag = flag;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(27).order(ByteOrder.LITTLE_ENDIAN);
+
+ buffer.putInt(ObjControllerMessage.MISSION_ACCEPT_RESPONSE);
+ buffer.putLong(objectId);
+ buffer.putInt(0);
+
+ buffer.putLong(missionObjId);
+ buffer.put(flag);
+ buffer.put(terminalType);
+
+ return buffer.flip();
+ }
+
+}
diff --git a/src/protocol/swg/objectControllerObjects/MissionListRequest.java b/src/protocol/swg/objectControllerObjects/MissionListRequest.java
new file mode 100644
index 00000000..6d1fa2f5
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/MissionListRequest.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+public class MissionListRequest extends ObjControllerObject {
+
+ private long objectId;
+ private long terminalId;
+ private int tickCount;
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ //Console.println("MissionListRequest: " + StringUtilities.bytesToHex(data.array()));
+ setObjectId(data.getLong());
+ data.getInt(); // unk
+ data.get(); // unk byte
+ setTickCount(data.get());
+ setTerminalId(data.getLong());
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ return null;
+ }
+
+ public long getObjectId() {
+ return objectId;
+ }
+
+ public void setObjectId(long objectId) {
+ this.objectId = objectId;
+ }
+
+ public long getTerminalId() {
+ return terminalId;
+ }
+
+ public void setTerminalId(long terminalId) {
+ this.terminalId = terminalId;
+ }
+
+ public int getTickCount() {
+ return tickCount;
+ }
+
+ public void setTickCount(int tickCount) {
+ this.tickCount = tickCount;
+ }
+
+}
diff --git a/src/protocol/swg/objectControllerObjects/NpcConversationMessage.java b/src/protocol/swg/objectControllerObjects/NpcConversationMessage.java
new file mode 100644
index 00000000..eceff19c
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/NpcConversationMessage.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.ObjControllerMessage;
+import resources.common.OutOfBand;
+
+public class NpcConversationMessage extends ObjControllerObject {
+
+ private long objectId;
+ private OutOfBand outOfBand;
+
+ public NpcConversationMessage(long objectId, OutOfBand outOfBand) {
+ this.objectId = objectId;
+ this.outOfBand = outOfBand;
+ outOfBand.setHeaderBytes(2);
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer outOfBandBuffer = outOfBand.serialize();
+ IoBuffer buffer = IoBuffer.allocate(16 + outOfBandBuffer.array().length).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.putInt(ObjControllerMessage.CONVERSATION_MESSAGE);
+ buffer.putLong(objectId);
+ buffer.putInt(0);
+ buffer.put(outOfBandBuffer.array());
+ return buffer.flip();
+ }
+
+}
diff --git a/src/protocol/swg/objectControllerObjects/NpcConversationOptions.java b/src/protocol/swg/objectControllerObjects/NpcConversationOptions.java
new file mode 100644
index 00000000..c9387ffa
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/NpcConversationOptions.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import java.nio.ByteOrder;
+import java.util.Vector;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import engine.resources.objects.Delta;
+import protocol.swg.ObjControllerMessage;
+import resources.common.ConversationOption;
+
+public class NpcConversationOptions extends ObjControllerObject {
+
+ private long objectId;
+ private Vector conversationOptions = new Vector();
+
+ public NpcConversationOptions(long objectId) {
+ this.objectId = objectId;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ }
+
+ public void addOption(ConversationOption option) {
+ conversationOptions.add(option);
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(17).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.setAutoExpand(true);
+ buffer.putInt(ObjControllerMessage.CONVERSATION_OPTIONS);
+ buffer.putLong(objectId);
+ buffer.putInt(0);
+ buffer.put((byte) conversationOptions.size());
+ for (ConversationOption option : conversationOptions) {
+ option.getOutOfBand().setHeaderBytes(2);
+ buffer.put(option.getOutOfBand().serialize().array());
+ }
+ return Delta.resizeBuffer(buffer);
+ }
+
+}
diff --git a/src/protocol/swg/objectControllerObjects/ObjectMenuRequest.java b/src/protocol/swg/objectControllerObjects/ObjectMenuRequest.java
index 85a2d464..901314b9 100644
--- a/src/protocol/swg/objectControllerObjects/ObjectMenuRequest.java
+++ b/src/protocol/swg/objectControllerObjects/ObjectMenuRequest.java
@@ -47,11 +47,9 @@ public class ObjectMenuRequest extends ObjControllerObject {
int listSize = buffer.getInt();
for(int i = 0; i < listSize; i++) {
RadialOptions radial = new RadialOptions();
- if(buffer.get() == 0) // option #
- return;
+ buffer.get();
radial.setParentId(buffer.get());
- radial.setOptionId(buffer.get());
- buffer.get();
+ radial.setOptionId(buffer.getShort());
radial.setOptionType(buffer.get());
int size = buffer.getInt();
if(size > 0) {
diff --git a/src/protocol/swg/objectControllerObjects/ObjectMenuResponse.java b/src/protocol/swg/objectControllerObjects/ObjectMenuResponse.java
index b4450dc9..fd833068 100644
--- a/src/protocol/swg/objectControllerObjects/ObjectMenuResponse.java
+++ b/src/protocol/swg/objectControllerObjects/ObjectMenuResponse.java
@@ -59,41 +59,31 @@ public class ObjectMenuResponse extends ObjControllerObject {
@Override
public IoBuffer serialize() {
+ int size = 37;
+ byte counter = 0;
- IoBuffer result = IoBuffer.allocate(100).order(ByteOrder.LITTLE_ENDIAN);
- result.setAutoExpand(true);
+ for (RadialOptions radialOption : radialOptions) {
+ size += 5 + getUnicodeString(radialOption.getDescription()).length;
+ }
+ IoBuffer result = IoBuffer.allocate(size).order(ByteOrder.LITTLE_ENDIAN);
result.putInt(ObjControllerMessage.OBJECT_MENU_RESPONSE);
result.putLong(ownerId);
result.putInt(0);
result.putLong(targetId);
result.putLong(ownerId);
-
- int size = radialOptions.size();
- result.putInt(size);
-
- if(size > 0) {
- byte counter = 1;
- for(RadialOptions radialOption : radialOptions) {
- result.put(counter++);
- result.put(radialOption.getParentId());
- result.putShort(radialOption.getOptionId());
- result.put(radialOption.getOptionType());
-
- if(radialOption.getDescription().length() > 0)
- result.put(getUnicodeString(radialOption.getDescription()));
- else
- result.putInt(0);
-
- }
+ result.putInt(radialOptions.size());
+ for (RadialOptions radialOption : radialOptions) {
+ result.put(++counter);
+ result.put(radialOption.getParentId());
+ result.putShort(radialOption.getOptionId());
+ //result.put(radialOption.getOptionType());
+ result.put((byte) 3);
+ result.put(getUnicodeString(radialOption.getDescription()));
}
-
result.put(radialCount);
- int packetSize = result.position();
- result = IoBuffer.allocate(packetSize).put(result.array(), 0, packetSize);
return result.flip();
-
}
}
diff --git a/src/protocol/swg/objectControllerObjects/Posture.java b/src/protocol/swg/objectControllerObjects/Posture.java
index c08ffaad..905a66b3 100644
--- a/src/protocol/swg/objectControllerObjects/Posture.java
+++ b/src/protocol/swg/objectControllerObjects/Posture.java
@@ -47,9 +47,9 @@ public class Posture extends ObjControllerObject {
result.putInt(ObjControllerMessage.POSTURE);
result.putLong(objectId);
- result.putInt(0); //unk
+ result.putInt(0); // tick count ?
result.put((byte) posture);
- result.put((byte) 0);
+ result.put((byte) 0); // seen also as 1
return result.flip();
}
diff --git a/src/protocol/swg/objectControllerObjects/SecureTrade.java b/src/protocol/swg/objectControllerObjects/SecureTrade.java
index e621072f..3f48253c 100644
--- a/src/protocol/swg/objectControllerObjects/SecureTrade.java
+++ b/src/protocol/swg/objectControllerObjects/SecureTrade.java
@@ -1,3 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
package protocol.swg.objectControllerObjects;
import java.nio.ByteOrder;
@@ -27,8 +48,7 @@ public class SecureTrade extends ObjControllerObject{
@Override
public IoBuffer serialize() {
- IoBuffer result = IoBuffer.allocate(100).order(ByteOrder.LITTLE_ENDIAN);
- result.setAutoExpand(true);
+ IoBuffer result = IoBuffer.allocate(40).order(ByteOrder.LITTLE_ENDIAN);
result.putInt(ObjControllerMessage.SPACIAL_CHAT);
result.putInt(1);
diff --git a/src/protocol/swg/objectControllerObjects/SetProfessionTemplate.java b/src/protocol/swg/objectControllerObjects/SetProfessionTemplate.java
new file mode 100644
index 00000000..f9c0bb77
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/SetProfessionTemplate.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+public class SetProfessionTemplate extends ObjControllerObject {
+
+ private String profession;
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ data.getLong();
+ data.getInt();
+ short size = data.getShort();
+ try {
+ profession = new String(ByteBuffer.allocate(size).put(data.array(), data.position(), size).array(), "US-ASCII");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ data.position(data.position() + size);
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getProfession() {
+ return profession;
+ }
+
+ public void setProfession(String profession) {
+ this.profession = profession;
+ }
+
+}
diff --git a/src/protocol/swg/objectControllerObjects/ShowFlyText.java b/src/protocol/swg/objectControllerObjects/ShowFlyText.java
index b4f73d31..71b32631 100644
--- a/src/protocol/swg/objectControllerObjects/ShowFlyText.java
+++ b/src/protocol/swg/objectControllerObjects/ShowFlyText.java
@@ -25,49 +25,29 @@ import java.nio.ByteOrder;
import org.apache.mina.core.buffer.IoBuffer;
+import engine.resources.common.RGB;
+import engine.resources.common.Stf;
import protocol.swg.ObjControllerMessage;
-import resources.common.RGB;
+import resources.common.OutOfBand;
public class ShowFlyText extends ObjControllerObject {
- private long recieverId;
+ private long receiverId;
private long objectId;
- private int unknownInt1;
- private short unknownShort1;
- private byte unknownByte1;
- private int unknownInt2;
- private String stfFile;
- private String stfString;
- private short unknownShort2;
+ private Stf stf;
+ private OutOfBand outOfBand;
private float scale;
private RGB color;
private int displayType;
- private boolean alternativeStructure;
- public ShowFlyText(long recieverId, long objectId, String stfFile, String stfString, float scale, RGB color, int displayType) {
- this.recieverId = recieverId;
+ public ShowFlyText(long receiverId, long objectId, String stf, OutOfBand outOfBand, float scale, RGB color, int displayType) {
+ this.receiverId = receiverId;
this.objectId = objectId;
- this.stfFile = stfFile;
- this.stfString = stfString;
+ this.stf = new Stf(stf);
+ this.outOfBand = outOfBand;
this.scale = scale;
this.color = color;
this.displayType = displayType;
- this.alternativeStructure = false;
- }
-
- public ShowFlyText(long recieverId, long objectId, int unknownInt1, int unknownShort1, int unknownByte1, int unknownInt2, String stfFile, String stfString, int unknownShort2, float scale, RGB color, int displayType) {
- this.recieverId = recieverId;
- this.objectId = objectId;
- this.unknownInt1 = unknownInt1;
- this.unknownShort1 = (short) unknownShort1;
- this.unknownByte1 = (byte) unknownByte1;
- this.unknownInt2 = unknownInt2;
- this.stfFile = stfFile;
- this.stfString = stfString;
- this.unknownShort2 = (short) unknownShort2;
- this.scale = scale;
- this.color = color;
- this.alternativeStructure = true;
}
@Override
@@ -78,51 +58,20 @@ public class ShowFlyText extends ObjControllerObject {
@Override
public IoBuffer serialize() {
- if (!alternativeStructure) {
- IoBuffer result = IoBuffer.allocate(47 + stfFile.length() + stfString.length()).order(ByteOrder.LITTLE_ENDIAN);
- result.setAutoExpand(true);
- result.putInt(ObjControllerMessage.SHOW_FLY_TEXT);
- result.putLong(recieverId);
- result.putInt(0);
- result.putLong(objectId);
- result.put(getAsciiString(stfFile));
- result.putInt(0);
- result.put(getAsciiString(stfString));
- result.putInt(0);
- result.putFloat(scale);
- result.put(color.getBytes());
- result.putInt(displayType);
- return result.flip();
- } else {
- IoBuffer result = IoBuffer.allocate(124 + stfFile.length() + stfString.length()).order(ByteOrder.LITTLE_ENDIAN);
- result.setAutoExpand(true);
- result.putInt(ObjControllerMessage.SHOW_FLY_TEXT);
- result.putLong(recieverId);
- result.putInt(0);
- result.putLong(objectId);
- result.putLong(0);
- result.putInt(unknownInt1);
- result.putShort(unknownShort1);
- result.put(unknownByte1);
- result.putInt(unknownInt2);
- result.put(getAsciiString(stfFile));
- result.putInt(0);
- result.put(getAsciiString(stfString));
- result.putLong(0);
- result.putLong(0);
- result.putLong(0);
- result.putLong(0);
- result.putLong(0);
- result.putLong(0);
- result.putLong(0);
- result.putInt(0);
- result.putShort((short) unknownShort2);
- result.putLong(0);
- result.putFloat(scale);
- result.put(color.getBytes());
- result.putInt(displayType);
- return result.flip();
- }
+ IoBuffer outOfBandBuffer = outOfBand.serialize();
+ IoBuffer result = IoBuffer.allocate(35 + outOfBandBuffer.array().length).order(ByteOrder.LITTLE_ENDIAN);
+ result.setAutoExpand(true);
+ result.putInt(ObjControllerMessage.SHOW_FLY_TEXT);
+ result.putLong(receiverId);
+ result.putInt(0);
+ result.putLong(objectId);
+ result.put(stf.getBytes());
+ result.put(outOfBandBuffer.array());
+ result.putFloat(scale);
+ result.put(color.getBytes());
+ result.putInt(displayType);
+ result.flip();
+ return result;
}
}
diff --git a/src/protocol/swg/objectControllerObjects/ShowLootBox.java b/src/protocol/swg/objectControllerObjects/ShowLootBox.java
new file mode 100644
index 00000000..c20121a3
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/ShowLootBox.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import java.nio.ByteOrder;
+import java.util.Vector;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import engine.resources.objects.SWGObject;
+import protocol.swg.ObjControllerMessage;
+
+public class ShowLootBox extends ObjControllerObject {
+
+ private long playerId;
+ private Vector rewards;
+ private SWGObject reward;
+
+ public ShowLootBox(long playerId, SWGObject reward) {
+ this.playerId = playerId;
+ this.reward = reward;
+ }
+
+ public ShowLootBox(long playerId, Vector rewards) {
+ this.playerId = playerId;
+ this.rewards = rewards;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer;
+
+ if (rewards != null)
+ buffer = IoBuffer.allocate(20 + (rewards.size() * 8)).order(ByteOrder.LITTLE_ENDIAN);
+
+ else
+ buffer = IoBuffer.allocate(28).order(ByteOrder.LITTLE_ENDIAN);
+
+ buffer.putInt(ObjControllerMessage.SHOW_LOOT_BOX);
+ buffer.putLong(playerId);
+
+ buffer.putInt(0); // 1 for a black background on icon, 0 or 2 for transparent (default)
+
+ if (rewards == null) {
+ buffer.putInt(1);
+ buffer.putLong(reward.getObjectId());
+ } else {
+ buffer.putInt(rewards.size());
+ for(SWGObject obj : rewards) {
+ buffer.putLong(obj.getObjectID());
+ }
+ }
+ return buffer.flip();
+ }
+
+}
diff --git a/src/protocol/swg/objectControllerObjects/SpatialChat.java b/src/protocol/swg/objectControllerObjects/SpatialChat.java
index 1d2ac34e..bf86de8f 100644
--- a/src/protocol/swg/objectControllerObjects/SpatialChat.java
+++ b/src/protocol/swg/objectControllerObjects/SpatialChat.java
@@ -26,12 +26,12 @@ import java.nio.ByteOrder;
import org.apache.mina.core.buffer.IoBuffer;
import protocol.swg.ObjControllerMessage;
+import resources.common.OutOfBand;
@SuppressWarnings("unused")
-
public class SpatialChat extends ObjControllerObject {
- private long audienceId;
+ private long destinationId;
private long sourceId;
private long targetId;
private String chatMessage;
@@ -40,15 +40,19 @@ public class SpatialChat extends ObjControllerObject {
private short balloonType = 1;
private short chatType;
private short moodId;
+ private byte languageId = 1;
+ private OutOfBand outOfBand;
- public SpatialChat(long sourceId, long targetId, String chatMessage, short chatType, short moodId) {
+ public SpatialChat(long destinationId, long sourceId, long targetId, String chatMessage, short chatType, short moodId, int languageId, OutOfBand outOfBand) {
try {
- this.audienceId = sourceId;
+ this.destinationId = destinationId;
this.sourceId = sourceId;
this.targetId = targetId;
this.chatMessage = chatMessage;
this.chatType = chatType;
this.moodId = moodId;
+ this.languageId = (byte) languageId;
+ this.outOfBand = ((outOfBand == null) ? new OutOfBand() : outOfBand);
/*String[] chatMessageParse = chatMessage.split(" ", 6);
@@ -62,19 +66,20 @@ public class SpatialChat extends ObjControllerObject {
}
}
- public void setDestinationId(long audienceId) {
- this.audienceId = audienceId;
+ public void setDestinationId(long destinationId) {
+ this.destinationId = destinationId;
}
-
+
public void deserialize(IoBuffer data) {
}
public IoBuffer serialize() {
- IoBuffer result = IoBuffer.allocate(55 + chatMessage.length() * 2).order(ByteOrder.LITTLE_ENDIAN);
-
+ outOfBand.setHeaderBytes(2);
+ IoBuffer outOfBandBuffer = outOfBand.serialize();
+ IoBuffer result = IoBuffer.allocate(51 + (chatMessage.length() * 2) + outOfBandBuffer.array().length).order(ByteOrder.LITTLE_ENDIAN);
result.putInt(ObjControllerMessage.SPACIAL_CHAT);
- result.putLong(audienceId);
+ result.putLong(destinationId);
result.putInt(0);
result.putLong(sourceId);
result.putLong(targetId);
@@ -83,11 +88,9 @@ public class SpatialChat extends ObjControllerObject {
result.putShort((short) 0x32);
result.putShort(chatType);
result.putShort(moodId);
- result.put((byte) 1);
-
+ result.put(languageId);
result.putInt(0);
- result.putInt(0);
-
+ result.put(outOfBandBuffer.array());
return result.flip();
}
diff --git a/src/protocol/swg/objectControllerObjects/StartNpcConversation.java b/src/protocol/swg/objectControllerObjects/StartNpcConversation.java
new file mode 100644
index 00000000..a696ca70
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/StartNpcConversation.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.ObjControllerMessage;
+
+public class StartNpcConversation extends ObjControllerObject {
+
+ private long npcId;
+ private long objectId;
+
+ public StartNpcConversation(long objectId, long npcId) {
+ this.objectId = objectId;
+ this.npcId = npcId;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(31).order(ByteOrder.LITTLE_ENDIAN);
+
+ buffer.putInt(ObjControllerMessage.START_CONVERSATION);
+ buffer.putLong(objectId);
+
+ buffer.putInt(0);
+ buffer.putLong(npcId);
+ buffer.putInt(0);
+ buffer.putShort((short) 0);
+ buffer.put((byte) 0);
+
+ return buffer.flip();
+ }
+
+}
diff --git a/src/protocol/swg/objectControllerObjects/StopNpcConversation.java b/src/protocol/swg/objectControllerObjects/StopNpcConversation.java
new file mode 100644
index 00000000..4690140d
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/StopNpcConversation.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.ObjControllerMessage;
+
+public class StopNpcConversation extends ObjControllerObject {
+
+ private long npcId;
+ private long objectId;
+ private String stfFile;
+ private String stfLabel;
+
+ public StopNpcConversation(long objectId, long npcId, String stfFile, String stfLabel) {
+ this.objectId = objectId;
+ this.npcId = npcId;
+ this.stfFile = stfFile;
+ this.stfLabel = stfLabel;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(40 + stfFile.length() + stfLabel.length()).order(ByteOrder.LITTLE_ENDIAN);
+
+ buffer.putInt(ObjControllerMessage.STOP_CONVERSATION);
+ buffer.putLong(objectId);
+
+ buffer.putInt(0);
+ buffer.putLong(npcId);
+ buffer.put(getAsciiString(stfFile));
+ buffer.putInt(0);
+ buffer.put(getAsciiString(stfLabel));
+ buffer.putLong(0);
+
+ return buffer.flip();
+ }
+}
diff --git a/src/protocol/swg/objectControllerObjects/TargetUpdate.java b/src/protocol/swg/objectControllerObjects/TargetUpdate.java
index bfac2b1b..bd01c8a8 100644
--- a/src/protocol/swg/objectControllerObjects/TargetUpdate.java
+++ b/src/protocol/swg/objectControllerObjects/TargetUpdate.java
@@ -39,7 +39,7 @@ public class TargetUpdate extends ObjControllerObject {
@Override
public IoBuffer serialize() {
- // TODO Auto-generated method stub
+
return null;
}
diff --git a/src/protocol/swg/objectControllerObjects/UiPlayEffect.java b/src/protocol/swg/objectControllerObjects/UiPlayEffect.java
new file mode 100644
index 00000000..a4b776fd
--- /dev/null
+++ b/src/protocol/swg/objectControllerObjects/UiPlayEffect.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package protocol.swg.objectControllerObjects;
+
+import java.nio.ByteOrder;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import protocol.swg.ObjControllerMessage;
+
+public class UiPlayEffect extends ObjControllerObject {
+
+ private long objectId;
+ private String uiString;
+
+ public UiPlayEffect(long objectId, String uiString) {
+ this.uiString = uiString;
+ this.objectId = objectId;
+ }
+
+ @Override
+ public void deserialize(IoBuffer data) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public IoBuffer serialize() {
+
+ IoBuffer result = IoBuffer.allocate(26 + uiString.length()).order(ByteOrder.LITTLE_ENDIAN);
+
+ result.putInt(ObjControllerMessage.UI_PLAY_EFFECT);
+ result.putLong(objectId);
+ result.putInt(0);
+ result.putLong(objectId);
+ result.put(getAsciiString(uiString));
+
+ return result.flip();
+
+ }
+}
diff --git a/src/resources/objects/Buff.java b/src/resources/buffs/Buff.java
similarity index 77%
rename from src/resources/objects/Buff.java
rename to src/resources/buffs/Buff.java
index c7ee85de..d845d423 100644
--- a/src/resources/objects/Buff.java
+++ b/src/resources/buffs/Buff.java
@@ -19,8 +19,9 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package resources.objects;
+package resources.buffs;
+import java.io.Serializable;
import java.nio.ByteOrder;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledFuture;
@@ -34,24 +35,24 @@ import org.apache.mina.core.buffer.SimpleBufferAllocator;
import resources.objects.creature.CreatureObject;
import com.sleepycat.persist.model.NotPersistent;
-import com.sleepycat.persist.model.Persistent;
-import engine.clientdata.ClientFileManager;
-import engine.clientdata.visitors.DatatableVisitor;
import engine.resources.common.CRC;
+import engine.resources.objects.IDelta;
+import engine.resources.objects.SWGObject;
-@Persistent(version=6)
-public class Buff implements IListObject {
+public class Buff implements IDelta, Serializable {
+ private static final long serialVersionUID = 1L;
@NotPersistent
- private SimpleBufferAllocator bufferPool = new SimpleBufferAllocator();
- private String group1;
+ private transient static SimpleBufferAllocator bufferPool = new SimpleBufferAllocator();
+ private String group1, group2;
private int priority;
private float duration;
private String buffName;
private long ownerId;
private String effect1Name, effect2Name, effect3Name, effect4Name, effect5Name;
private float effect1Value, effect2Value, effect3Value, effect4Value, effect5Value;
+ private String callback;
private String particleEffect;
private boolean isDebuff;
private boolean removeOnDeath;
@@ -65,14 +66,46 @@ public class Buff implements IListObject {
private int totalPlayTime;
private byte decayCounter = 0;
@NotPersistent
- private ScheduledFuture> removalTask;
+ private transient ScheduledFuture> removalTask;
private int stacks = 1;
+ private long groupBufferId;
+ private int buffCRC;
- public Buff(String buffName, long ownerId) {
+ public Buff(Buff baseBuff, long ownerId) {
+ this.buffName = baseBuff.getBuffName();
+ this.buffCRC = baseBuff.getBuffCRC();
+ this.group1 = baseBuff.getGroup1();
+ this.group2 = baseBuff.getGroup2();
+ this.priority = baseBuff.getPriority();
+ this.duration = baseBuff.getDuration();
+ this.effect1Name = baseBuff.getEffect1Name();
+ this.effect1Value = baseBuff.getEffect1Value();
+ this.effect2Name = baseBuff.getEffect2Name();
+ this.effect2Value = baseBuff.getEffect2Value();
+ this.effect3Name = baseBuff.getEffect3Name();
+ this.effect3Value = baseBuff.getEffect3Value();
+ this.effect4Name = baseBuff.getEffect4Name();
+ this.effect4Value = baseBuff.getEffect4Value();
+ this.effect5Name = baseBuff.getEffect5Name();
+ this.effect5Value = baseBuff.getEffect5Value();
+ this.callback = baseBuff.getCallback();
+ this.particleEffect = baseBuff.getParticleEffect();
+ this.isDebuff = baseBuff.isDebuff();
+ this.removeOnDeath = baseBuff.isRemoveOnDeath();
+ this.isRemovableByPlayer = baseBuff.isRemovableByPlayer();
+ this.maxStacks = baseBuff.getMaxStacks();
+ this.isPersistent = baseBuff.isPersistent();
+ this.removeOnRespec = baseBuff.isRemoveOnRespec();
+ this.aiRemoveOnEndCombat = baseBuff.isAiRemoveOnEndCombat();
+ this.decayOnPvPDeath = baseBuff.isDecayOnPvPDeath();
+ }
+
+ /*public Buff(String buffName, long ownerId) {
this.buffName = buffName;
this.ownerId = ownerId;
-
+ this.buffCRC = CRC.StringtoCRC(buffName);
+
DatatableVisitor visitor;
try {
@@ -84,6 +117,7 @@ public class Buff implements IListObject {
if(((String) visitor.getObject(i, 0)).equalsIgnoreCase(buffName)) {
group1 = (String) visitor.getObject(i, 1);
+ group2 = (String) visitor.getObject(i, 2);
priority = (int) visitor.getObject(i, 4);
duration = (Float) visitor.getObject(i, 6);
effect1Name = (String) visitor.getObject(i, 7);
@@ -96,6 +130,7 @@ public class Buff implements IListObject {
effect4Value = (Float) visitor.getObject(i, 14);
effect5Name = (String) visitor.getObject(i, 15);
effect5Value = (Float) visitor.getObject(i, 16);
+ callback = (String) visitor.getObject(i, 18);
particleEffect = (String) visitor.getObject(i, 19);
isDebuff = (Boolean) visitor.getObject(i, 22);
removeOnDeath = (Integer) visitor.getObject(i, 25) != 0;
@@ -113,14 +148,16 @@ public class Buff implements IListObject {
} catch (InstantiationException | IllegalAccessException e) {
e.printStackTrace();
}
-
-
+ }*/
+ public Buff() { }
+
+ @Override
+ public void init(SWGObject object) {
+ // TODO Auto-generated method stub
}
- public Buff() { }
-
@Override
public byte[] getBytes() {
@@ -153,7 +190,7 @@ public class Buff implements IListObject {
this.group1 = group1;
}
- public float getPriority() {
+ public int getPriority() {
return priority;
}
@@ -264,6 +301,14 @@ public class Buff implements IListObject {
public void setEffect5Value(float effect5Value) {
this.effect5Value = effect5Value;
}
+
+ public String getCallback() {
+ return callback;
+ }
+
+ public void setCallback(String callback) {
+ this.callback = callback;
+ }
public String getParticleEffect() {
return particleEffect;
@@ -416,5 +461,33 @@ public class Buff implements IListObject {
public void setStacks(int stacks) {
this.stacks = stacks;
}
+
+ public boolean isGroupBuff() {
+ return effect1Name == null ? false : effect1Name.equals("group");
+ }
+ public long getGroupBufferId() {
+ return groupBufferId;
+ }
+
+ public void setGroupBufferId(long groupBufferId) {
+ this.groupBufferId = groupBufferId;
+ }
+
+ public String getGroup2() {
+ return group2;
+ }
+
+ public void setGroup2(String group2) {
+ this.group2 = group2;
+ }
+
+ public int getBuffCRC() {
+ return buffCRC;
+ }
+
+ public void setBuffCRC(int buffCRC) {
+ this.buffCRC = buffCRC;
+ }
+
}
diff --git a/src/resources/buffs/BuffItem.java b/src/resources/buffs/BuffItem.java
new file mode 100644
index 00000000..0c46f9ce
--- /dev/null
+++ b/src/resources/buffs/BuffItem.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.buffs;
+
+import java.io.Serializable;
+
+public class BuffItem implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+ private int affectAmount;
+ private int entertainerBonus;
+ private int invested;
+ private String skillName;
+
+ public BuffItem() {
+
+ }
+
+ public BuffItem(String skillName, int invested, int entBonus) {
+ this.skillName = skillName;
+ this.invested = invested;
+ this.entertainerBonus = entBonus;
+ }
+
+ public int getAffectAmount() {
+ return affectAmount;
+ }
+
+ public int getEntertainerBonus() {
+ return entertainerBonus;
+ }
+
+ public int getInvested() {
+ return invested;
+ }
+
+ public String getSkillName() {
+ return skillName;
+ }
+
+ public void setAffectAmount(int amount) {
+ this.affectAmount = amount;
+ }
+
+ public void setEntertainerBonus(int entertainerBonus) {
+ this.entertainerBonus = entertainerBonus;
+ }
+
+ public void setInvested(int invested) {
+ this.invested = invested;
+ }
+
+ public void setSkillName(String skillName) {
+ this.skillName = skillName;
+ }
+}
diff --git a/src/resources/objects/DamageOverTime.java b/src/resources/buffs/DamageOverTime.java
similarity index 93%
rename from src/resources/objects/DamageOverTime.java
rename to src/resources/buffs/DamageOverTime.java
index ce367916..fcd91ad5 100644
--- a/src/resources/objects/DamageOverTime.java
+++ b/src/resources/buffs/DamageOverTime.java
@@ -19,22 +19,22 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package resources.objects;
+package resources.buffs;
+import java.io.Serializable;
import java.util.concurrent.ScheduledFuture;
import com.sleepycat.persist.model.NotPersistent;
-import com.sleepycat.persist.model.Persistent;
-@Persistent(version=1)
-public class DamageOverTime {
+public class DamageOverTime implements Serializable {
+ private static final long serialVersionUID = 1L;
private Buff buff;
private String type;
private int duration;
private int intensity;
@NotPersistent
- private ScheduledFuture> task;
+ private transient ScheduledFuture> task;
private long startTime;
private String commandName;
diff --git a/src/resources/common/AnimationType.java b/src/resources/common/AnimationType.java
new file mode 100644
index 00000000..b0bd9a17
--- /dev/null
+++ b/src/resources/common/AnimationType.java
@@ -0,0 +1,35 @@
+package resources.common;
+
+public class AnimationType {
+ public static String Explain = "explain";
+ public static String NodHeadOnce = "nod_head_once";
+ public static String Bow = "bow";
+ public static String Wave1 = "wave1";
+ public static String Beckon = "beckon";
+ public static String Dive = "dive";
+ public static String HitLight = "get_hit_light";
+ public static String HitLightHighCenter = "get_hit_light_high_center";
+ public static String HitHighLightHighLeft = "get_hit_light_high_left";
+ public static String HitLightHighRight = "get_hit_light_high_right";
+ public static String HitLightLowLeft = "get_hit_light_low_left";
+ public static String HitLightLowRight = "get_hit_light_low_right";
+ public static String HitLightMidCenter = "get_hit_light_mid_center";
+ public static String HitLightMidLeft = "get_hit_light_mid_left";
+ public static String HitLightMidRight = "get_hit_light_mid_right";
+ public static String HitMedium = "get_hit_medium";
+ public static String HitMediumHighCenter = "get_hit_medium_high_center";
+ public static String HitMediumHighLeft = "get_hit_medium_high_left";
+ public static String HitMediumHighRight = "get_hit_medium_high_right";
+ public static String HitMediumLowLeft = "get_hit_medium_low_left";
+ public static String HitMediumLowRight = "get_hit_medium_low_right";
+ public static String HitMediumMidCenter = "get_hit_medium_mid_center";
+ public static String HitMediumMidLeft = "get_hit_medium_mid_left";
+ public static String HitMediumMidRight = "get_hit_medium_mid_right";
+ public static String HealOther = "heal_other";
+ public static String HealSelf = "heal_self";
+ public static String HurryToKneeling = "hurry_to_kneeling";
+ public static String HurryToProne = "hurry_to_prone";
+ public static String HurryToStanding = "hurry_to_standing";
+ public static String Throw = "throw";
+ public static String TumbleToStanding = "tumble_to_standing";
+}
diff --git a/src/resources/common/BountyListItem.java b/src/resources/common/BountyListItem.java
new file mode 100644
index 00000000..3b09ec0f
--- /dev/null
+++ b/src/resources/common/BountyListItem.java
@@ -0,0 +1,135 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.common;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.sleepycat.persist.model.Entity;
+import com.sleepycat.persist.model.PrimaryKey;
+
+@Entity(version=1)
+public class BountyListItem implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+ @PrimaryKey
+ private long objectID;
+ private int creditReward;
+ private String profession;
+ private String faction;
+ private String name;
+ private List assignedHunters;
+ private List bountyPlacers;
+ private int failedAttempts;
+
+ public BountyListItem() { }
+
+ public BountyListItem(long objectID, int creditReward, String profession, String faction, String name) {
+ this.objectID = objectID;
+ this.creditReward = creditReward;
+ this.profession = profession;
+ this.faction = faction;
+ this.setName(name);
+ this.setAssignedHunters(new ArrayList(3));
+ this.setBountyPlacers(new ArrayList());
+ }
+
+ public long getObjectID() {
+ return objectID;
+ }
+ public void setObjectID(long objectID) {
+ this.objectID = objectID;
+ }
+ public int getCreditReward() {
+ return creditReward;
+ }
+ public void setCreditReward(int creditReward) {
+ this.creditReward = creditReward;
+ }
+ public String getProfession() {
+ return profession;
+ }
+ public void setProfession(String profession) {
+ this.profession = profession;
+ }
+
+ public String getFaction() {
+ return faction;
+ }
+
+ public void setFaction(String faction) {
+ this.faction = faction;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void addBounty(int amountToAdd) {
+ this.creditReward += amountToAdd;
+ }
+
+ public void deductBounty(int amountToDeduct) {
+ this.creditReward = this.creditReward - amountToDeduct;
+ }
+
+ public List getAssignedHunters() {
+ return assignedHunters;
+ }
+
+ public void setAssignedHunters(List assignedHunters) {
+ this.assignedHunters = assignedHunters;
+ }
+
+ public void addBountyHunter(long objectId) {
+ assignedHunters.add(objectId);
+ }
+
+ public void removeBountyHunter(long objectId) {
+ assignedHunters.remove(objectId);
+ }
+
+ public List getBountyPlacers() {
+ return bountyPlacers;
+ }
+
+ public void setBountyPlacers(List bountyPlacers) {
+ this.bountyPlacers = bountyPlacers;
+ }
+
+ public int getFailedAttempts() {
+ return failedAttempts;
+ }
+
+ public void setFailedAttempts(int failedAttempts) {
+ this.failedAttempts = failedAttempts;
+ }
+
+ public void incrementFailedAttempts() {
+ this.failedAttempts += 1;
+ }
+}
\ No newline at end of file
diff --git a/src/resources/common/BuffBuilder.java b/src/resources/common/BuffBuilder.java
new file mode 100644
index 00000000..83b2d9fb
--- /dev/null
+++ b/src/resources/common/BuffBuilder.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.common;
+
+public class BuffBuilder {
+ private int affectAmount;
+ private String category;
+ private int cost;
+ private int maxTimesApplied;
+ private String requiredExpertise;
+ private String statAffects;
+ private String statName;
+
+ public BuffBuilder() {
+
+ }
+
+ public int getAffectAmount() {
+ return affectAmount;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public int getCost() {
+ return this.cost;
+ }
+
+ public int getMaxTimesApplied() {
+ return maxTimesApplied;
+ }
+
+ public String getRequiredExpertise() {
+ return requiredExpertise;
+ }
+
+ public String getStatAffects() {
+ return statAffects;
+ }
+
+ public String getStatName() {
+ return statName;
+ }
+
+ public void setAffectAmount(int affectAmount) {
+ this.affectAmount = affectAmount;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public void setCost(int cost) {
+ this.cost = cost;
+ }
+
+ public void setMaxTimesApplied(int maxTimesApplied) {
+ this.maxTimesApplied = maxTimesApplied;
+ }
+
+ public void setRequiredExpertise(String requiredExpertise) {
+ this.requiredExpertise = requiredExpertise;
+ }
+
+ public void setStatAffects(String statAffects) {
+ this.statAffects = statAffects;
+ }
+
+ public void setStatName(String statName) {
+ this.statName = statName;
+ }
+}
diff --git a/src/resources/common/Console.java b/src/resources/common/Console.java
new file mode 100644
index 00000000..770eb5b2
--- /dev/null
+++ b/src/resources/common/Console.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.common;
+
+import java.util.Calendar;
+
+public class Console {
+
+ public static void println(String string) {
+ Calendar cal = Calendar.getInstance();
+ System.out.println(cal.getTime() + ": " + string);
+ }
+
+ public static void print(String string) {
+ Calendar cal = Calendar.getInstance();
+ System.out.print(cal.getTime() + ": " + string);
+ }
+
+}
diff --git a/src/resources/common/ConversationOption.java b/src/resources/common/ConversationOption.java
new file mode 100644
index 00000000..840fdcba
--- /dev/null
+++ b/src/resources/common/ConversationOption.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.common;
+
+public class ConversationOption {
+
+ private OutOfBand outOfBand;
+ private int index;
+
+ public ConversationOption(OutOfBand outOfBand, int index) {
+ this.setOutOfBand(outOfBand);
+ this.setIndex(index);
+ }
+
+ public OutOfBand getOutOfBand() {
+ return outOfBand;
+ }
+
+ public void setOutOfBand(OutOfBand outOfBand) {
+ this.outOfBand = outOfBand;
+ }
+
+ public int getIndex() {
+ return index;
+ }
+
+ public void setIndex(int index) {
+ this.index = index;
+ }
+
+}
diff --git a/src/resources/common/Forager.java b/src/resources/common/Forager.java
new file mode 100644
index 00000000..71874a78
--- /dev/null
+++ b/src/resources/common/Forager.java
@@ -0,0 +1,515 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.common;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+import java.util.Vector;
+
+import engine.resources.objects.SWGObject;
+import engine.resources.scene.Point3D;
+import main.NGECore;
+import resources.datatables.DisplayType;
+import resources.datatables.Options;
+import resources.loot.LootGroup;
+import resources.objects.creature.CreatureObject;
+import resources.objects.group.GroupObject;
+import resources.objects.tangible.TangibleObject;
+import services.ai.AIActor;
+
+/**
+ * @author Charon
+ */
+
+public class Forager {
+
+ public static final int LYASE_ENZYME = 0;
+ public static final int RARE_COMPONENT = 1;
+ public static final int INSECT_BAIT = 2;
+ public static final int GRUB_BAIT = 3;
+ public static final int WORM_BAIT = 4;
+ public static final int MYSTERIOUS_DATA_DISC = 5;
+
+ private int[] mapPlanetIDs = new int[]{6,7,8};
+
+ // consider foraged food food/foraged
+ // tangible/item/treasure_map/shared_relic_buff_s01.iff
+
+ public Forager(){
+
+ }
+
+ public boolean handleForageResults(CreatureObject forager){
+ // determine foraged object
+ SWGObject foragerInventory = forager.getSlottedObject("inventory");
+
+
+ // you can use Kommerken Steak food which increases your
+ // foraging chance by 12% and gives you a
+ // 5% bonus chance of finding a treasure map.
+
+ int randomForageRoll = new Random().nextInt(100);
+ int randomForageObjectRoll = new Random().nextInt(100);
+ int remainder = 0;
+ int forageResultChance = 100;
+ int kommerkenBonus = 0;
+
+ int[] forageChances = new int[]{10,10,25,25,25,5};
+ int[] forageChances2 = new int[]{12,10,21,23,24,10}; // Kommerken Steak
+ int[] forageChances3 = new int[]{20,9,22,22,22,5}; // if you got the pig
+
+
+ int chosenObject = 0;
+
+// if (forager.hasChuckedIn(KommerkenSteak)){
+// kommerkenBonus = 12;
+// forageChances = forageChances2;
+// }
+
+// if (forager.gotThePig(pig)){
+// forageChances = forageChances3;
+//}
+ //forager.sendSystemMessage("randomForageRoll " + randomForageRoll,(byte) 0);
+ if (randomForageRoll=80){
+ chosenObject = 6;
+ forager.sendSystemMessage("@skl_use:sys_forage_noroom",(byte) 0);
+ }
+
+ // chosenObject = 5; // To test TMs
+ if(forager.getClient().isGM()) // Always yield a TM for testing
+ chosenObject = 5;
+
+ //forager.sendSystemMessage("chosenObject " + chosenObject,(byte) 0);
+ switch (chosenObject) {
+
+ case LYASE_ENZYME: String template = "object/tangible/loot/beast/shared_enzyme_2.iff";
+ TangibleObject foragedObject = (TangibleObject) NGECore.getInstance().objectService.createObject(template, forager.getPlanet());
+ // determine color here
+ foragedObject.setCustomizationVariable("/private/index_color_1", (byte) new Random().nextInt(10)); // edb_vial.pal
+ foragerInventory.add(foragedObject);
+ forager.sendSystemMessage("",(byte) 0);
+ break;
+
+ case RARE_COMPONENT: template = "object/tangible/loot/beast/shared_enzyme_1.iff"; // for now, must find temp
+ foragedObject = (TangibleObject) NGECore.getInstance().objectService.createObject(template, forager.getPlanet());
+ foragerInventory.add(foragedObject);
+ forager.sendSystemMessage("",(byte) 0);
+ break;
+
+ case INSECT_BAIT: template = "object/tangible/fishing/bait/shared_bait_insect.iff";
+ foragedObject = (TangibleObject) NGECore.getInstance().objectService.createObject(template, forager.getPlanet());
+ foragerInventory.add(foragedObject);
+ forager.sendSystemMessage("",(byte) 0);
+ break;
+
+ case GRUB_BAIT: template = "object/tangible/fishing/bait/shared_bait_grub.iff";
+ foragedObject = (TangibleObject) NGECore.getInstance().objectService.createObject(template, forager.getPlanet());
+ foragerInventory.add(foragedObject);
+ forager.sendSystemMessage("",(byte) 0);
+ break;
+
+ case WORM_BAIT: template = "object/tangible/fishing/bait/shared_bait_worm.iff";
+ foragedObject = (TangibleObject) NGECore.getInstance().objectService.createObject(template, forager.getPlanet());
+ foragerInventory.add(foragedObject);
+ forager.sendSystemMessage("",(byte) 0);
+ break;
+
+ case MYSTERIOUS_DATA_DISC: template = "object/tangible/loot/generic_usable/shared_datadisk_generic.iff";
+ foragedObject = (TangibleObject) NGECore.getInstance().objectService.createObject(template, forager.getPlanet());
+ foragedObject.setCustomName(getLevelDependentMapName(forager.getLevel()));
+ foragedObject.setAttachment("MapLevel", forager.getLevel());
+ foragedObject.setAttachment("MapSTFName", getLevelDependentSTFName(forager.getLevel()));
+ int mapPlanetID = new Random().nextInt(mapPlanetIDs.length-1);
+ foragedObject.setAttachment("MapPlanet", mapPlanetIDs[mapPlanetID]);
+ //System.out.println("mapPlanetID " + mapPlanetIDs[mapPlanetID]);
+ foragedObject.setAttachment("radial_filename", "object/treasuremap");
+ //foragedObject.setAttachment("radial_filename", "object/treasuremapExtract");
+ foragerInventory.add(foragedObject);
+ forager.sendSystemMessage("",(byte) 0);
+ break;
+
+ default: break;
+ ///object/tangible/treasure_map/shared_treasure_map_base.iff shared_treasure_map_quest.iff
+ }
+
+ if (chosenObject<6)
+ forager.sendSystemMessage("@skl_use:sys_forage_success",(byte) 0);
+
+ // spawn adversaries
+ int adversaryRoll = new Random().nextInt(100);
+ // A new buff is imaginable that would decrease the chance of running into adversaries here, just an idea
+
+ if (chosenObject>6)
+ adversaryRoll=999;
+
+ // adversaryRoll=999; // To test TMs
+
+ if (adversaryRoll<14) { // 14 100 // To test TMs
+ int adversaryTypeRoll = new Random().nextInt(100);
+ if (adversaryTypeRoll<50){
+ // wormie
+ spawnWormie(forager);
+ } else {
+ // goon
+ spawnGoon(forager);
+ }
+ }
+
+ } else {
+ forager.sendSystemMessage("@skl_use:sys_forage_fail",(byte) 0);
+
+ }
+
+ return true;
+ }
+
+ private String getLevelDependentMapName(int level){
+ if (level>=1 && level<=10)
+ return "Mysterious Data Disk (Adventurer's Treasure)";
+ if (level>=11 && level<=20)
+ return "Mysterious Data Disk (Villager's Hidden Savings)";
+ if (level>=21 && level<=30)
+ return "A map to a Trader's Hidden Treasure";
+ if (level>=31 && level<=40)
+ return "A map to a Bounty Hunter's Hidden Stash";
+ if (level>=41 && level<=50)
+ return "A droid's data disk with map coordinates";
+ if (level>=51 && level<=60)
+ return "A map to a Jedi Knight's body";
+ if (level>=61 && level<=70)
+ return "A map to Jedi Artifacts";
+ if (level>=71 && level<=80)
+ return "A map to a cursed item";
+ if (level>=81 && level<=90)
+ return "Mysterious Data Disk (Mysterious Container) ";
+ return "";
+ }
+
+ private String getLevelDependentSTFName(int level){
+ if (level>=1 && level<=10)
+ return "treasure_guard_adventurer";
+ if (level>=11 && level<=20)
+ return "treasure_guard_villager";
+ if (level>=21 && level<=30)
+ return "treasure_guard_trader";
+ if (level>=31 && level<=40)
+ return "treasure_guard_bounty_hunter";
+ if (level>=41 && level<=50)
+ return "treasure_guard_droid";
+ if (level>=51 && level<=60)
+ return "treasure_guard_padawan";
+ if (level>=61 && level<=70)
+ return "treasure_guard_jedi";
+ if (level>=71 && level<=80)
+ return "treasure_guard_jedi_elder";
+ if (level>=81 && level<=90)
+ return "treasure_guard_jedi_elite";
+ return "";
+ }
+
+
+
+
+
+
+ public void spawnWormie(CreatureObject forager){
+ int level = forager.getLevel();
+ String name = "";
+ Point3D wormiePosition = SpawnPoint.getRandomPosition(forager.getPosition(), 1, 6, forager.getPlanetId());
+ CreatureObject wormie = NGECore.getInstance().spawnService.spawnCreature("forage_worm", forager.getPlanet().getName(), 0L, wormiePosition.x, wormiePosition.y, wormiePosition.z, (short)level);
+ switch (wormie.getTemplate()) {
+
+ case "object/mobile/shared_col_forage_aggravated_worm.iff":
+ name = "An Aggravated Worm";
+ break;
+
+ case "object/mobile/shared_col_forage_angry_worm.iff":
+ name = "An Angry Worm";
+ break;
+
+ case "object/mobile/shared_col_forage_brutal_worm.iff":
+ name = "A Brutal Worm";
+ break;
+
+ case "object/mobile/shared_col_forage_carnivorous_worm.iff":
+ name = "A Carnivorous Worm";
+ break;
+
+ case "object/mobile/shared_col_forage_ferocious_worm.iff":
+ name = "A Ferocious Worm";
+ break;
+
+ case "object/mobile/shared_col_forage_fierce_worm.iff":
+ name = "A Fierce Worm";
+ break;
+
+ case "object/mobile/shared_col_forage_hungry_worm.iff":
+ name = "A Hungry Worm";
+ break;
+
+ case "object/mobile/shared_col_forage_oozing_worm.iff":
+ name = "An Oozing Worm";
+ break;
+
+ case "object/mobile/shared_col_forage_savage_worm.iff":
+ name = "A Savage Worm";
+ break;
+
+ case "object/mobile/shared_col_forage_territorial_worm.iff":
+ name = "A Territorial Worm";
+ break;
+ }
+ wormie.setCustomName(name);
+ wormie.setLevel(forager.getLevel());
+ wormie.setOptions(Options.AGGRESSIVE, true);
+ wormie.setOptions(Options.ATTACKABLE, true);
+ AIActor actor = (AIActor) wormie.getAttachment("AI");
+ actor.addDefender(forager);
+ }
+
+ public void spawnGoon(CreatureObject forager){
+ System.out.println("GOON");
+ int level = forager.getLevel();
+ String name = "";
+ Point3D wormiePosition = SpawnPoint.getRandomPosition(forager.getPosition(), 1, 6, forager.getPlanetId());
+ CreatureObject goon = NGECore.getInstance().spawnService.spawnCreature("forage_goon", forager.getPlanet().getName(), 0L, wormiePosition.x, wormiePosition.y, wormiePosition.z, (short)level);
+ // thief wookie criminal scavenger @forage_enemy:bark_thief
+ String barkString = "";
+
+ switch (goon.getTemplate()) {
+
+ case "object/mobile/shared_dressed_criminal_assassin_human_female_01.iff":
+ name = "A criminal";
+ barkString = "bark_criminal";
+ break;
+
+ case "object/mobile/shared_dressed_criminal_assassin_human_male_01.iff":
+ name = "A Scavenger";
+ barkString = "bark_scavenger";
+ break;
+
+ case "object/mobile/shared_twilek_male.iff":
+ name = "A Thief";
+ barkString = "bark_thief";
+ break;
+
+ case "object/mobile/shared_dressed_binayre_pirate_zabrak_male_01.iff":
+ name = "A Pirate";
+ barkString = "bark_thief";
+ break;
+
+ case "object/mobile/shared_dressed_borvos_thug.iff":
+ name = "A Thug";
+ barkString = "bark_criminal";
+ break;
+
+ case "object/mobile/shared_wookiee_male.iff":
+ name = "A Thug";
+ barkString = "bark_wookiee";
+ break;
+
+ }
+
+ goon.addObserver(forager);
+ goon.setCustomName(name);
+ goon.setLevel(forager.getLevel());
+ goon.setOptions(Options.AGGRESSIVE, true);
+ goon.setOptions(Options.ATTACKABLE, true);
+ AIActor actor = (AIActor) goon.getAttachment("AI");
+ actor.addDefender(forager);
+ forager.sendSystemMessage("@foraging/forage_enemy:" + barkString, DisplayType.Broadcast);
+ //OutOfBand oob = OutOfBand.ProsePackage("@foraging/forage_enemy:" + barkString));
+ OutOfBand oob = OutOfBand.ProsePackage("@jawa_trader:cant_understand");
+ forager.sendSystemMessage("@jawa_trader:cant_understand", DisplayType.Broadcast);
+ NGECore.getInstance().chatService.spatialChat(goon, forager, "", (short)0x0, (short)0x0, 1, oob);
+ }
+
+ public void handleGuardSpawn(CreatureObject owner, TangibleObject map){
+ System.err.println("handleGuardSpawn");
+ short spawnLevel = (short) map.getAttachment("MapLevel");
+ //Point3D exactTreasureLocation = (Point3D) map.getAttachment("MapExactLocation");
+ Point3D exactTreasureLocation = owner.getPosition();
+
+ GroupObject extractorGroup = null;
+ if (owner.getGroupId()!=0)
+ extractorGroup = (GroupObject) NGECore.getInstance().objectService.getObject(owner.getGroupId());
+
+ int extractorGroupSize = 1;
+ if (extractorGroup!=null)
+ extractorGroupSize = extractorGroup.getMemberList().size();
+
+ int guardSpawnNumber = 2 + extractorGroupSize;
+ Vector guardList = new Vector();
+ for (int i=0;i guardList = (Vector) treasureContainer.getAttachment("TreasureGuards");
+ int aliveCount = 0;
+ for (CreatureObject guard:guardList){
+ if (guard.getPosture()!=14 && guard.getPosture()!=15)
+ aliveCount++;
+ }
+ return aliveCount;
+ }
+
+
+
+ public void configureTreasureLoot(TangibleObject treasureContainer, CreatureObject owner, short spawnLevel){
+ List lootgroups = new ArrayList();
+
+ String levelRange = "61";
+
+ if (spawnLevel>60 && spawnLevel<=70){
+ levelRange = "61";
+ }
+ if (spawnLevel>70 && spawnLevel<=80){
+ levelRange = "75";
+ }
+ if (spawnLevel>80 && spawnLevel<=90){
+ levelRange = "85";
+ }
+
+
+ // PROFESSION BRACELETS HOUSE FURNITURE WEARABLE BACKPACKS
+// String[] lootPoolNames = new String[]{"profession_bracelets_"+levelRange,"house_furniture","wearable_backpacks"};
+// double[] lootPoolChances = new double[]{60,30,10};
+ String[] lootPoolNames = new String[]{"profession_bracelets_"+levelRange};
+ double[] lootPoolChances = new double[]{100};
+ double lootGroupChance = 80;
+ treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance);
+
+ // WEAPONSMITH COMPONENTS JEDI COMPONENTS GEM COLLECTION ITEMS TREASURE HUNTER COLLECTION ITEMS
+ //lootPoolNames = new String[]{"weaponsmith_components","jedi_components","gem_collection_items","treasure_hunter_collection_items"};
+ //lootPoolChances = new double[]{15,25,30,30};
+ lootPoolNames = new String[]{"jedi_components_treasure"};
+ lootPoolChances = new double[]{100};
+ lootGroupChance = 80;
+ treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance);
+
+ // COMMON LOOTS:
+// Looted non-wearable Bounty Hunter armor pieces (Used to make Mandalorian armor at the Death Watch Bunker)
+// Looted clothing (usually 20+)
+// Looted armors (usually 20+)
+// Looted weapons (700-800 DPS(Sometimes less, now includes the Nak'tra Crystal Rifle))
+// Advanced Agility Stim (CL80)
+// Advanced Power Stim (CL80)
+// Loot kits adhesives
+// Various Schematics
+// lootPoolNames = new String[]{"bh_armor_for_mando","advanced_stims_80","loot_kits_adhesives","various_schematics"};
+// lootPoolChances = new double[]{15,25,30,30};
+// lootGroupChance = 80;
+// treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance);
+//
+
+ //GEM COLLECTION ITEMS CONSUMABLE BUFF ITEMS
+
+ // VERY RARE BUFF ITEMS
+ lootPoolNames = new String[]{"rare_buff_items"};
+ lootPoolChances = new double[]{100};
+ lootGroupChance = 0.1;
+ treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance);
+
+ // EXTRA
+ lootPoolNames = new String[]{"treasure_extra"};
+ lootPoolChances = new double[]{100};
+ lootGroupChance = 50;
+ treasureContainer.addToLootGroups(lootPoolNames, lootPoolChances, lootGroupChance);
+
+ }
+
+}
diff --git a/src/resources/common/IDAttribute.java b/src/resources/common/IDAttribute.java
new file mode 100644
index 00000000..b17edf9d
--- /dev/null
+++ b/src/resources/common/IDAttribute.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.common;
+
+public class IDAttribute {
+
+ private float floatValue;
+ private String name;
+ private int value;
+
+ public IDAttribute() { }
+
+ public float getFloatValue() {
+ return floatValue;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public void setFloatValue(float floatValue) {
+ this.floatValue = floatValue;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setValue(int value) {
+ this.value = value;
+ }
+
+}
\ No newline at end of file
diff --git a/src/resources/common/MathUtilities.java b/src/resources/common/MathUtilities.java
new file mode 100644
index 00000000..8decf30b
--- /dev/null
+++ b/src/resources/common/MathUtilities.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.common;
+
+import java.math.BigDecimal;
+
+import engine.resources.scene.*;
+
+public class MathUtilities {
+
+ public static Quaternion rotateQuaternion(Quaternion quaternion, float radians, Point3D axis) {
+
+ float sin = (float) Math.sin(radians / 2);
+
+ Quaternion rotateQ = new Quaternion((float) Math.cos(radians / 2), axis.x * sin, axis.y * sin, axis.z * sin);
+
+ return multiplyQuaternions(rotateQ, quaternion);
+
+ }
+
+ public static Quaternion multiplyQuaternions(Quaternion q1, Quaternion q2) {
+
+ return new Quaternion(q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z,
+ q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,
+ q1.w * q2.y + q1.y * q2.w + q1.z * q2.x - q1.x * q2.z,
+ q1.w * q2.z + q1.z * q2.w + q1.x * q2.y - q1.y * q2.x);
+
+ }
+
+ /**
+ * Converts seconds to a whole hour.
+ * @author Waverunner
+ * @param seconds
+ * @return hour(s)
+ */
+ public static int secondsToWholeHours(int seconds) {
+ BigDecimal dec = new BigDecimal(seconds);
+
+ return dec.divide(new BigDecimal(3600), BigDecimal.ROUND_FLOOR).intValue();
+ }
+
+ /**
+ * Converts seconds to minutes of the hour.
+ * @author Waverunner
+ * @param seconds
+ * @return hour(s)
+ */
+ public static int secondsToHourMinutes(int seconds) {
+ BigDecimal dec = new BigDecimal(seconds);
+ return dec.remainder(new BigDecimal(3600)).divide(new BigDecimal(60), BigDecimal.ROUND_FLOOR).intValue();
+ }
+}
diff --git a/src/resources/common/ObjControllerOpcodes.java b/src/resources/common/ObjControllerOpcodes.java
index 21b58e82..c38a6071 100644
--- a/src/resources/common/ObjControllerOpcodes.java
+++ b/src/resources/common/ObjControllerOpcodes.java
@@ -26,8 +26,35 @@ public class ObjControllerOpcodes {
public static final int DATA_TRANSFORM = 0x71000000;
public static final int DATA_TRANSFORM_WITH_PARENT = 0xF1000000;
public static final int COMMAND_QUEUE_ENQUEUE = 0x16010000;
- public static final int TARGET_UPDATE = 0x26010000;
+ public static final int COMMAND_QUEUE_REMOVE = 0x17010000;
+ public static final int lookAtTarget = 0x26010000;
+ public static final int intendedTarget = 0xC5040000;
public static final int OBJECT_MENU_REQUEST = 0x46010000;
public static final int SECURE_TRADE = 0x15010000;
+ public static final int BUFF_BUILDER_CHANGE = 0x5A020000;
+ public static final int BUFF_BUILDER_END = 0x5B020000;
+ public static final int MISSION_LIST_REQUEST = 0xF5000000;
+ public static final int MISSION_GENERIC_REQUEST = 0xF9000000;
+ public static final int MISSION_ABORT = 0x42010000;
+ public static final int ChangeRoleIconChoice = 0x4D040000;
+ public static final int IMAGE_DESIGN_CHANGE = 0x38020000;
+ public static final int IMAGE_DESIGN_END = 0x39020000;
+ public static final int NPC_CONVERSATION_MESSAGE = 0xDF000000;
+ public static final int START_NPC_CONVERSATION = 0xDD000000;
+ public static final int STOP_NPC_CONVERSATION = 0xDE000000;
+ public static final int NPC_CONVERSATION_OPTIONS = 0xE0000000;
+ public static final int SET_PROFESSION_TEMPLATE = 0x5C040000;
+ public static final int RESOURCE_EMPTY_HOPPER = 0xED000000;
+ public static final int DRAFT_SCHEMATICS = 0x0102;
+ public static final int DRAFT_SLOTS = 0x0103;
+ public static final int CRAFT_EXPERIMENT = 0x0106;
+ public static final int CRAFT_FILLSLOT = 0x7010000;
+ public static final int CRAFT_EMPTYSLOT = 0x8010000;
+ public static final int CRAFT_ACKNOWLEDGE = 0x010C;
+ public static final int CRAFT_CUSTOMIZATION = 0x5a010000;
+ public static final int NEXT_CRAFTING_STAGE_RESULT = 0x01BE;
+ public static final int DRAFT_SLOTS_QUERY_RESPONSE = 0x01BF;
+ public static final int RESOURCE_WEIGHTS = 0x0207;
+
}
diff --git a/src/resources/common/Opcodes.java b/src/resources/common/Opcodes.java
index 405cd992..8a8cc6d8 100644
--- a/src/resources/common/Opcodes.java
+++ b/src/resources/common/Opcodes.java
@@ -25,12 +25,21 @@ import engine.resources.common.CRC;
public class Opcodes {
+ public static int AuctionQueryHeadersMessage = CRC.StringtoCRC("AuctionQueryHeadersMessage");
+ public static int CreateImmediateAuctionMessage = CRC.StringtoCRC("CreateImmediateAuctionMessage");
+ public static int ChatLeaveRoom = 0x493E3FFA;
+ public static int ChatEnterRoomById = CRC.StringtoCRC("ChatEnterRoomById");
+ public static int ChatSendToRoom = CRC.StringtoCRC("ChatSendToRoom");
public static int ChatDeletePersistentMessage = 0x8F251641;
public static int ChatInstantMessageToCharacter = 0x84BB21F7;
public static int ChatPersistentMessageToServer = 0x25A29FA6;
public static int ChatRequestPersistentMessage = 0x07E3559F;
+ public static int ChatRequestRoomList = 0x4C3D2CFA;
public static int ChatSystemMessage = CRC.StringtoCRC("ChatSystemMessage");
public static int ClientOpenContainerMessage = 0x2D2D6EE1;
+ public static int CommoditiesItemTypeListRequest = 0x48F493C5;
+ public static int CommoditiesResourceTypeListRequest = 0xCB1AE82D;
+ public static int NewbieTutorialResponse = 0xCA88FBAD;
public static int CmdSceneReady = 0x43FD1C22;
public static int ConnectPlayerMessage = 0x2E365218;
public static int ClientCreateCharacter = 0xB97F3074;
@@ -39,14 +48,16 @@ public class Opcodes {
public static int ClientVerifyAndLockNameRequest = 0x9eb04b9f;
public static int DeleteCharacterMessage = 0xE87AD031;
public static int GetMapLocationsMessage = 0x1A7AB839;
+ public static int IsVendorOwnerMessage = CRC.StringtoCRC("IsVendorOwnerMessage");
public static int LagRequest = 0x31805EE0;
public static int LoginClientId = 0x41131F96;
public static int ObjControllerMessage = 0x80CE5E46;
- public static int ObjectSelectMenuMessage = 0x7CA18726;
+ public static int ObjectMenuSelectMessage = 0x7CA18726;
public static int RequestGalaxyLoopTimes = 0x7D842D68;
public static int SelectCharacter = 0xB5098D76;
public static int SuiEventNotification = 0x092D3564;
- public static int DeltasMessage = 0x12862153;
+ public static int BaselinesMessage = CRC.StringtoCRC("BaselinesMessage");
+ public static int DeltasMessage = CRC.StringtoCRC("DeltasMessage");
public static int ChatAddFriend = 0x6FE7BD90;
public static int GcwRegionsReq = CRC.StringtoCRC("GcwRegionsReq");
public static int GcwRegionsRsp = CRC.StringtoCRC("GcwRegionsRsp");
@@ -55,5 +66,30 @@ public class Opcodes {
public static int ClientMfdStatusUpdateMessage = CRC.StringtoCRC("ClientMdfStatusUpdateMessage");
public static int PlayMusicMessage = CRC.StringtoCRC("PlayMusicMessage");
public static int PlanetTravelPointListRequest = 0x96405D4D;
-
+ public static int FactionRequestMessage = CRC.StringtoCRC("FactionRequestMessage");
+ public static int FactionResponseMessage = CRC.StringtoCRC("FactionResponseMessage");
+ public static int SetWaypointColor = CRC.StringtoCRC("SetWaypointColor");
+ public static int GuildRequestMessage = CRC.StringtoCRC("GuildRequestMessage");
+ public static int PlayerMoneyRequest = CRC.StringtoCRC("PlayerMoneyRequest");
+ public static int LagReport = CRC.StringtoCRC("LagReport");
+ public static int GetSpecificMapLocationsMessage = CRC.StringtoCRC("GetSpecificMapLocationsMessage");
+ public static int SetCombatSpamFilter = CRC.StringtoCRC("SetCombatSpamFilter");
+ public static int SetCombatSpamRangeFilter = CRC.StringtoCRC("SetCombatSpamRangeFilter");
+ public static int SetLfgInterests = CRC.StringtoCRC("SetLfgInterests");
+ public static int SetFurnitureRoationDegree = CRC.StringtoCRC("SetFurnitureRotationDegree");
+ public static int SetJediSlotInfo = CRC.StringtoCRC("SetJediSlotInfo");
+ public static int CollectionServerFirstListRequest = CRC.StringtoCRC("CollectionServerFirstListRequest");
+ public static int ShowHelmet = CRC.StringtoCRC("ShowHelmet");
+ public static int ShowBackpack = CRC.StringtoCRC("ShowBackpack");
+ public static int CreateAuctionMessage = CRC.StringtoCRC("CreateAuctionMessage");
+ public static int ChatOnEnteredRoom = CRC.StringtoCRC("ChatOnEnteredRoom");
+ public static int ChatCreateRoom = CRC.StringtoCRC("ChatCreateRoom");
+ public static int ChatQueryRoom = 0x9CF2B192;
+ public static int Unknown = 0x173B91C2; // packet sent to server on every character load-in
+ public static int GetAuctionDetails = CRC.StringtoCRC("GetAuctionDetails");
+ public static int CancelLiveAuctionMessage = CRC.StringtoCRC("CancelLiveAuctionMessage");
+ public static int BidAuctionMessage = CRC.StringtoCRC("BidAuctionMessage");
+ public static int RetrieveAuctionItemMessage = CRC.StringtoCRC("RetrieveAuctionItemMessage");
+
+
}
diff --git a/src/resources/common/OutOfBand.java b/src/resources/common/OutOfBand.java
new file mode 100644
index 00000000..ed4909f8
--- /dev/null
+++ b/src/resources/common/OutOfBand.java
@@ -0,0 +1,133 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.common;
+
+import java.nio.ByteOrder;
+import java.util.Vector;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import engine.resources.common.StringUtilities;
+import engine.resources.objects.Delta;
+
+public class OutOfBand {
+
+ private Vector prosePackages = new Vector();
+ private int headerBytes = 0;
+
+ public OutOfBand(Vector prosePackages) {
+ setProsePackages(prosePackages);
+ }
+
+ public OutOfBand(ProsePackage prosePackage) {
+ addProsePackage(prosePackage);
+ }
+
+ public OutOfBand() {
+
+ }
+
+ public static OutOfBand ProsePackage(Object ... objects) {
+ return new OutOfBand(new ProsePackage(objects));
+ }
+
+ public void addProsePackage(ProsePackage prosePackage) {
+ prosePackages.add(prosePackage);
+ }
+
+ public IoBuffer serialize() {
+ IoBuffer buffer = IoBuffer.allocate(50).order(ByteOrder.LITTLE_ENDIAN);
+ buffer.setAutoExpand(true);
+
+ // The short that was here is only in conversation OutOfBands.
+ // Count doesn't seem to be count. It seems to be indicating if there's an extra byte.
+
+ for (ProsePackage prosePackage : prosePackages) {
+ buffer.put((byte) 1);
+ buffer.putInt(-1);
+ buffer.put(prosePackage.getStf().getBytes());
+
+ buffer.putLong(prosePackage.getTuObjectId());
+ buffer.put(prosePackage.getTuStf().getBytes());
+ buffer.put(StringUtilities.getUnicodeString(prosePackage.getTuCustomString()));
+
+ buffer.putLong(prosePackage.getTtObjectId());
+ buffer.put(prosePackage.getTtStf().getBytes());
+ buffer.put(StringUtilities.getUnicodeString(prosePackage.getTtCustomString()));
+
+ buffer.putLong(prosePackage.getToObjectId());
+ buffer.put(prosePackage.getToStf().getBytes());
+ buffer.put(StringUtilities.getUnicodeString(prosePackage.getToCustomString()));
+
+ buffer.putInt(prosePackage.getDiInteger());
+ buffer.putFloat(prosePackage.getDfFloat());
+
+ buffer.put((byte) 0);
+ }
+
+ int size = buffer.position();
+
+ if (size > 0) {
+ if ((size % 2) == 1) {
+ size++;
+ buffer.put((byte) 0);
+ buffer = Delta.createBuffer(size + 2).putShort((short) 1).put(buffer.flip().array(), 0, size);
+ } else {
+ buffer = Delta.createBuffer(size + 2).putShort((short) 0).put(buffer.flip().array(), 0, size);
+ }
+
+ size += 2;
+ } else {
+ return Delta.createBuffer(4).putInt(size);
+ }
+
+ if (headerBytes > 0) {
+ IoBuffer result = Delta.createBuffer(size + headerBytes);
+
+ for (int i = 0; i < headerBytes; i++) {
+ result.put((byte) 0);
+ }
+
+ buffer = result.put(buffer.flip().array(), 0, size);
+ size += headerBytes;
+ }
+
+ return Delta.resizeBuffer(Delta.createBuffer(size + 4).putInt(size / 2).put(buffer.flip().array()));
+ }
+
+ /*
+ * No idea what the extra short in conversation OutOfBands is.
+ * It's not in any of the other packets that use OutOfBand.
+ */
+ public void setHeaderBytes(int headerBytes) {
+ this.headerBytes = headerBytes;
+ }
+
+ public Vector getProsePackages() {
+ return prosePackages;
+ }
+
+ public void setProsePackages(Vector prosePackages) {
+ this.prosePackages = prosePackages;
+ }
+
+}
diff --git a/src/resources/common/Performance.java b/src/resources/common/Performance.java
new file mode 100644
index 00000000..4179f4be
--- /dev/null
+++ b/src/resources/common/Performance.java
@@ -0,0 +1,275 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.common;
+
+public class Performance {
+
+
+ private String performanceName;
+ private int instrumentAudioId;
+ private String requiredSong;
+ private String requiredInstrument;
+ private String requiredDance;
+ private int danceVisualId;
+ private int actionPointsPerLoop;
+ private float loopDuration;
+ private int type;
+ private int baseXp;
+ private int flourishXpMod;
+ private int healMindWound;
+ private int healShockWound;
+ private String requiredSkillMod;
+ private int requiredSkillModValue;
+ private String mainloop;
+ private String flourish1;
+ private String flourish2;
+ private String flourish3;
+ private String flourish4;
+ private String flourish5;
+ private String flourish6;
+ private String flourish7;
+ private String flourish8;
+ private String intro;
+ private String outro;
+ private int lineNumber;
+
+ public Performance() {
+
+ }
+
+ public int getBaseXp() {
+ return baseXp;
+ }
+
+ public void setBaseXp(int baseXp) {
+ this.baseXp = baseXp;
+ }
+
+ public String getPerformanceName() {
+ return performanceName;
+ }
+
+ public void setPerformanceName(String performanceName) {
+ this.performanceName = performanceName;
+ }
+
+ public int getInstrumentAudioId() {
+ return instrumentAudioId;
+ }
+
+ public void setInstrumentAudioId(int instrumentAudioId) {
+ this.instrumentAudioId = instrumentAudioId;
+ }
+
+ public int getRequiredSkillModValue() {
+ return requiredSkillModValue;
+ }
+
+ public void setRequiredSkillModValue(int requiredSkillModValue) {
+ this.requiredSkillModValue = requiredSkillModValue;
+ }
+
+ public String getRequiredSong() {
+ return requiredSong;
+ }
+
+ public void setRequiredSong(String requiredSong) {
+ this.requiredSong = requiredSong;
+ }
+
+ public String getRequiredInstrument() {
+ return requiredInstrument;
+ }
+
+ public void setRequiredInstrument(String requiredInstrument) {
+ this.requiredInstrument = requiredInstrument;
+ }
+
+ public String getRequiredDance() {
+ return requiredDance;
+ }
+
+ public void setRequiredDance(String requiredDance) {
+ this.requiredDance = requiredDance;
+ }
+
+ public int getDanceVisualId() {
+ return danceVisualId;
+ }
+
+ public void setDanceVisualId(int danceVisualId) {
+ this.danceVisualId = danceVisualId;
+ }
+
+ public int getActionPointsPerLoop() {
+ return actionPointsPerLoop;
+ }
+
+ public void setActionPointsPerLoop(int actionPointsPerLoop) {
+ this.actionPointsPerLoop = actionPointsPerLoop;
+ }
+
+ public float getLoopDuration() {
+ return loopDuration;
+ }
+
+ public void setLoopDuration(float loopDuration) {
+ this.loopDuration = loopDuration;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public void setType(int type) {
+ this.type = type;
+ }
+
+ public int getFlourishXpMod() {
+ return flourishXpMod;
+ }
+
+ public void setFlourishXpMod(int flourishXpMod) {
+ this.flourishXpMod = flourishXpMod;
+ }
+
+ public int getHealMindWound() {
+ return healMindWound;
+ }
+
+ public void setHealMindWound(int healMindWound) {
+ this.healMindWound = healMindWound;
+ }
+
+ public int getHealShockWound() {
+ return healShockWound;
+ }
+
+ public int getLineNumber() {
+ return lineNumber;
+ }
+
+ public void setHealShockWound(int healShockWound) {
+ this.healShockWound = healShockWound;
+ }
+
+ public String getRequiredSkillMod() {
+ return requiredSkillMod;
+ }
+
+ public void setRequiredSkillMod(String requiredSkillMod) {
+ this.requiredSkillMod = requiredSkillMod;
+ }
+
+ public String getMainloop() {
+ return mainloop;
+ }
+
+ public void setMainloop(String mainloop) {
+ this.mainloop = mainloop;
+ }
+
+ public String getFlourish1() {
+ return flourish1;
+ }
+
+ public void setFlourish1(String flourish1) {
+ this.flourish1 = flourish1;
+ }
+
+ public String getFlourish2() {
+ return flourish2;
+ }
+
+ public void setFlourish2(String flourish2) {
+ this.flourish2 = flourish2;
+ }
+
+ public String getFlourish3() {
+ return flourish3;
+ }
+
+ public void setFlourish3(String flourish3) {
+ this.flourish3 = flourish3;
+ }
+
+ public String getFlourish4() {
+ return flourish4;
+ }
+
+ public void setFlourish4(String flourish4) {
+ this.flourish4 = flourish4;
+ }
+
+ public String getFlourish5() {
+ return flourish5;
+ }
+
+ public void setFlourish5(String flourish5) {
+ this.flourish5 = flourish5;
+ }
+
+ public String getFlourish6() {
+ return flourish6;
+ }
+
+ public void setFlourish6(String flourish6) {
+ this.flourish6 = flourish6;
+ }
+
+ public String getFlourish7() {
+ return flourish7;
+ }
+
+ public void setFlourish7(String flourish7) {
+ this.flourish7 = flourish7;
+ }
+
+ public String getFlourish8() {
+ return flourish8;
+ }
+
+ public void setFlourish8(String flourish8) {
+ this.flourish8 = flourish8;
+ }
+
+ public String getIntro() {
+ return intro;
+ }
+
+ public void setIntro(String intro) {
+ this.intro = intro;
+ }
+
+ public String getOutro() {
+ return outro;
+ }
+
+ public void setOutro(String outro) {
+ this.outro = outro;
+ }
+
+ public void setLineNumber(int lineNumber) {
+ this.lineNumber = lineNumber;
+ }
+
+}
diff --git a/src/resources/common/PerformanceEffect.java b/src/resources/common/PerformanceEffect.java
new file mode 100644
index 00000000..09afddd0
--- /dev/null
+++ b/src/resources/common/PerformanceEffect.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.common;
+
+public class PerformanceEffect {
+
+ private int effectActionCost;
+ private float effectDuration;
+ private String name;
+ private String performanceType;
+ private boolean requiredPerforming;
+ private int requiredSkillModValue;
+ private int targetType;
+ private boolean music;
+ private boolean dance;
+
+ public PerformanceEffect() { }
+
+ public int getEffectActionCost() {
+ return effectActionCost;
+ }
+ public float getEffectDuration() {
+ return effectDuration;
+ }
+ public String getName() {
+ return name;
+ }
+ public int getRequiredSkillModValue() {
+ return requiredSkillModValue;
+ }
+ public int getTargetType() {
+ return targetType;
+ }
+ public String getPerformanceType() {
+ return performanceType;
+ }
+ public boolean isRequiredPerforming() {
+ return requiredPerforming;
+ }
+ public void setEffectActionCost(int effectActionCost) {
+ this.effectActionCost = effectActionCost;
+ }
+ public void setEffectDuration(float effectDuration) {
+ this.effectDuration = effectDuration;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public void setPerformanceType(String performanceType) {
+ this.performanceType = performanceType;
+
+ if (performanceType.contains(",")) {
+ String[] array = performanceType.split(",");
+ if(array.length < 2)
+ return;
+
+ this.dance = true;
+ this.music = true;
+ }
+ else if (performanceType.equals("music")) { this.music = true; }
+ else if (performanceType.equals("dance")) { this.dance = true; }
+ }
+ public void setRequiredPerforming(boolean requiredPerforming) {
+ this.requiredPerforming = requiredPerforming;
+ }
+ public void setRequiredSkillModValue(int requiredSkillModValue) {
+ this.requiredSkillModValue = requiredSkillModValue;
+ }
+ public void setTargetType(int targetType) {
+ this.targetType = targetType;
+ }
+
+ public boolean isMusic() {
+ return music;
+ }
+
+ public void setMusic(boolean music) {
+ this.music = music;
+ }
+
+ public boolean isDance() {
+ return dance;
+ }
+
+ public void setDance(boolean dance) {
+ this.dance = dance;
+ }
+
+}
diff --git a/src/resources/common/ProsePackage.java b/src/resources/common/ProsePackage.java
new file mode 100644
index 00000000..bdb10e5f
--- /dev/null
+++ b/src/resources/common/ProsePackage.java
@@ -0,0 +1,224 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.common;
+
+import java.io.Serializable;
+
+import engine.resources.common.Stf;
+
+public class ProsePackage implements Serializable {
+
+ /*
+ * TU = Text User
+ * TT = Text Target
+ * TO = Text Object
+ * DI = Decimal Integer
+ * DF = Decimal Float
+ */
+
+ private static final long serialVersionUID = 1L;
+
+ private Stf stf = new Stf();
+
+ private long tuObjectId = 0;
+ private Stf tuStf = new Stf();
+ private String tuCustomString = "";
+
+ private long ttObjectId = 0;
+ private Stf ttStf = new Stf();
+ private String ttCustomString = "";
+
+ private long toObjectId = 0;
+ private Stf toStf = new Stf();
+ private String toCustomString = "";
+
+ private int diInteger = 0;
+ private float dfFloat = 0;
+
+ /*
+ * Any parameters can be entered.
+ *
+ * Any integers set diInteger
+ * Any floats set dfFloat
+ * Any "@stfFile:label" sets the default stf
+ * "TU" followed by objectId, "@stfFile:label" or customString
+ * "TT" followed by objectId, "@stfFile:label" or customString
+ * "TO" followed by objectId, "@stfFile:label" or customString
+ */
+ public ProsePackage(Object ... objects) {
+ for (Object object: objects) {
+ if (object instanceof Object[]) {
+ objects = (Object[]) object;
+ break;
+ }
+ }
+
+ for (int i = 0; i < objects.length; i++) {
+ Object object = objects[i];
+
+ if (object instanceof String) {
+ String string = (String) object;
+
+ if ((i + 1) < objects.length) {
+ long objectId = 0;
+ Stf stf = null;
+ String customString = null;
+
+ if (objects[i + 1] instanceof Long) {
+ objectId = (Long) objects[i + 1];
+ } else if (objects[i + 1] instanceof String) {
+ String str = (String) objects[i + 1];
+
+ if (str.startsWith("@") && str.contains(":") && !str.contains(" ")) {
+ stf = new Stf(str);
+ } else {
+ customString = str;
+ }
+ }
+
+ switch (string.toUpperCase()) {
+ case "TU":
+ tuObjectId = (objectId == 0) ? tuObjectId : objectId;
+ tuStf = (stf == null) ? tuStf : stf;
+ tuCustomString = (customString == null) ? tuCustomString : customString;
+ continue;
+ case "TT":
+ ttObjectId = (objectId == 0) ? ttObjectId : objectId;
+ ttStf = (stf == null) ? ttStf : stf;
+ ttCustomString = (customString == null) ? ttCustomString : customString;
+ continue;
+ case "TO":
+ toObjectId = (objectId == 0) ? toObjectId : objectId;
+ toStf = (stf == null) ? toStf : stf;
+ toCustomString = (customString == null) ? toCustomString : customString;
+ continue;
+ default:
+ //
+ }
+ }
+
+ stf.setString((String) object);
+ } else if (object instanceof Integer) {
+ diInteger = (Integer) object;
+ } else if (object instanceof Float) {
+ dfFloat = (Float) object;
+ }
+ }
+ }
+
+ public Stf getStf() {
+ return stf;
+ }
+
+ public void setStf(Stf stf) {
+ this.stf = stf;
+ }
+
+ public long getTuObjectId() {
+ return tuObjectId;
+ }
+
+ public void setTuObjectId(long tuObjectId) {
+ this.tuObjectId = tuObjectId;
+ }
+
+ public Stf getTuStf() {
+ return tuStf;
+ }
+
+ public void setTuStf(Stf tuStf) {
+ this.tuStf = tuStf;
+ }
+
+ public String getTuCustomString() {
+ return tuCustomString;
+ }
+
+ public void setTuCustomString(String tuCustomString) {
+ this.tuCustomString = tuCustomString;
+ }
+
+ public long getTtObjectId() {
+ return ttObjectId;
+ }
+
+ public void setTtObjectId(long ttObjectId) {
+ this.ttObjectId = ttObjectId;
+ }
+
+ public Stf getTtStf() {
+ return ttStf;
+ }
+
+ public void setTtStf(Stf ttStf) {
+ this.ttStf = ttStf;
+ }
+
+ public String getTtCustomString() {
+ return ttCustomString;
+ }
+
+ public void setTtCustomString(String ttCustomString) {
+ this.ttCustomString = ttCustomString;
+ }
+
+ public long getToObjectId() {
+ return toObjectId;
+ }
+
+ public void setToObjectId(long toObjectId) {
+ this.toObjectId = toObjectId;
+ }
+
+ public Stf getToStf() {
+ return toStf;
+ }
+
+ public void setToStf(Stf toStf) {
+ this.toStf = toStf;
+ }
+
+ public String getToCustomString() {
+ return toCustomString;
+ }
+
+ public void setToCustomString(String toCustomString) {
+ this.toCustomString = toCustomString;
+ }
+
+ public int getDiInteger() {
+ return diInteger;
+ }
+
+ public void setDiInteger(int diInteger) {
+ this.diInteger = diInteger;
+ }
+
+ public float getDfFloat() {
+ return dfFloat;
+ }
+
+ public void setDfFloat(float dfFloat) {
+ this.dfFloat = dfFloat;
+ }
+
+}
diff --git a/src/resources/common/RGB.java b/src/resources/common/RGB.java
deleted file mode 100644
index d5d62dde..00000000
--- a/src/resources/common/RGB.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package resources.common;
-
-import resources.objects.ListObject;
-
-public class RGB extends ListObject {
-
- private byte red, green, blue;
-
- public RGB(byte red, byte green, byte blue) {
- this.red = red;
- this.green = green;
- this.blue = blue;
- }
-
- public RGB(int red, int green, int blue) {
- this.red = (byte) red;
- this.green = (byte) green;
- this.blue = (byte) blue;
- }
-
- public byte getRed() {
- return red;
- }
-
- public byte getGreen() {
- return green;
- }
-
- public byte getBlue() {
- return blue;
- }
-
- public byte[] getBytes() {
- return new byte[] { red, green, blue };
- }
-
-}
diff --git a/src/resources/common/SpawnPoint.java b/src/resources/common/SpawnPoint.java
index 2068dbb4..f0fac9af 100644
--- a/src/resources/common/SpawnPoint.java
+++ b/src/resources/common/SpawnPoint.java
@@ -21,6 +21,10 @@
******************************************************************************/
package resources.common;
+import java.util.Random;
+
+import main.NGECore;
+
import com.sleepycat.persist.model.Persistent;
import engine.resources.scene.Point3D;
@@ -79,5 +83,30 @@ public class SpawnPoint {
public void setCellNumber(int cellNumber) {
this.cellNumber = cellNumber;
}
+
+ public Point3D getRandomPosition(float minDistance, float maxDistance) {
+
+ Random random = new Random();
+ float distance = random.nextInt((int) (maxDistance - minDistance) + 1) + minDistance;
+ float angle = (float) (random.nextInt(360) * (Math.PI / 180));
+ float x = (float) (position.x + distance * Math.cos(angle));
+ float z = (float) (position.z + distance * Math.sin(angle));
+
+ return new Point3D(x, 0, z);
+
+ }
+
+ public static Point3D getRandomPosition(Point3D position, float minDistance, float maxDistance, int planetId) {
+
+ Random random = new Random();
+ float distance = random.nextInt((int) (maxDistance - minDistance) + 1) + minDistance;
+ float angle = (float) (random.nextInt(360) * (Math.PI / 180));
+ float x = (float) (position.x + distance * Math.cos(angle));
+ float z = (float) (position.z + distance * Math.sin(angle));
+
+ return new Point3D(x, NGECore.getInstance().terrainService.getHeight(planetId, x, z), z);
+
+ }
+
}
diff --git a/src/resources/common/StringUtilities.java b/src/resources/common/StringUtilities.java
deleted file mode 100644
index c553f47d..00000000
--- a/src/resources/common/StringUtilities.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013
- *
- * This File is part of NGECore2.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- *
- * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
- * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
- ******************************************************************************/
-package resources.common;
-
-import java.io.UnsupportedEncodingException;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-public class StringUtilities {
-
- final protected static char[] hexArray = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
-
- public static String getAsciiString(ByteBuffer buffer) {
- return getString(buffer, "US-ASCII");
- }
-
- public static String getUnicodeString(ByteBuffer buffer) {
- return getString(buffer, "UTF-16LE");
- }
-
- public static byte[] getAsciiString(String string) {
- return getString(string, "US-ASCII");
- }
-
- public static byte[] getUnicodeString(String string) {
- return getString(string, "UTF-16LE");
- }
-
- private static String getString(ByteBuffer buffer, String charFormat) {
- String result;
- int length;
-
- if (charFormat == "UTF-16LE") {
- length = buffer.order(ByteOrder.LITTLE_ENDIAN).getInt();
- } else {
- length = buffer.order(ByteOrder.LITTLE_ENDIAN).getShort();
- }
-
- int bufferPosition = buffer.position();
-
- try {
- result = new String(buffer.array(), bufferPosition, length, charFormat);
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- return "";
- }
-
- buffer.position(bufferPosition + length);
-
- return result;
- }
-
- private static byte[] getString(String string, String charFormat) {
- ByteBuffer result;
- int length = 2 + string.length();
-
- if (charFormat == "UTF-16LE") {
- result = ByteBuffer.allocate(length * 2).order(ByteOrder.LITTLE_ENDIAN);
- result.putInt(string.length());
- } else {
- result = ByteBuffer.allocate(length).order(ByteOrder.LITTLE_ENDIAN);
- result.putShort((short)string.length());
- }
-
- try {
- result.put(string.getBytes(charFormat));
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- return new byte[] { };
- }
-
- return result.array();
- }
-
- public static String bytesToHex(byte[] bytes) {
- char[] hexChars = new char[bytes.length * 2];
- int v;
-
- for ( int j = 0; j < bytes.length; j++ ) {
- v = bytes[j] & 0xFF;
- hexChars[j * 2] = hexArray[v >>> 4];
- hexChars[j * 2 + 1] = hexArray[v & 0x0F];
- }
-
- return new String(hexChars);
- }
-
-}
diff --git a/src/resources/common/ThreadMonitor.java b/src/resources/common/ThreadMonitor.java
index 43adcb64..bf5c2cb8 100644
--- a/src/resources/common/ThreadMonitor.java
+++ b/src/resources/common/ThreadMonitor.java
@@ -21,25 +21,18 @@
******************************************************************************/
package resources.common;
-import static java.lang.management.ManagementFactory.THREAD_MXBEAN_NAME;
import static java.lang.management.ManagementFactory.getThreadMXBean;
-import static java.lang.management.ManagementFactory.newPlatformMXBeanProxy;
import java.io.IOException;
import java.lang.management.LockInfo;
import java.lang.management.MonitorInfo;
import java.lang.management.ThreadInfo;
import java.lang.management.ThreadMXBean;
-import java.util.concurrent.BrokenBarrierException;
-import java.util.concurrent.CyclicBarrier;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
import javax.management.InstanceNotFoundException;
import javax.management.IntrospectionException;
import javax.management.MBeanOperationInfo;
import javax.management.MBeanServerConnection;
-import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.ReflectionException;
@@ -141,7 +134,8 @@ public class ThreadMonitor {
}
}
- private void printMonitorInfo(ThreadInfo ti, MonitorInfo[] monitors) {
+ @SuppressWarnings("unused")
+ private void printMonitorInfo(ThreadInfo ti, MonitorInfo[] monitors) {
System.out.println(INDENT + "Locked monitors: count = " + monitors.length);
for (MonitorInfo mi : monitors) {
System.out.println(INDENT + " - " + mi + " locked at ");
@@ -193,7 +187,8 @@ public class ThreadMonitor {
return true;
}
- private void parseMBeanInfo() throws IOException {
+ @SuppressWarnings("unused")
+ private void parseMBeanInfo() throws IOException {
try {
MBeanOperationInfo[] mopis = server.getMBeanInfo(objname).getOperations();
diff --git a/src/resources/common/collidables/AbstractCollidable.java b/src/resources/common/collidables/AbstractCollidable.java
new file mode 100644
index 00000000..b7f9a157
--- /dev/null
+++ b/src/resources/common/collidables/AbstractCollidable.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.common.collidables;
+
+import java.util.Vector;
+
+import main.NGECore;
+import net.engio.mbassy.bus.SyncMessageBus;
+
+import org.python.core.Py;
+import org.python.core.PyObject;
+
+import engine.resources.common.Event;
+import engine.resources.objects.SWGObject;
+import engine.resources.scene.Planet;
+import engine.resources.scene.Point3D;
+
+public abstract class AbstractCollidable {
+
+ private PyObject callback;
+ public Vector collidedObjects = new Vector();
+ private Planet planet;
+ private SyncMessageBus eventBus = new SyncMessageBus(NGECore.getInstance().getEventBusConfig());
+
+ public abstract boolean doesCollide(SWGObject obj);
+ public abstract boolean doesCollide(Point3D position);
+
+ public PyObject getCallback() {
+ return callback;
+ }
+
+ public void setCallback(PyObject callback) {
+ this.callback = callback;
+ }
+
+ public void addCollidedObject(SWGObject obj) {
+ collidedObjects.add(obj);
+ EnterEvent event = new EnterEvent();
+ event.object = obj;
+ eventBus.publish(event);
+ }
+
+ public void removeCollidedObject(SWGObject obj) {
+ if(!collidedObjects.contains(obj))
+ return;
+ collidedObjects.remove(obj);
+ ExitEvent event = new ExitEvent();
+ event.object = obj;
+ eventBus.publish(event);
+ }
+
+ public boolean isInCollisionList(SWGObject obj) {
+ return collidedObjects.contains(obj);
+ }
+
+ public void doCollisionCheck(SWGObject obj) {
+ // check if already collided
+ if(isInCollisionList(obj) && doesCollide(obj)) {
+ return;
+ } else if(isInCollisionList(obj) && !doesCollide(obj)) {
+ removeCollidedObject(obj);
+ } else if(doesCollide(obj) && !isInCollisionList(obj)) {
+ addCollidedObject(obj);
+ if(getCallback() != null)
+ getCallback().__call__(Py.java2py(NGECore.getInstance()), Py.java2py(obj), Py.java2py(this));
+ }
+ }
+
+ public Planet getPlanet() {
+ return planet;
+ }
+
+ public void setPlanet(Planet planet) {
+ this.planet = planet;
+ }
+
+ public SyncMessageBus getEventBus() {
+ return eventBus;
+ }
+
+ public class EnterEvent implements Event {
+ public SWGObject object;
+ }
+
+ public class ExitEvent implements Event {
+ public SWGObject object;
+ }
+
+ public abstract Point3D getRandomPosition(Point3D origin, float minDistance, float maxDistance);
+ public abstract Point3D getRandomPosition();
+
+
+}
diff --git a/src/resources/objects/IListObject.java b/src/resources/common/collidables/CollidableBox.java
similarity index 88%
rename from src/resources/objects/IListObject.java
rename to src/resources/common/collidables/CollidableBox.java
index 12b36650..4fd64080 100644
--- a/src/resources/objects/IListObject.java
+++ b/src/resources/common/collidables/CollidableBox.java
@@ -19,13 +19,10 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package resources.objects;
+package resources.common.collidables;
-import com.sleepycat.persist.model.Persistent;
+public class CollidableBox {
+
+
-@Persistent
-public interface IListObject {
-
- public byte[] getBytes();
-
}
diff --git a/src/resources/common/collidables/CollidableCircle.java b/src/resources/common/collidables/CollidableCircle.java
new file mode 100644
index 00000000..fef3eacc
--- /dev/null
+++ b/src/resources/common/collidables/CollidableCircle.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.common.collidables;
+
+import java.util.Random;
+
+import engine.resources.objects.SWGObject;
+import engine.resources.scene.Planet;
+import engine.resources.scene.Point3D;
+
+public class CollidableCircle extends AbstractCollidable {
+
+ private Point3D center;
+ private float radius;
+ // for bh traps
+ private boolean useYAxis = false;
+
+ public CollidableCircle(Point3D center, float radius, Planet planet) {
+ this.setCenter(center);
+ this.setRadius(radius);
+ this.setPlanet(planet);
+ }
+
+ public Point3D getCenter() {
+ return center;
+ }
+
+ public void setCenter(Point3D center) {
+ this.center = center;
+ }
+
+ public float getRadius() {
+ return radius;
+ }
+
+ public void setRadius(float radius) {
+ this.radius = radius;
+ }
+
+ public boolean isUseYAxis() {
+ return useYAxis;
+ }
+
+ public void setUseYAxis(boolean useYAxis) {
+ this.useYAxis = useYAxis;
+ }
+
+ @Override
+ public boolean doesCollide(SWGObject obj) {
+ Point3D objectPos = obj.getWorldPosition();
+ if(useYAxis) {
+ return center.getDistance(objectPos) <= radius && objectPos.y == center.y;
+ } else {
+ return center.getDistance(objectPos) <= radius;
+ }
+ }
+
+ @Override
+ public boolean doesCollide(Point3D position) {
+ if(useYAxis) {
+ return center.getDistance(position) <= radius && position.y == center.y;
+ } else {
+ return center.getDistance(position) <= radius;
+ }
+ }
+
+ @Override
+ public Point3D getRandomPosition(Point3D origin, float minDistance, float maxDistance) {
+
+ Random random = new Random();
+ float distance = random.nextInt((int) (maxDistance - minDistance) + 1) + minDistance;
+ float angle = (float) (random.nextInt(360) * (Math.PI / 180));
+
+ return new Point3D((float) (origin.x + distance * Math.cos(angle)), 0, (float) (origin.z + distance * Math.sin(angle)));
+
+ }
+
+ @Override
+ public Point3D getRandomPosition() {
+
+ Random random = new Random();
+ float distance = random.nextInt((int) radius);
+ float angle = (float) (random.nextInt(360) * (Math.PI / 180));
+
+ return new Point3D((float) (center.x + distance * Math.cos(angle)), 0, (float) (center.z + distance * Math.sin(angle)));
+
+ }
+}
diff --git a/src/resources/craft/DraftSchematic.java b/src/resources/craft/DraftSchematic.java
new file mode 100644
index 00000000..9f203e2f
--- /dev/null
+++ b/src/resources/craft/DraftSchematic.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.craft;
+
+import java.io.Serializable;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import engine.resources.objects.Delta;
+
+public class DraftSchematic extends Delta implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private int serverSchematicCrc = 0;
+ private int schematicCrc = 0;
+ private int amount = 1;
+
+ public DraftSchematic(int serverSchematicCrc, int schematicCrc, int amount) {
+ this.serverSchematicCrc = serverSchematicCrc;
+ this.schematicCrc = schematicCrc;
+ this.amount = amount;
+ }
+
+ public DraftSchematic(int serverSchematicCrc, int schematicCrc) {
+ this.serverSchematicCrc = serverSchematicCrc;
+ this.schematicCrc = schematicCrc;
+ }
+
+ public DraftSchematic() {
+
+ }
+
+ public int getServerSchematicCrc() {
+ synchronized(objectMutex) {
+ return serverSchematicCrc;
+ }
+ }
+
+ public int getSchematicCrc() {
+ synchronized(objectMutex) {
+ return schematicCrc;
+ }
+ }
+
+ public int getAmount() {
+ synchronized(objectMutex) {
+ return amount;
+ }
+ }
+
+ public void setAmount(int amount) {
+ synchronized(objectMutex) {
+ this.amount = amount;
+ }
+ }
+
+ public byte[] getBytes() {
+ synchronized(objectMutex) {
+ IoBuffer buffer = createBuffer(12);
+ buffer.putInt(serverSchematicCrc);
+ buffer.putInt(schematicCrc);
+ buffer.putInt(amount);
+ return buffer.array();
+ }
+ }
+
+}
diff --git a/src/resources/datatables/Citizenship.java b/src/resources/datatables/Citizenship.java
new file mode 100644
index 00000000..ced0f364
--- /dev/null
+++ b/src/resources/datatables/Citizenship.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
+
+public class Citizenship {
+
+ public static final byte Homeless = 0;
+ public static final byte Citizen = 1;
+ public static final byte Militia = 2;
+ public static final byte Mayor = 3;
+
+}
diff --git a/src/resources/datatables/Difficulty.java b/src/resources/datatables/Difficulty.java
new file mode 100644
index 00000000..ddb2f458
--- /dev/null
+++ b/src/resources/datatables/Difficulty.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
+
+public class Difficulty {
+
+ public static byte NORMAL = 0; // Normal
+ public static byte ELITE = 1; // Elite
+ public static byte BOSS = 2; // Gold elite
+
+}
diff --git a/src/resources/datatables/DisplayType.java b/src/resources/datatables/DisplayType.java
new file mode 100644
index 00000000..437a0df4
--- /dev/null
+++ b/src/resources/datatables/DisplayType.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
+
+public class DisplayType {
+
+ // System
+ public static byte Broadcast = 0; // Level up. combatspam/skill_up
+ public static byte Screen = 1; // Screen? XP gain
+ public static byte Chat = 2;
+ //public static byte Overhead = 3; // Flytext? Seen on ent duration
+ //public static byte Combat = 4; // CombatSpam?
+ //public static byte Combat = 5; // Seen in combat flytext
+ //public static byte Combat = 11; // Seen when blocking
+
+ // Flytext
+ //public static byte Broadcast = 0; // Level up. combatspam/skill_up
+ //public static byte Screen = 1; // Screen? XP gain
+ //public static byte Chat = 2;
+ //public static byte Overhead = 3; // Flytext? Seen on ent duration
+ //public static byte Combat = 4; // CombatSpam?
+ //public static byte Combat = 5; // Seen in combat flytext
+ //public static byte Combat = 11; // Seen when blocking
+
+}
+
diff --git a/src/resources/datatables/Elemental.java b/src/resources/datatables/Elemental.java
new file mode 100644
index 00000000..007f04c0
--- /dev/null
+++ b/src/resources/datatables/Elemental.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
+
+public enum Elemental {
+
+ KINETIC(1), ENERGY(2), BLAST(4), STUN(8), HEAT(32), COLD(64), ACID(128), ELECTRICITY(256);
+
+ private int element;
+
+ private Elemental(int element) {
+ this.element = element;
+ }
+
+ @Override
+ public String toString() {
+ switch(this) {
+ case KINETIC:
+ return "kinetic";
+ case ENERGY:
+ return "energy";
+ case BLAST:
+ return "blast";
+ case STUN:
+ return "stun";
+ case HEAT:
+ return "heat";
+ case COLD:
+ return "cold";
+ case ACID:
+ return "acid";
+ case ELECTRICITY:
+ return "electricity";
+ }
+ return null;
+ }
+
+ public int getValue() {
+ return element;
+ }
+
+ public static int getElementalNum(String element) {
+ switch(element) {
+ case "kinetic":
+ return 1;
+ case "energy":
+ return 2;
+ case "blast":
+ return 4;
+ case "stun":
+ return 8;
+ case "heat":
+ return 32;
+ case "cold":
+ return 64;
+ case "acid":
+ return 128;
+ case "electricity":
+ return 256;
+ }
+ return 0;
+ }
+
+ public static String getElementalName(int elementalType) {
+ for (Elemental element : Elemental.values()) {
+ if (element.getValue() == elementalType) {
+ return element.toString();
+ }
+ }
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/src/resources/common/FactionStatus.java b/src/resources/datatables/FactionStatus.java
similarity index 88%
rename from src/resources/common/FactionStatus.java
rename to src/resources/datatables/FactionStatus.java
index 95a24034..2cae4212 100644
--- a/src/resources/common/FactionStatus.java
+++ b/src/resources/datatables/FactionStatus.java
@@ -19,12 +19,12 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package resources.common;
+package resources.datatables;
public class FactionStatus {
- public static int OnLeave = 0;
- public static int Combatant = 1;
- public static int SpecialForces = 2;
+ public static final int OnLeave = 0;
+ public static final int Combatant = 1;
+ public static final int SpecialForces = 2;
}
diff --git a/src/resources/common/Factions.java b/src/resources/datatables/Factions.java
similarity index 97%
rename from src/resources/common/Factions.java
rename to src/resources/datatables/Factions.java
index f748524b..4c70d5e4 100644
--- a/src/resources/common/Factions.java
+++ b/src/resources/datatables/Factions.java
@@ -19,7 +19,7 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package resources.common;
+package resources.datatables;
import engine.resources.common.CRC;
diff --git a/src/resources/datatables/GcwType.java b/src/resources/datatables/GcwType.java
new file mode 100644
index 00000000..30664208
--- /dev/null
+++ b/src/resources/datatables/GcwType.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
+
+public class GcwType {
+
+ public static final byte Generic = 0;
+ public static final byte Enemy = 1;
+ public static final byte Player = 2;
+ public static final byte Zone = 3;
+
+}
diff --git a/src/resources/datatables/HitType.java b/src/resources/datatables/HitType.java
new file mode 100644
index 00000000..a0736a2e
--- /dev/null
+++ b/src/resources/datatables/HitType.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
+
+public class HitType {
+ public static final byte MISS = 0;
+ public static final byte DODGE = 1;
+ public static final byte PARRY = 2;
+ public static final byte STRIKETHROUGH = 3;
+ public static final byte CRITICAL = 4;
+ public static final byte PUNISHING = 5;
+ public static final byte HIT = 6;
+ public static final byte BLOCK = 7;
+ public static final byte EVASION = 8;
+ public static final byte GLANCE = 9;
+}
diff --git a/src/resources/datatables/LightsaberColors.java b/src/resources/datatables/LightsaberColors.java
new file mode 100644
index 00000000..e8adbba9
--- /dev/null
+++ b/src/resources/datatables/LightsaberColors.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
+
+import org.python.google.common.collect.BiMap;
+import org.python.google.common.collect.HashBiMap;
+
+public final class LightsaberColors {
+
+ public static BiMap map = HashBiMap.create();
+
+ static
+ {
+ // Basic color crystals with the basic lightsaber shader
+ map.put("Red", 0);
+ map.put("Dark Red", 1);
+ map.put("Light Green", 2);
+ map.put("Dark Green", 3);
+ map.put("Blue", 4);
+ map.put("Dark Blue", 5);
+ map.put("Yellow", 6);
+ map.put("Dark Yellow", 7);
+ map.put("Light Purple", 8);
+ map.put("Dark Purple", 9);
+ map.put("Orange", 10);
+ map.put("Brown", 11);
+ map.put("Allya's Exile", 12);
+ map.put("Kun's Blood", 13);
+ map.put("Bondara's Folly", 14);
+ map.put("Ulic's Redemption", 15);
+ map.put("Bane's Heart", 16);
+ map.put("Gallia's Intuition", 17);
+ map.put("Prowess of Plo Koon", 18);
+ map.put("B'Nar's Sacrifice", 19);
+ map.put("Windu's Guile", 20);
+ map.put("Mundi's Response", 21);
+ map.put("Strength of Luminaria", 22);
+ map.put("Baaa's Wisdom", 23);
+ map.put("Quintessence of the Force", 24);
+ map.put("Dawn of Dagobah", 25);
+ map.put("Horn's Future", 26);
+ map.put("Allya's Redemption", 27);
+ map.put("Kenobi's Legacy", 28);
+ map.put("Sunrider's Destiny", 29);
+ map.put("Kit's Ferocity", 30);
+ map.put("Cunning of Tyranus", 31);
+
+ // Special crystals that have seperate shaders - the 256 is for a hacky way to set blade type and color without more code
+ map.put("Lava", 256 + 1);
+ map.put("Permafrost", 256 + 2);
+ map.put("Blackwing Bezoar", 256 + 3);
+ }
+
+ public static int getByName(String colorName)
+ {
+ return map.get(colorName);
+ }
+
+ public static String get(int index)
+ {
+ return map.inverse().get(index);
+ }
+
+
+}
diff --git a/src/resources/datatables/Locomotion.java b/src/resources/datatables/Locomotion.java
new file mode 100644
index 00000000..eceec58d
--- /dev/null
+++ b/src/resources/datatables/Locomotion.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
+
+public class Locomotion {
+
+ public static final byte Invalid = -1;
+ public static final byte Standing = 0;
+ public static final byte Sneaking = 1;
+ public static final byte Walking = 2;
+ public static final byte Running = 3;
+ public static final byte Kneeling = 4;
+ public static final byte CrouchSneaking = 5;
+ public static final byte CrouchWalking = 6;
+ public static final byte Prone = 7;
+ public static final byte Crawling = 8;
+ public static final byte ClimbingStationary = 9;
+ public static final byte Climbing = 10;
+ public static final byte Hovering = 11; //
+ public static final byte Flying = 12;
+ public static final byte LyingDown = 13;
+ public static final byte Sitting = 14;
+ public static final byte SkillAnimating = 15;
+ public static final byte DrivingVehicle = 16;
+ public static final byte RidingCreature = 17;
+ public static final byte KnockedDown = 18;
+ public static final byte Incapacitated = 19;
+ public static final byte Dead = 20;
+ public static final byte Blocking = 21;
+
+}
diff --git a/src/resources/datatables/MilkState.java b/src/resources/datatables/MilkState.java
new file mode 100644
index 00000000..002b6e7c
--- /dev/null
+++ b/src/resources/datatables/MilkState.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
+
+public class MilkState {
+ public static final byte NOTYETMILKED = 0;
+ public static final byte MILKINGINPROGRESS = 1;
+ public static final byte MILKED = 2;
+}
diff --git a/src/resources/datatables/Options.java b/src/resources/datatables/Options.java
new file mode 100644
index 00000000..b3ee62a3
--- /dev/null
+++ b/src/resources/datatables/Options.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
+
+public class Options {
+
+ // Any uncommented ones are confirmed correct for NGE with detailed analysis
+
+ public static int NONE = 0; // HAM is visible, but health is grey without the Attackable flag
+ public static int SPACE_ATTACKABLE = 1; // Ships that are attackable in space. Includes everything except stations and asteroids so far
+ public static int USABLE = 2; // Vendors, collections (hand icon)
+ public static int INSURED = 4; // Unused in NGE
+ public static int CONVERSABLE = 8; // Conversable on ground / commable in space
+ //public static int FOLLOWINGWAYPOINT = 16; // Uncertain, could be "frozen" flag or "alert" flag or other. Seen on rare occasions on NPCs
+ public static int SOCKETED = 32; // Object has sockets
+ public static int AGGRESSIVE = 64; // Always aggressive no matter what regardless of faction standing.
+ public static int ATTACKABLE = 128; // Attackable
+ public static int INVULNERABLE = 256; // No HAM
+ public static int DISABLED = 512; // Disabled Vehicle
+ //public static int CRAFTED = 1024; // Wearable TANO objects. Isn't used for WEAOs (weapons), it's just for identifying if a TANO is a wearable probably as that's where this is seen. Also seen on naboo small house deed however... Could also be "crafted items"
+ public static int QUEST = 2048; // Quest icon
+ public static int MOUNT = 4096; // Vehicle and creature mounts
+ public static int SERIAL = 8192; // Has serial number
+ //public static int UNKNOWN = 16384; // Seen being requested by the client in objcontroller 0x02AB but probably not relevant
+ public static int PILOT = 32768; // Pilot trainers, chassis dealers
+ //public static int UNKNOWN = 65536;
+ //public static int UNKNOWN = 131072;
+ //public static int UNKNOWN = 262144;
+ //public static int UNKNOWN = 524288;
+ //public static int UNKNOWN = 1048576;
+ //public static int UNKNOWN = 2097152;
+ //public static int UNKNOWN = 4194304;
+ public static int STARTER_SHIP = 8388508; // Seen on player scyk fighters, but no others. Could also mean SPACE_OVERT
+
+}
diff --git a/src/resources/datatables/PlayerFlags.java b/src/resources/datatables/PlayerFlags.java
new file mode 100644
index 00000000..309f465e
--- /dev/null
+++ b/src/resources/datatables/PlayerFlags.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
+
+public class PlayerFlags {
+ public static final int LFG = 0x01;
+ public static final int HELPER = 0x02;
+ public static final int ROLEPLAYER = 0x04;
+ public static final int AFK = 0x80;
+ public static final int LD = 0x0100;
+ public static final int FACTIONRANK = 0x0200;
+
+}
diff --git a/src/resources/datatables/Posture.java b/src/resources/datatables/Posture.java
new file mode 100644
index 00000000..d64cba45
--- /dev/null
+++ b/src/resources/datatables/Posture.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
+
+public class Posture {
+
+ // Posture.iff
+ public static final byte Invalid = -1;
+ public static final byte Upright = 0;
+ public static final byte Crouched = 1;
+ public static final byte Prone = 2;
+ public static final byte Sneaking = 3;
+ public static final byte Blocking = 4;
+ public static final byte Climbing = 5;
+ public static final byte Flying = 6;
+ public static final byte LyingDown = 7;
+ public static final byte Sitting = 8;
+ public static final byte SkillAnimating = 9;
+ public static final byte DrivingVehicle = 10;
+ public static final byte RidingCreature = 11;
+ public static final byte KnockedDown = 12;
+ public static final byte Incapacitated = 13;
+ public static final byte Dead = 14;
+
+}
diff --git a/src/resources/datatables/Professions.java b/src/resources/datatables/Professions.java
new file mode 100644
index 00000000..0c6b76e1
--- /dev/null
+++ b/src/resources/datatables/Professions.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public final class Professions {
+
+ private static Map map = new HashMap();
+
+ static {
+ map.put("trader_0a", 0);
+ map.put("trader_0b", 0);
+ map.put("trader_0c", 0);
+ map.put("trader_0d", 0);
+ map.put("entertainer_1a", 5);
+ map.put("medic_1a", 10);
+ map.put("officer_1a", 15);
+ map.put("bounty_hunter_1a", 20);
+ map.put("smuggler_1a", 25);
+ map.put("commando_1a", 30);
+ map.put("spy_1a", 35);
+ map.put("force_sensitive_1a", 40);
+ }
+
+ public static int get(String profession) {
+ return map.get(profession);
+ }
+
+}
diff --git a/src/resources/common/PvpStatus.java b/src/resources/datatables/PvpStatus.java
similarity index 91%
rename from src/resources/common/PvpStatus.java
rename to src/resources/datatables/PvpStatus.java
index 18365a58..f2bb3350 100644
--- a/src/resources/common/PvpStatus.java
+++ b/src/resources/datatables/PvpStatus.java
@@ -19,10 +19,11 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package resources.common;
+package resources.datatables;
public class PvpStatus {
+ public static int None = 0;
public static int Attackable = 1;
public static int Aggressive = 2;
public static int Overt = 4;
@@ -30,7 +31,7 @@ public class PvpStatus {
public static int Player = 16;
public static int Enemy = 32;
public static int GoingOvert = 64;
- public static int GoingCombatant = 128;
- public static int Dueling = 256;
+ public static int GoingCovert = 128;
+ public static int Self = 256;
}
diff --git a/src/resources/datatables/State.java b/src/resources/datatables/State.java
new file mode 100644
index 00000000..dafd0c64
--- /dev/null
+++ b/src/resources/datatables/State.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
+
+public class State {
+
+ public static long Invalid = 0x00L;
+ public static long Cover = 0x1L;
+ public static long Combat = 0x2L;
+ public static long Peace = 0x4L;
+ public static long Aiming = 0x8L;
+ public static long Alert = 0x10L;
+ public static long Berserk = 0x20L;
+ public static long FeignDeath = 0x40L;
+ public static long CombatAttitudeEvasive = 0x80L;
+ public static long CombatAttitudeNormal = 0x100L;
+ public static long CombatAttitudeAggressive = 0x200L;
+ public static long Tumbling = 0x400L;
+ public static long Rallied = 0x800L;
+ public static long Stunned = 0x1000L;
+ public static long Blinded = 0x2000L;
+ public static long Dizzy = 0x4000L;
+ public static long Intimidated = 0x8000L;
+ public static long Immobilized = 0x10000L;
+ public static long Frozen = 0x20000L;
+ public static long Swimming = 0x40000L;
+ public static long SittingOnChair = 0x80000L;
+ public static long Crafting = 0x100000L;
+ public static long GlowingJedi = 0x200000L;
+ public static long MaskScent = 0x400000L;
+ public static long Poisoned = 0x800000L;
+ public static long Bleeding = 0x1000000L;
+ public static long Diseased = 0x2000000L;
+ public static long OnFire = 0x4000000L;
+ public static long RidingMount = 0x8000000L;
+ public static long MountedCreature = 0x10000000L;
+ public static long PilotingShip = 0x20000000L;
+ public static long ShipOperations = 0x40000000L;
+ public static long ShipGunner = 0x80000000L;
+ public static long ShipInterior = 0x100000000L;
+ public static long PilotingPobShip = 0x200000000L;
+ public static long PerformingDeathBlow = 0x400000000L;
+ public static long Disguised = 0x800000000L;
+ public static long ElectricBurned = 0x1000000000L;
+ public static long ColdBurned = 0x2000000000L;
+ public static long AcidBurned = 0x4000000000L;
+ public static long EnergyBurned = 0x8000000000L;
+ public static long KineticBurned = 0x10000000000L;
+
+}
diff --git a/src/resources/common/StateStatus.java b/src/resources/datatables/StateStatus.java
similarity index 57%
rename from src/resources/common/StateStatus.java
rename to src/resources/datatables/StateStatus.java
index e4039a46..e805f7cb 100644
--- a/src/resources/common/StateStatus.java
+++ b/src/resources/datatables/StateStatus.java
@@ -1,4 +1,25 @@
-package resources.common;
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
public class StateStatus {
// States.iff
diff --git a/src/resources/datatables/WeaponType.java b/src/resources/datatables/WeaponType.java
new file mode 100644
index 00000000..187332a4
--- /dev/null
+++ b/src/resources/datatables/WeaponType.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.datatables;
+
+public class WeaponType {
+
+ public static final int RIFLE = 0;
+ public static final int CARBINE = 1;
+ public static final int PISTOL = 2;
+ public static final int ONEHANDEDMELEE = 4;
+ public static final int TWOHANDEDMELEE = 5;
+ public static final int UNARMED = 6;
+ public static final int POLEARMMELEE = 7;
+ public static final int THROWN = 8;
+ public static final int ONEHANDEDSABER = 9;
+ public static final int TWOHANDEDSABER = 10;
+ public static final int POLEARMSABER = 11;
+ public static final int HEAVYWEAPON = 12;
+ public static final int FLAMETHROWER = 13;
+
+}
diff --git a/src/resources/gcw/CurrentServerGCWZoneHistory.java b/src/resources/gcw/CurrentServerGCWZoneHistory.java
index f56ed235..b98bba3b 100644
--- a/src/resources/gcw/CurrentServerGCWZoneHistory.java
+++ b/src/resources/gcw/CurrentServerGCWZoneHistory.java
@@ -21,17 +21,15 @@
******************************************************************************/
package resources.gcw;
-import java.nio.ByteOrder;
+import java.io.Serializable;
import org.apache.mina.core.buffer.IoBuffer;
-import com.sleepycat.persist.model.Persistent;
+import engine.resources.objects.Delta;
-import resources.objects.ListObject;
-
-@Persistent
-public class CurrentServerGCWZoneHistory extends ListObject implements Cloneable {
+public class CurrentServerGCWZoneHistory extends Delta implements Cloneable, Serializable {
+ private static final long serialVersionUID = 1L;
private int lastUpdateTime;
private int percent;
@@ -40,6 +38,10 @@ public class CurrentServerGCWZoneHistory extends ListObject implements Cloneable
this.lastUpdateTime = zone.getLastUpdateTime();
}
+ public CurrentServerGCWZoneHistory() {
+
+ }
+
public int getLastUpdateTime() {
synchronized(objectMutex) {
return lastUpdateTime;
@@ -54,7 +56,7 @@ public class CurrentServerGCWZoneHistory extends ListObject implements Cloneable
public byte[] getBytes() {
synchronized(objectMutex) {
- IoBuffer buffer = bufferPool.allocate((8), false).order(ByteOrder.LITTLE_ENDIAN);
+ IoBuffer buffer = createBuffer(8);
buffer.putInt(lastUpdateTime);
buffer.putInt(percent);
return buffer.array();
diff --git a/src/resources/gcw/CurrentServerGCWZonePercent.java b/src/resources/gcw/CurrentServerGCWZonePercent.java
index ad9c3895..8829b1b3 100644
--- a/src/resources/gcw/CurrentServerGCWZonePercent.java
+++ b/src/resources/gcw/CurrentServerGCWZonePercent.java
@@ -21,21 +21,18 @@
******************************************************************************/
package resources.gcw;
+import java.io.Serializable;
import java.math.BigDecimal;
import java.math.MathContext;
-import java.nio.ByteOrder;
import org.apache.mina.core.buffer.IoBuffer;
-import com.sleepycat.persist.model.Persistent;
-
+import engine.resources.objects.Delta;
import engine.resources.scene.Point2D;
-import resources.objects.ListObject;
-
-@Persistent
-public class CurrentServerGCWZonePercent extends ListObject implements Cloneable {
+public class CurrentServerGCWZonePercent extends Delta implements Cloneable, Serializable {
+ private static final long serialVersionUID = 1L;
private Point2D position;
private float radius = 0;
private BigDecimal weight;
@@ -53,6 +50,10 @@ public class CurrentServerGCWZonePercent extends ListObject implements Cloneable
this.percent = new BigDecimal("50.0", MathContext.DECIMAL128);
}
+ public CurrentServerGCWZonePercent() {
+
+ }
+
public Point2D getPosition() {
synchronized(objectMutex) {
return position.clone();
@@ -148,7 +149,7 @@ public class CurrentServerGCWZonePercent extends ListObject implements Cloneable
public byte[] getBytes() {
synchronized(objectMutex) {
- IoBuffer buffer = bufferPool.allocate(4, false).order(ByteOrder.LITTLE_ENDIAN);
+ IoBuffer buffer = createBuffer(4);
buffer.putInt(percent.intValue());
return buffer.array();
}
diff --git a/src/resources/gcw/OtherServerGCWZonePercent.java b/src/resources/gcw/OtherServerGCWZonePercent.java
index 6b4d410d..d97bf098 100644
--- a/src/resources/gcw/OtherServerGCWZonePercent.java
+++ b/src/resources/gcw/OtherServerGCWZonePercent.java
@@ -21,17 +21,15 @@
******************************************************************************/
package resources.gcw;
-import java.nio.ByteOrder;
+import java.io.Serializable;
import org.apache.mina.core.buffer.IoBuffer;
-import com.sleepycat.persist.model.Persistent;
+import engine.resources.objects.Delta;
-import resources.objects.ListObject;
-
-@Persistent
-public class OtherServerGCWZonePercent extends ListObject implements Cloneable {
+public class OtherServerGCWZonePercent extends Delta implements Cloneable, Serializable {
+ private static final long serialVersionUID = 1L;
private String zone = "";
private int percent = 50;
@@ -39,6 +37,10 @@ public class OtherServerGCWZonePercent extends ListObject implements Cloneable {
this.zone = zone;
}
+ public OtherServerGCWZonePercent() {
+
+ }
+
public String getZone() {
synchronized(objectMutex) {
return zone;
@@ -60,7 +62,7 @@ public class OtherServerGCWZonePercent extends ListObject implements Cloneable {
public byte[] getBytes() {
synchronized(objectMutex) {
- IoBuffer buffer = bufferPool.allocate((2 + zone.length() + 4), false).order(ByteOrder.LITTLE_ENDIAN);
+ IoBuffer buffer = createBuffer((2 + zone.length() + 4));
buffer.put(getAsciiString(zone));
buffer.putInt(percent);
return buffer.array();
diff --git a/src/resources/gcw/RegionDefender.java b/src/resources/gcw/RegionDefender.java
new file mode 100644
index 00000000..e72d1877
--- /dev/null
+++ b/src/resources/gcw/RegionDefender.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.gcw;
+
+import org.apache.mina.core.buffer.IoBuffer;
+
+import engine.resources.common.AString;
+import engine.resources.objects.Baseline;
+import engine.resources.objects.Delta;
+
+public class RegionDefender extends Delta {
+
+ private static final long serialVersionUID = 1L;
+
+ private AString region;
+ private byte byte1 = 0;
+ private byte byte2 = 0;
+
+ public RegionDefender(String region, byte byte1, byte byte2) {
+ this.region = new AString(region);
+ this.byte1 = byte1;
+ this.byte2 = byte2;
+ }
+
+ public RegionDefender(String region) {
+ this.region = new AString(region);
+ }
+
+ public RegionDefender() {
+ this.region = new AString();
+ }
+
+ public String getRegion() {
+ synchronized(objectMutex) {
+ return region.get();
+ }
+ }
+
+ public void setRegion(String region) {
+ synchronized(objectMutex) {
+ this.region = new AString(region);
+ }
+ }
+
+ public byte getByte1() {
+ synchronized(objectMutex) {
+ return byte1;
+ }
+ }
+
+ public void setByte1(byte byte1) {
+ synchronized(objectMutex) {
+ this.byte1 = byte1;
+ }
+ }
+
+ public byte getByte2() {
+ synchronized(objectMutex) {
+ return byte2;
+ }
+ }
+
+ public void setByte2(byte byte2) {
+ synchronized(objectMutex) {
+ this.byte2 = byte2;
+ }
+ }
+
+ public byte[] getBytes() {
+ synchronized(objectMutex) {
+ IoBuffer buffer = Baseline.createBuffer(region.getBytes().length + 2);
+ buffer.put(region.getBytes());
+ buffer.put(byte1);
+ buffer.put(byte2);
+ return buffer.array();
+ }
+ }
+
+}
diff --git a/src/resources/guild/Guild.java b/src/resources/guild/Guild.java
index 2a900945..4ea74669 100644
--- a/src/resources/guild/Guild.java
+++ b/src/resources/guild/Guild.java
@@ -21,91 +21,136 @@
******************************************************************************/
package resources.guild;
-import java.nio.ByteOrder;
-import java.util.List;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
-import org.apache.mina.core.buffer.IoBuffer;
-
-import resources.objects.ListObject;
+import main.NGECore;
+import services.chat.Mail;
import engine.resources.objects.SWGObject;
-public class Guild extends ListObject {
+public class Guild {
private int id;
+ private int chatRoomId;
private String abbreviation;
private String name;
- private SWGObject leader;
- private List members;
+ private long leader;
+ private String leaderName;
+ private Map members = new HashMap();
+ private Map sponsoredPlayers = new HashMap();
+ private String motd = "";
public Guild(int id, String abbreviation, String name, SWGObject leader) {
this.id = id;
this.abbreviation = abbreviation;
this.name = name;
- this.leader = leader;
- this.members.add(leader);
+ this.leader = leader.getObjectID();
+ this.leaderName = leader.getCustomName();
+ }
+
+ public Guild() { }
+
+ public GuildMember addMember(long objID) {
+ GuildMember member = new GuildMember(objID);
+ members.put(objID, member);
+ return member;
+ }
+
+ public void sendGuildMail(String sender, String subject, String message) {
+ NGECore core = NGECore.getInstance();
+ Date date = new Date();
+ members.forEach((id, member) -> {
+ Mail guildMail = new Mail();
+ guildMail.setMailId(core.chatService.generateMailId());
+ guildMail.setTimeStamp((int) date.getTime());
+ guildMail.setRecieverId(id);
+ guildMail.setStatus(Mail.NEW);
+ guildMail.setMessage(message);
+ guildMail.setSubject(subject);
+ guildMail.setSenderName(sender);
+ core.chatService.storePersistentMessage(guildMail);
+
+ if (core.objectService.getObject(id) != null) {
+ core.chatService.sendPersistentMessageHeader(core.objectService.getObject(id).getClient(), guildMail);
+ }
+ });
}
public int getId() {
- synchronized(objectMutex) {
- return id;
- }
+ return id;
}
public void setId(int id) {
- synchronized(objectMutex) {
- this.id = id;
- }
+ this.id = id;
}
+ public int getChatRoomId() {
+ return chatRoomId;
+ }
+
+ public void setChatRoomId(int chatRoomId) {
+ this.chatRoomId = chatRoomId;
+ }
+
public String getAbbreviation() {
- synchronized(objectMutex) {
- return abbreviation;
- }
+ return abbreviation;
}
public void setAbbreviation(String abbreviation) {
- synchronized(objectMutex) {
- this.abbreviation = abbreviation;
- }
+ this.abbreviation = abbreviation;
}
public String getName() {
- synchronized(objectMutex) {
- return name;
- }
+ return name;
}
public void setName(String name) {
- synchronized(objectMutex) {
- this.name = name;
- }
+ this.name = name;
}
public String getString() {
- synchronized(objectMutex) {
- return (Integer.toString(id) + ":" + abbreviation);
- }
+ return (Integer.toString(getId()) + ":" + getAbbreviation());
}
- public SWGObject getLeader() {
+ public long getLeader() {
return leader;
}
- public void setLeader(SWGObject leader) {
+ public void setLeader(long leader) {
this.leader = leader;
}
- public List getMembers() {
+ public String getMotd() {
+ return motd;
+ }
+
+ public void setMotd(String motd) {
+ this.motd = motd;
+ }
+
+ public Map getMembers() {
return members;
}
- public byte[] getBytes() {
- synchronized(objectMutex) {
- IoBuffer buffer = bufferPool.allocate((getString().length() + 2), false).order(ByteOrder.LITTLE_ENDIAN);
- buffer.put(getAsciiString(getString()));
- return buffer.array();
- }
+ public String getLeaderName() {
+ return leaderName;
}
+ public void setLeaderName(String leaderName) {
+ this.leaderName = leaderName;
+ }
+
+ public Map getSponsoredPlayers() {
+ return sponsoredPlayers;
+ }
+
+ public void setSponsoredPlayers(Map sponsoredPlayers) {
+ this.sponsoredPlayers = sponsoredPlayers;
+ }
+
+ public GuildMember getMember(long objectID) {
+ return members.get(objectID);
+ }
}
diff --git a/src/resources/guild/GuildMember.java b/src/resources/guild/GuildMember.java
new file mode 100644
index 00000000..c8188cd1
--- /dev/null
+++ b/src/resources/guild/GuildMember.java
@@ -0,0 +1,332 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.guild;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Vector;
+
+public class GuildMember {
+ private long objectId;
+ private long joinTime;
+ private String profession = "";
+ private short level;
+ private String rank = "";
+ private String name = "";
+ private String title = "";
+ // TODO: These might have to be moved to a new GuildRank class depending on how permissions worked for NGE
+ //this works for now... Lack of NGE Guild Rank guides makes re-creation difficult (Ranks introduced Game Update 8: http://swg.wikia.com/wiki/Game_Update_8)
+
+ private Vector permissions = new Vector();
+ private boolean mailPermission = false;
+ private boolean sponsorPermission = false;
+ private boolean titlePermission = false;
+ private boolean kickPermission = false;
+ private boolean acceptPermission = false;
+ private boolean warPermission = false;
+ private boolean changeNamePermission = false;
+ private boolean disbandPermission = false;
+ private boolean rankPermission = false;
+
+ private boolean warExcluded = false;
+ private boolean warExclusive = false;
+
+ public GuildMember() { }
+
+ public GuildMember(long objectId) {
+ this.objectId = objectId;
+ this.joinTime = System.currentTimeMillis();
+ }
+
+ public void removeAllPermissions() {
+ setMailPermission(false);
+ setSponsorPermission(false);
+ setTitlePermission(false);
+ setKickPermission(false);
+ setAcceptPermission(false);
+ setWarPermission(false);
+ setChangeNamePermission(false);
+ setDisbandPermission(false);
+ setRankPermission(false);
+ }
+
+ public void giveAllPermissions() {
+ setMailPermission(true);
+ setSponsorPermission(true);
+ setTitlePermission(true);
+ setKickPermission(true);
+ setAcceptPermission(true);
+ setWarPermission(true);
+ setChangeNamePermission(true);
+ setDisbandPermission(true);
+ setRankPermission(true);
+ }
+
+ public long getObjectId() {
+ return objectId;
+ }
+ public void setObjectId(long objectId) {
+ this.objectId = objectId;
+ }
+ public long getJoinTime() {
+ return joinTime;
+ }
+
+ public void setJoinTime(long joinTime) {
+ this.joinTime = joinTime;
+ }
+
+ public boolean hasMailPermission() {
+ return mailPermission;
+ }
+ public void setMailPermission(boolean mailPermission) {
+ if (mailPermission)
+ permissions.add("Mail");
+ else
+ permissions.remove("Mail");
+
+ this.mailPermission = mailPermission;
+ }
+
+ public boolean hasSponsorPermission() {
+ return sponsorPermission;
+ }
+ public void setSponsorPermission(boolean sponsorPermission) {
+ if (sponsorPermission)
+ permissions.add("Sponsor");
+ else
+ permissions.remove("Sponsor");
+
+ this.sponsorPermission = sponsorPermission;
+ }
+ public boolean hasTitlePermission() {
+ return titlePermission;
+ }
+ public void setTitlePermission(boolean titlePermission) {
+ if (titlePermission)
+ permissions.add("Title");
+ else
+ permissions.remove("Title");
+
+ this.titlePermission = titlePermission;
+ }
+ public boolean hasKickPermission() {
+ return kickPermission;
+ }
+ public void setKickPermission(boolean kickPermission) {
+ if (kickPermission)
+ permissions.add("Kick");
+ else
+ permissions.remove("Kick");
+
+ this.kickPermission = kickPermission;
+ }
+ public boolean hasAcceptPermission() {
+ return acceptPermission;
+ }
+ public void setAcceptPermission(boolean acceptPermission) {
+ if (acceptPermission)
+ permissions.add("Accept");
+ else
+ permissions.remove("Accept");
+
+ this.acceptPermission = acceptPermission;
+ }
+ public boolean hasWarPermission() {
+ return warPermission;
+ }
+ public void setWarPermission(boolean warPermission) {
+ if (warPermission)
+ permissions.add("War");
+ else
+ permissions.remove("War");
+
+ this.warPermission = warPermission;
+ }
+ public boolean hasChangeNamePermission() {
+ return changeNamePermission;
+ }
+ public void setChangeNamePermission(boolean changeNamePermission) {
+ if (changeNamePermission)
+ permissions.add("Change Guild Name");
+ else
+ permissions.remove("Change Guild Name");
+
+ this.changeNamePermission = changeNamePermission;
+ }
+ public boolean hasDisbandPermission() {
+ return disbandPermission;
+ }
+ public void setDisbandPermission(boolean disbandPermission) {
+ if (disbandPermission)
+ permissions.add("Disband");
+ else
+ permissions.remove("Disband");
+
+ this.disbandPermission = disbandPermission;
+ }
+
+ public boolean hasRankPermission() {
+ return rankPermission;
+ }
+
+ public void setRankPermission(boolean rankPermission) {
+ if (rankPermission)
+ permissions.add("Rank");
+ else
+ permissions.remove("Rank");
+ this.rankPermission = rankPermission;
+ }
+
+ public boolean isWarExcluded() {
+ return warExcluded;
+ }
+
+ public void setWarExcluded(boolean warExcluded) {
+ if (warExcluded)
+ permissions.add("War Excluded");
+ else
+ permissions.remove("War Excluded");
+ this.warExcluded = warExcluded;
+ }
+
+ public boolean isWarExclusive() {
+ return warExclusive;
+ }
+
+ public void setWarExclusive(boolean warExclusive) {
+ if (warExclusive)
+ permissions.add("War Exclusive");
+ else
+ permissions.remove("War Exclusive");
+ this.warExclusive = warExclusive;
+ }
+
+ public String getProfession() {
+ return profession;
+ }
+
+ public void setProfession(String profession) {
+ this.profession = profession;
+ }
+
+ public short getLevel() {
+ return level;
+ }
+
+ public void setLevel(short level) {
+ this.level = level;
+ }
+
+ public String getRank() {
+ return rank;
+ }
+
+ public void setRank(String rank) {
+ this.rank = rank;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Map getAllPermissions(GuildMember requester) {
+ Map permissions = new HashMap();
+
+ // Only allows requester to change permissions that they have (Ex. Can't change sponsor permission on a member if they don't have that permission)
+ // War Excluded and War Exclusive did not follow that rule
+ if (requester.getObjectId() != getObjectId()) {
+ if (requester.hasMailPermission()) {
+ if (hasMailPermission()) permissions.put((long) 1, "@guild:permission_mail_yes");
+ else permissions.put((long) 1, "@guild:permission_mail_no");
+ }
+
+ if (requester.hasSponsorPermission()) {
+ if (hasSponsorPermission()) permissions.put((long) 2, "@guild:permission_sponsor_yes");
+ else permissions.put((long) 2, "@guild:permission_sponsor_no");
+ }
+
+ if (requester.hasTitlePermission()) {
+ if (hasTitlePermission()) permissions.put((long) 3, "@guild:permission_title_yes");
+ else permissions.put((long) 3, "@guild:permission_title_no");
+ }
+
+ if (requester.hasAcceptPermission()) {
+ if (hasAcceptPermission()) permissions.put((long) 4, "@guild:permission_accept_yes");
+ else permissions.put((long) 4, "@guild:permission_accept_no");
+ }
+
+ if (requester.hasKickPermission()) {
+ if (hasKickPermission()) permissions.put((long) 5, "@guild:permission_kick_yes");
+ else permissions.put((long) 5, "@guild:permission_kick_no");
+ }
+
+ if (requester.hasWarPermission()) {
+ if (hasWarPermission()) permissions.put((long) 6, "@guild:permission_war_yes");
+ else permissions.put((long) 6, "@guild:permission_war_no");
+ }
+
+ if (requester.hasChangeNamePermission()) {
+ if (hasChangeNamePermission()) permissions.put((long) 7, "@guild:permission_namechange_yes");
+ else permissions.put((long) 7, "@guild:permission_namechange_no");
+ }
+
+ if (requester.hasDisbandPermission()) {
+ if (hasDisbandPermission()) permissions.put((long) 8, "@guild:permission_disband_yes");
+ else permissions.put((long) 8, "@guild:permission_disband_no");
+ }
+
+ if (requester.hasRankPermission()) {
+ if (hasRankPermission()) permissions.put((long) 9, "@guild:permission_rank_yes");
+ else permissions.put((long) 9, "@guild:permission_rank_no");
+ }
+ }
+ if (requester.hasWarPermission() || (requester.getObjectId() == getObjectId())) {
+ if (isWarExcluded()) permissions.put((long) 10, "+ War Excluded");
+ else permissions.put((long) 10, "- War Excluded");
+
+ if (isWarExclusive()) permissions.put((long) 11, "+ War Exclusive");
+ else permissions.put((long) 11, "- War Exclusive");
+ }
+ return permissions;
+ }
+
+ public Vector getPermissions() {
+ return permissions;
+ }
+
+ public void setPermissions(Vector permissions) {
+ this.permissions = permissions;
+ }
+}
diff --git a/src/resources/harvest/SurveyTool.java b/src/resources/harvest/SurveyTool.java
new file mode 100644
index 00000000..f23be1d2
--- /dev/null
+++ b/src/resources/harvest/SurveyTool.java
@@ -0,0 +1,333 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.harvest;
+
+import java.io.Serializable;
+import java.util.Vector;
+
+import main.NGECore;
+
+import engine.resources.scene.Planet;
+import engine.resources.scene.Point3D;
+import engine.resources.scene.Quaternion;
+import resources.objects.creature.CreatureObject;
+import resources.objects.resource.GalacticResource;
+import resources.objects.resource.ResourceConcentration;
+import resources.objects.tangible.TangibleObject;
+
+/**
+ * @author Charon
+ */
+public class SurveyTool extends TangibleObject implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+ private byte toolType=0;
+ private long surveyResourceID;
+ private long userID=0;
+ private Long tanoID=0L;
+ private byte SurveyRangeSetting=0;
+
+ private transient String surveyEffectString="";
+ private transient String sampleEffectString="";
+ private transient boolean currentlySurveying=false;
+ private transient boolean currentlySampling=false;
+ private transient boolean currentlyCoolingDown=false;
+ private transient boolean exceptionalState=false;
+ private transient boolean recoveryMode=false;
+ private transient Long lastSurveyTime=0L;
+ private transient Long lastSampleTime=0L;
+ private transient Long recoveryTime=10L;
+
+ public static byte MineralSurveyDevice = 1;
+ public static byte ChemicalSurveyDevice = 2;
+ public static byte FloraSurveyTool = 3;
+ public static byte GasPocketSurveyDevice = 4;
+ public static byte WaterSurveyDevice = 5;
+ public static byte WindCurrentSurveyingTool = 6;
+ public static byte AmbientSolarEnergySurveyingTool = 7;
+ public static byte CompleteResourceSurveyDevice = 8;
+
+ public SurveyTool() {
+ super();
+ this.exceptionalState = false;
+ }
+
+ @Override
+ public void initAfterDBLoad() {
+ super.init();
+ this.exceptionalState = false;
+ surveyEffectString = "";
+ sampleEffectString = "";
+ defendersList = new Vector();
+ }
+
+ public SurveyTool(long objectID, Planet planet, Point3D position, Quaternion orientation, String template) {
+ super(objectID, planet, position, orientation, template);
+ surveyEffectString = "";
+ sampleEffectString = "";
+ this.tanoID = objectID;
+ this.exceptionalState = false;
+ this.recoveryMode = false;
+ switch (template) {
+ case "object/tangible/survey_tool/shared_survey_tool_mineral.iff" :
+ toolType = 1;
+ surveyEffectString = "clienteffect/survey_tool_mineral.cef";
+ sampleEffectString = "clienteffect/survey_sample_mineral.cef";
+ break;
+ case "object/tangible/survey_tool/shared_survey_tool_inorganic.iff" :
+ toolType = 2;
+ surveyEffectString = "clienteffect/survey_tool_lumber.cef";
+ sampleEffectString = "clienteffect/survey_sample_lumber.cef";
+ break;
+ case "object/tangible/survey_tool/shared_survey_tool_lumber.iff" :
+ toolType = 3;
+ surveyEffectString = "clienteffect/survey_tool_lumber.cef";
+ sampleEffectString = "clienteffect/survey_sample_lumber.cef";
+ break;
+ case "object/tangible/survey_tool/shared_survey_tool_gas.iff" :
+ toolType = 4;
+ surveyEffectString = "clienteffect/survey_tool_gas.cef";
+ sampleEffectString = "clienteffect/survey_sample_gas.cef";
+ break;
+ case "object/tangible/survey_tool/shared_survey_tool_moisture.iff" :
+ toolType = 5;
+ surveyEffectString = "clienteffect/survey_tool_liquid.cef";
+ sampleEffectString = "clienteffect/survey_sample_liquid.cef";
+ break;
+ case "object/tangible/survey_tool/shared_survey_tool_wind.iff" :
+ toolType = 6;
+ surveyEffectString = "clienteffect/survey_tool_gas.cef";
+ sampleEffectString = "clienteffect/survey_sample_gas.cef";
+ break;
+ case "object/tangible/survey_tool/shared_survey_tool_solar.iff" :
+ toolType = 7;
+ surveyEffectString = "clienteffect/survey_tool_moisture.cef";
+ sampleEffectString = "clienteffect/survey_sample_moisture.cef";
+ break;
+ case "object/tangible/survey_tool/shared_survey_tool_all.iff" :
+ toolType = 8;
+ surveyEffectString = "clienteffect/survey_tool_liquid.cef";
+ sampleEffectString = "clienteffect/survey_sample_liquid.cef";
+ break;
+ default: toolType = -1;
+ }
+ }
+
+ public SurveyTool(String template, Long tanoID) {
+ super();
+ surveyEffectString = "";
+ sampleEffectString = "";
+ this.tanoID = tanoID;
+ this.exceptionalState = false;
+ switch (template) {
+ case "object/tangible/survey_tool/shared_survey_tool_mineral.iff" :
+ toolType = 1;
+ surveyEffectString = "clienteffect/survey_tool_mineral.cef";
+ sampleEffectString = "clienteffect/survey_sample_mineral.cef";
+ break;
+ case "object/tangible/survey_tool/shared_survey_tool_inorganic.iff" :
+ toolType = 2;
+ surveyEffectString = "clienteffect/survey_tool_lumber.cef";
+ sampleEffectString = "clienteffect/survey_sample_lumber.cef";
+ break;
+ case "object/tangible/survey_tool/shared_survey_tool_lumber.iff" :
+ toolType = 3;
+ surveyEffectString = "clienteffect/survey_tool_lumber.cef";
+ sampleEffectString = "clienteffect/survey_sample_lumber.cef";
+ break;
+ case "object/tangible/survey_tool/shared_survey_tool_gas.iff" :
+ toolType = 4;
+ surveyEffectString = "clienteffect/survey_tool_gas.cef";
+ sampleEffectString = "clienteffect/survey_sample_gas.cef";
+ break;
+ case "object/tangible/survey_tool/shared_survey_tool_moisture.iff" :
+ toolType = 5;
+ surveyEffectString = "clienteffect/survey_tool_liquid.cef";
+ sampleEffectString = "clienteffect/survey_sample_liquid.cef";
+ break;
+ case "object/tangible/survey_tool/shared_survey_tool_wind.iff" :
+ toolType = 6;
+ surveyEffectString = "clienteffect/survey_tool_gas.cef";
+ sampleEffectString = "clienteffect/survey_sample_gas.cef";
+ break;
+ case "object/tangible/survey_tool/shared_survey_tool_solar.iff" :
+ toolType = 7;
+ surveyEffectString = "clienteffect/survey_tool_moisture.cef";
+ sampleEffectString = "clienteffect/survey_sample_moisture.cef";
+ break;
+ case "object/tangible/survey_tool/shared_survey_tool_all.iff" :
+ toolType = 8;
+ surveyEffectString = "clienteffect/survey_tool_liquid.cef";
+ sampleEffectString = "clienteffect/survey_sample_liquid.cef";
+ break;
+ default: toolType = -1;
+ }
+
+ }
+
+ public void setToolType(byte toolType) {
+ this.toolType = toolType;
+ }
+
+ public byte getToolType() {
+ return this.toolType;
+ }
+
+ public String getSurveyEffectString() {
+ return surveyEffectString;
+ }
+
+ public String getSampleEffectString() {
+ return sampleEffectString;
+ }
+
+ public void setCurrentlySurveying(boolean toggle){
+ this.currentlySurveying=toggle;
+ }
+
+ public boolean getCurrentlySurveying(){
+ return this.currentlySurveying;
+ }
+
+ public void setCurrentlySampling(boolean toggle){
+ this.currentlySampling=toggle;
+ }
+
+ public boolean getCurrentlySampling(){
+ return this.currentlySampling;
+ }
+
+ public void setLastSurveyTime(Long time){
+ this.lastSurveyTime = time;
+ }
+
+ public Long getLastSurveyTime(){
+ return this.lastSurveyTime;
+ }
+
+ public void setLastSampleTime(Long time){
+ this.lastSampleTime = time;
+ }
+
+ public Long getLastSampleTime(){
+ return this.lastSampleTime;
+ }
+
+ public void setSurveyResourceID(long surveyResourceID){
+ this.surveyResourceID = surveyResourceID;
+ }
+
+ public long getSurveyResourceID(){
+ return this.surveyResourceID;
+ }
+
+ public boolean getCurrentlyCoolingDown() {
+ return currentlyCoolingDown;
+ }
+
+ public void setCurrentlyCoolingDown(boolean currentlyCoolingDown) {
+ this.currentlyCoolingDown = currentlyCoolingDown;
+ }
+
+ public Long getRecoveryTime() {
+ return recoveryTime;
+ }
+
+ public void setRecoveryTime(Long recoveryTime) {
+ this.recoveryTime = recoveryTime;
+ }
+
+ public long getUserID() {
+ return userID;
+ }
+
+ public void setUserID(long userID) {
+ this.userID = userID;
+ }
+
+ public Long getTanoID() {
+ return tanoID;
+ }
+
+ public void setTanoID(Long tanoID) {
+ this.tanoID = tanoID;
+ }
+
+ public boolean isExceptionalState() {
+ return exceptionalState;
+ }
+
+ public void setExceptionalState(boolean exceptionalState) {
+ this.exceptionalState = exceptionalState;
+ }
+
+ public boolean isRecoveryMode() {
+ return this.recoveryMode;
+ }
+
+ public void setRecoveryMode(boolean recoveryMode) {
+ this.recoveryMode = recoveryMode;
+ }
+
+ public byte getSurveyRangeSetting() {
+ return SurveyRangeSetting;
+ }
+
+ public void setSurveyRangeSetting(byte surveyRangeSetting) {
+ SurveyRangeSetting = surveyRangeSetting;
+ }
+
+ public void sendConstructSurveyMapMessage(){
+ float surveyRadius = 64.0f;
+ int surveyToolRangeSetting = this.getSurveyRangeSetting();
+ //surveyToolRangeSetting = 4;
+ int divisor = 0;
+ if (surveyToolRangeSetting==0) {
+ divisor = 2;
+ surveyRadius = 64.0f;
+ } else if (surveyToolRangeSetting==1) {
+ divisor = 3;
+ surveyRadius = 128.0f;
+ } else if (surveyToolRangeSetting==2) {
+ divisor = 3;
+ surveyRadius = 192.0f;
+ } else if (surveyToolRangeSetting==3) {
+ divisor = 4;
+ surveyRadius = 256.0f;
+ } else if (surveyToolRangeSetting==4) {
+ divisor = 4;
+ surveyRadius = 320.0f;
+ } else {
+ divisor = 5;
+ surveyRadius = 3072.0f;
+ }
+
+ float differential = surveyRadius / (float) divisor;
+ GalacticResource resourceToSurvey = (GalacticResource) NGECore.getInstance().objectService.getObject(this.getSurveyResourceID());
+ CreatureObject user = (CreatureObject) NGECore.getInstance().objectService.getObject(this.getUserID());
+ if (resourceToSurvey==null || user==null)
+ return;
+ Vector concentrationMap = resourceToSurvey.buildConcentrationsCollection(user.getPosition(),resourceToSurvey, surveyRadius, differential, user.getPlanetId());
+ resourceToSurvey.constructSurveyMapMessage(user, concentrationMap, surveyRadius);
+ //this.getUser().sendSystemMessage("Distance to nearest Deposit : " + this.getSurveyResource().getHelperMinDist(), (byte) 0);
+ }
+}
\ No newline at end of file
diff --git a/src/resources/objects/MultimapProxy.java b/src/resources/loot/LootDrop.java
similarity index 53%
rename from src/resources/objects/MultimapProxy.java
rename to src/resources/loot/LootDrop.java
index 67ab5944..efd455ba 100644
--- a/src/resources/objects/MultimapProxy.java
+++ b/src/resources/loot/LootDrop.java
@@ -19,50 +19,33 @@
* Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
* Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
******************************************************************************/
-package resources.objects;
+package resources.loot;
import java.util.ArrayList;
import java.util.List;
-import java.util.Map.Entry;
-import org.python.google.common.collect.ArrayListMultimap;
-import org.python.google.common.collect.Multimap;
-
-import com.sleepycat.persist.model.Persistent;
-import com.sleepycat.persist.model.PersistentProxy;
-
-@Persistent(proxyFor=Multimap.class)
-public class MultimapProxy implements PersistentProxy> {
+public class LootDrop {
- private int size = 0;
- private K[] keys;
- private V[] values;
+ private List elements = new ArrayList();
+ private String droppedItemTemplate;
- private MultimapProxy() { }
-
- public void initializeProxy(Multimap object) {
- List keyList = new ArrayList();
- List valueList = new ArrayList();
+ public LootDrop(){
- for (Entry entry : object.entries()) {
- keyList.add(entry.getKey());
- valueList.add(entry.getValue());
- }
-
- size = object.entries().size();
-
- keys = keyList.toArray(keys);
- values = valueList.toArray(values);
}
- public Multimap convertProxy() {
- Multimap map = ArrayListMultimap.create();
-
- for (int i = 0; i < size; i++) {
- map.put(keys[i], values[i]);
- }
-
- return map;
+ public void addElement(String element){
+ elements.add(element);
}
+ public List getElements(){
+ return elements;
+ }
+
+ public String getDroppedItemTemplate() {
+ return droppedItemTemplate;
+ }
+
+ public void setDroppedItemTemplate(String droppedItemTemplate) {
+ this.droppedItemTemplate = droppedItemTemplate;
+ }
}
diff --git a/src/resources/loot/LootGroup.java b/src/resources/loot/LootGroup.java
new file mode 100644
index 00000000..94ad4ef7
--- /dev/null
+++ b/src/resources/loot/LootGroup.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.loot;
+
+import java.io.Serializable;
+
+/**
+ * @author Charon
+ */
+
+public class LootGroup implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private String[] lootPoolNames;
+ private double[] lootPoolChances;
+ private double lootGroupChance;
+
+ public LootGroup(){
+
+ }
+
+ public LootGroup(String[] lootPoolNames, double[] lootPoolChances, double lootGroupChance){
+ this.lootPoolNames = lootPoolNames;
+ this.lootPoolChances = lootPoolChances;
+ this.lootGroupChance = lootGroupChance;
+ }
+
+ public void addLootData(String[] lootPoolNames, double[] lootPoolChances, double lootGroupChance){
+ this.lootPoolNames = lootPoolNames;
+ this.lootPoolChances = lootPoolChances;
+ this.lootGroupChance = lootGroupChance;
+ }
+
+ public String[] getLootPoolNames() {
+ return lootPoolNames;
+ }
+
+ public double[] getLootPoolChances() {
+ return lootPoolChances;
+ }
+
+ public double getLootGroupChance() {
+ return lootGroupChance;
+ }
+}
diff --git a/src/resources/loot/LootPool.java b/src/resources/loot/LootPool.java
new file mode 100644
index 00000000..83576a16
--- /dev/null
+++ b/src/resources/loot/LootPool.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.loot;
+
+/**
+ * @author Charon
+ */
+
+public class LootPool {
+
+ public LootPool(){
+
+ }
+}
diff --git a/src/resources/loot/LootRollSession.java b/src/resources/loot/LootRollSession.java
new file mode 100644
index 00000000..b20f1030
--- /dev/null
+++ b/src/resources/loot/LootRollSession.java
@@ -0,0 +1,192 @@
+/*******************************************************************************
+ * Copyright (c) 2013
+ *
+ * This File is part of NGECore2.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine.
+ * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination.
+ ******************************************************************************/
+package resources.loot;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import engine.resources.scene.Planet;
+import main.NGECore;
+import resources.objects.creature.CreatureObject;
+import resources.objects.group.GroupObject;
+import resources.objects.tangible.TangibleObject;
+
+/**
+ * @author Charon
+ */
+
+public class LootRollSession {
+
+ private String SessionID; // leaderName-SystemTime
+ private boolean sessionValid;
+ private GroupObject playerGroup;
+ private CreatureObject requester;
+ private List droppedItems;
+ private Planet sessionPlanet;
+ private List errorMessages;
+ private int sessionLootMode;
+ private boolean allowRareLoot;
+ private boolean increasedRLSChance;
+ private int lootedObjectLevel=0;
+ private int lootedObjectDifficulty=0;
+
+ public LootRollSession()
+ {
+ droppedItems = new ArrayList();
+ errorMessages = new ArrayList();
+ }
+
+ public LootRollSession(CreatureObject requester, TangibleObject lootedObject){
+
+ long requesterGroupId = requester.getGroupId();
+ if (requesterGroupId>0){
+ this.playerGroup = (GroupObject) NGECore.getInstance().objectService.getObject(requesterGroupId);
+ this.SessionID = playerGroup.getGroupLeader().getCustomName()+"-"+System.currentTimeMillis();
+
+ } else {
+ this.SessionID = requester.getCustomName()+"-"+System.currentTimeMillis();
+ }
+
+ if (lootedObject instanceof CreatureObject){
+ CreatureObject lootedCreature = (CreatureObject)lootedObject;
+ lootedObjectLevel = lootedCreature.getLevel();
+ lootedObjectDifficulty = lootedCreature.getDifficulty();
+ // Exclude rare loot depending on creature level
+ // For groups maybe average CL?
+ if (requester.getLevel()-lootedCreature.getLevel()<=6){
+ this.setAllowRareLoot(true);
+ }
+ }
+
+ // Group situation
+ if (this.getPlayerGroup()!=null){
+ if (this.getPlayerGroup().getMemberList().size()>=4)
+ this.setIncreasedRLSChance(true);
+ }
+
+ // Possible AFKer check here
+
+
+ droppedItems = new ArrayList();
+ errorMessages = new ArrayList();
+ sessionPlanet = requester.getPlanet();
+ this.requester = requester;
+ allowRareLoot = false;
+ }
+
+ public List getDroppedItems() {
+ return droppedItems;
+ }
+
+ public void addDroppedItem(TangibleObject droppedItem) {
+ this.droppedItems.add(droppedItem);
+ }
+
+ public String getSessionID() {
+ return SessionID;
+ }
+
+ public void setSessionID(String sessionID) {
+ SessionID = sessionID;
+ }
+
+ public void generateSessionID(String sessionID) {
+ SessionID = sessionID;
+ }
+
+ public Planet getSessionPlanet() {
+ return sessionPlanet;
+ }
+
+ public void setSessionPlanet(Planet planet)
+ {
+ this.sessionPlanet = planet;
+ }
+
+ public List