Files
starruler-linux/data/objects.txt
T
2018-07-17 14:15:37 +02:00

365 lines
9.1 KiB
Plaintext

//Defines types of objects, their governing script class, their accessible script methods, their components, and native members
//Shared members for all object types (cannot define methods)
Object {
visible:
Region$ region
}
Ship : objects.Ship::ShipScript {
Mover mover
Orbit@ orbit = null
LeaderAI@ leaderAI = null
SupportAI@ supportAI = null
Abilities@ abilities = null
Statuses@ statuses = null
Construction@ construction = null
Cargo@ cargo = null
visible:
float MaxEnergy = 0
float Energy = 0
float DPS = 0
float MaxDPS = 0
float Supply = 0
float MaxSupply = 0
float Shield = 0
float MaxShield = 0
bool isFTLing = false
bool isFree = false
quaterniond formationDest
Blueprint blueprint
Object Leader
Object RetrofittingAt
bool delayFTL = false
double minEngagementRange = 0
double maxEngagementRange = 0
int lastHit = 0
local safe bool get_isStation();
remote restricted:
void scuttle();
server:
async void retrofit(const Design@ toDesign);
bool consumeEnergy(double amount);
void refundEnergy(double amount);
void consumeSupply(double amount);
void consumeSupplyPct(double pct);
bool consumeMinSupply(double amount);
void refundSupply(double amount);
void repairShip(double amount);
void makeNotFree();
void setHealthPct(float pct);
void modSupplyBonus(float amount);
void modMass(float amount);
safe float getMass();
safe float getBaseMass();
int get_maintenanceCost();
void startEffects();
void setHoldFire(bool value);
void setDisableRegionVision(bool value);
void restoreShield(double amount);
void modBonusShield(float amount);
void shieldDamage(double amount);
void damageAllHexes(double amount, Object@ source = null);
void modHPFactor(float pct);
void modSupplyConsumeFactor(float mod);
safe bool getDisableRegionVision();
safe bool getHoldFire();
Object@ getLastHitBy();
void addBonusEffectiveness(float mod);
void recordDamage(Object@ source);
void startRetrofit(Object@ from, const Design@ to);
void stopRetrofit(Object@ from);
void completeRetrofit(Object@ from);
void suppress(double amount);
void mangle(double amount);
void startFire();
void triggerLeaderChange(Object@ prevLeader, Object@ newLeader);
safe Empire@ getKillCredit();
}
Star : objects.Star::StarScript {
Orbit orbit
visible:
double temperature
double Health = 20000000000
double MaxHealth = 20000000000
server:
void dealStarDamage(double amount);
}
Planet : objects.Planet::PlanetScript {
Orbit orbit
Construction buildQueue
Resources resources
SurfaceComponent surface
Abilities@ abilities = null
int ResearchRate = 100
LeaderAI leaderAI
Statuses statuses
Mover@ mover = null
Cargo cargo
visible:
double OrbitSize = 100
double Population
int PlanetType
bool renamed = false
double Health = 1000000000
double MaxHealth = 1000000000
local safe uint get_moonCount() const;
server:
void giveHistoricMemory(Empire@ emp);
void dealPlanetDamage(double amount);
void setRing(uint ring);
void destroyQuiet();
void addMoon(float size = 0, uint style = 0);
}
ColonyShip : objects.ColonyShip::ColonyShipScript {
invisible:
Object$ Origin
Object$ Target
Mover mover
visible:
synced double CarriedPopulation = 0
synced double Health = 50
}
Orbital : objects.Orbital::OrbitalScript {
Orbit orbit
Mover mover
Construction@ construction = null
Abilities@ abilities = null
LeaderAI@ leader = null
Resources resources
Statuses statuses
Cargo@ cargo = null
bool usingLabor = false
local visible:
safe uint get_coreModule();
safe bool get_isStandalone();
safe bool get_isContested();
safe bool get_isDisabled();
OrbitalSection@[] getSections();
bool hasModule(uint typeId);
safe double get_health();
safe double get_maxHealth();
safe double get_armor();
safe double get_maxArmor();
safe double get_dps();
safe double get_efficiency();
safe vec3d get_strategicIconPosition() const;
double getValue(uint id);
const Design@ getDesign(uint id);
Object@ getObject(uint id);
safe bool hasMaster();
safe bool isMaster(Object@ obj);
Orbital@ getMaster();
restricted remote:
void buildModule(uint typeId);
void destroyModule(int id);
void scuttle();
void sendValue(uint id, double value = 1.0);
void sendObject(uint id, Object@ obj);
void sendDesign(uint id, const Design@ design);
server:
async relocking void checkOrbit();
vodi setMaster(Orbital@ orb);
void setBuildPct(double pct);
void modDPS(double mod);
void setDisabled(bool value)
void setContested(bool value);
void addSection(uint modId);
void modMaxArmor(double value);
void modMaxHealth(double value);
void modDR(double value);
void triggerDelta();
void makeFree();
void repairOrbital(double amount);
}
Region : regions.Region::RegionScript {
RegionObjects objects
visible:
locked_int SiegedMask = 0
locked_int SiegingMask = 0
locked_int ProtectedMask = 0
locked_int FreeFTLMask = 0
locked_int BlockFTLMask = 0
locked_int GateMask = 0
locked_int ScoutingMask = 0
int EngagedMask = 0
int CombatMask = 0
int CoreSystemMask = 0
int AngleOffset = 0
double InnerRadius = 100
double OuterRadius = 200
int SystemId = -1
int PrimaryEmpire = -1
uint ContestedMask = 0
uint TradeMask = 0
uint PlanetsMask = 0
uint VisionMask = 0
uint BasicVisionMask = 0
uint DonateVisionMask = 0
uint MemoryMask = 0
uint ShipyardMask = 0
int TargetCostMod = 0
uint AvailSupportMask = 0
locked_int ExploredMask = 0
local:
safe bool getSystemFlag(Empire@ emp, uint flagIndex) const;
safe bool getSystemFlagAny(uint flagIndex) const;
server:
uint SeenMask = 0
void setSystemFlag(Empire@ emp, uint flagIndex, bool value);
void modTargetCostMod(int mod);
}
Territory : objects.Territory::TerritoryScript {
local:
bool canTradeTo(Region@ region) const;
uint getRegionCount() const;
Region@ getRegion(uint i) const;
server:
void add(Region@ region);
void remove(Region@ region);
}
Pickup : objects.Pickup::PickupScript {
PickupControl control
visible:
int PickupType = -1
}
Asteroid : objects.Asteroid::AsteroidScript {
Orbit orbit
Cargo cargo
Resources resources
visible:
Object origin
double HasBase = 0
local:
vec3d get_strategicIconPosition();
safe uint getAvailableCount();
uint getAvailable(uint index);
double getAvailableCost(uint index);
double getAvailableCostFor(uint resId);
safe bool canDevelop(Empire@ emp);
safe bool canGainLimit(Empire@ emp);
server:
void initMesh();
void setup(Object@ origin, Empire@ emp, uint resource);
void addAvailable(uint resource, double cost);
void setResourceLimit(uint limit);
void modResourceLimitMod(int mod);
void morphTo(uint resource, double cost = 10.0);
}
Anomaly : objects.Anomaly::AnomalyScript {
local safe:
float get_progress() const;
string get_narrative() const;
string get_model() const;
string get_material() const;
uint get_anomalyType() const;
uint get_optionCount() const;
uint get_option(uint index) const;
remote:
relocking async void choose(uint option, Object@ target = null);
server:
relocking async void choose(Empire@ emp, uint option, Object@ target = null);
safe uint getOptionCount() const;
safe bool get_isOptionSafe(uint index) const;
safe float getEmpireProgress(Empire@ emp) const;
void setup(uint type);
void progressToState(uint state);
void addProgress(Empire@ emp, float progress);
void clearOptions();
void addOption(uint id);
}
Oddity : objects.Oddity::OddityScript {
local safe:
bool isGate();
Object@ getLink();
double getTimer();
vec3d getGateDest();
vec3d get_strategicIconPosition();
server:
void setGate(bool value);
void linkTo(Object@ obj);
void linkVision(bool value);
void setTimer(double timer);
void makeVisuals(uint type, bool fromCreation = true, uint color = 0xffffffff);
void setSuperior(bool value);
uint getVisualType();
uint getVisualColor();
}
Freighter : objects.Freighter::FreighterScript {
invisible:
Object$ Origin
Object$ Target
Mover mover
int StatusId = -1
double StatusDuration = 180.0
bool SetOrigin = False
int MinLevel = 0
bool VisitHostile = False
visible:
string skin
synced double Health = 50
}
Artifact : objects.Artifact::ArtifactScript {
Abilities abilities
Orbit orbit
visible:
int ArtifactType = -1
server:
void setExpire(double time);
};
Civilian : objects.Civilian::CivilianScript {
Mover@ mover = null
local visible:
safe uint getCargoType();
safe uint getCargoResource();
safe int getCargoWorth();
safe uint getCivilianType();
safe double get_health() const;
safe double get_maxHealth() const;
server:
void setOrigin(Object@ origin);
void pathTo(Object@ origin, Object@ target, Object@ intermediate = null);
void pathTo(Object@ target);
void gotoTradeStation(Civilian@ station);
void gotoTradePlanet(Planet@ planet);
void setCargoType(uint type);
void setCargoResource(uint id);
void modCargoWorth(int diff);
safe int getStepCount();
void resetStepCount();
void modStepCount(int mod);
void setCivilianType(uint type);
void modIncome(int mod);
};