Skip to content
This repository was archived by the owner on Jan 5, 2024. It is now read-only.

Commit 2e074ee

Browse files
committed
Nerfed some Techion weapons
1 parent b42431a commit 2e074ee

File tree

6 files changed

+50
-50
lines changed

6 files changed

+50
-50
lines changed

Techion.rte/Devices/Weapons/NanoRifle/NanoDestroy.lua

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,7 @@ function Create(self)
1919
self.flickerChance = 0.9;
2020

2121
--Length of time between pulses of damage.
22-
self.damageTime = 250;
23-
24-
--Maximum StructuralIntegrity the nanobots can damage.
25-
self.maxStrengthThreshold = 200;
22+
self.damageTime = 300;
2623

2724
--Timer for damage.
2825
self.damageTimer = Timer();
@@ -56,7 +53,7 @@ function Update(self)
5653
end
5754

5855
--Cause damage.
59-
if self.damageTimer:IsPastSimMS(self.damageTime + self.target.Material.StructuralIntegrity) then
56+
if self.damageTimer:IsPastSimMS(self.damageTime + self.target.Material.StructuralIntegrity * 2) then
6057

6158
if IsAttachable(self.target) then
6259
self.nextTarget = ToAttachable(self.target):GetParent();

Techion.rte/Devices/Weapons/NanoRifle/NanoRifle.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ AddEffect = AEmitter
7171
ScriptPath = Techion.rte/Devices/Weapons/NanoRifle/NanoDestroy.lua
7272
Mass = 0
7373
PinStrength = 1000
74-
LifeTime = 9000
74+
LifeTime = 8000
7575
Sharpness = -1
7676
HitsMOs = 0
7777
GetsHitByMOs = 0

Techion.rte/Devices/Weapons/Nucleo/Nucleo.ini

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ AddDevice = HDFirearm
193193
AddToGroup = Weapons - Primary
194194
AddToGroup = Weapons - Light
195195
Description = Fires balls of plasma which do not experience the effects of gravity or friction. The plasma balls link up with each other with lasers, and if an enemy interrupts one of the lasers, the plasma balls will teleport to the enemy and detonate.
196-
Mass = 8
196+
Mass = 12
197197
HitsMOs = 0
198198
GetsHitByMOs = 1
199199
ScriptPath = Techion.rte/Devices/Weapons/Nucleo/Nucleo.lua
@@ -260,14 +260,14 @@ AddDevice = HDFirearm
260260
AttenuationStartDistance = 135
261261
AddSound = ContentFile
262262
FilePath = Techion.rte/Devices/Weapons/Nucleo/Sounds/ReloadEnd.wav
263-
RateOfFire = 400
263+
RateOfFire = 300
264264
ReloadTime = 2600
265265
FullAuto = 1
266266
FireIgnoresThis = 1
267267
ShakeRange = 1
268268
SharpShakeRange = 1
269269
NoSupportFactor = 1
270-
ParticleSpreadRange = 0
270+
ParticleSpreadRange = 10
271271
ShellSpreadRange = 8
272272
ShellAngVelRange = 0
273273
MuzzleOffset = Vector

Techion.rte/Devices/Weapons/Nucleo/Nucleo.lua

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1+
function Create(self)
2+
self.spread = math.rad(self.ParticleSpreadRange);
3+
end
14
function Update(self)
25
if self.FiredFrame then
36
local bullet = CreateMOSRotating("Particle Nucleo");
47
bullet.Pos = self.MuzzlePos;
5-
bullet.Vel = self.Vel + Vector(30 * self.FlipFactor, 0):RadRotate(self.RotAngle);
8+
bullet.Vel = self.Vel + Vector(30 * self.FlipFactor, 0):RadRotate(self.RotAngle + self.spread * RangeRand(-0.5, 0.5));
69
bullet.Sharpness = self.UniqueID;
710
bullet.Team = self.Team;
811
MovableMan:AddParticle(bullet);

Techion.rte/Devices/Weapons/Nucleo/NucleoShot.lua

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
function Create(self)
22

3-
if g_nucleocommunicationtable == nil then
4-
g_nucleocommunicationtable = {};
3+
if NucleoCommunicationTable == nil then
4+
NucleoCommunicationTable = {};
55
end
6-
7-
if g_nucleocommunicationtable[self.Sharpness] == nil then
8-
g_nucleocommunicationtable[self.Sharpness] = {};
6+
if NucleoCommunicationTable[self.Sharpness] == nil then
7+
NucleoCommunicationTable[self.Sharpness] = {};
98
end
9+
NucleoCommunicationTable[self.Sharpness][#NucleoCommunicationTable[self.Sharpness] + 1] = {self.UniqueID, self};
1010

11-
g_nucleocommunicationtable[self.Sharpness][#g_nucleocommunicationtable[self.Sharpness] + 1] = {self.UniqueID, self};
11+
self.Vel = Vector(self.Vel.X, self.Vel.Y):DegRotate(#NucleoCommunicationTable[self.Sharpness] * RangeRand(-1, 1));
1212

1313
self.detTimer = Timer();
1414
self.boom = false;
1515

16-
self.detDelay = 4000/math.sqrt(#g_nucleocommunicationtable[self.Sharpness]);
16+
self.detDelay = 4000/math.sqrt(#NucleoCommunicationTable[self.Sharpness]);
1717
self.speed = 15;
1818
self.acceleration = 0.1;
1919
self.disintegrationStrength = 75;
@@ -44,25 +44,25 @@ function Update(self)
4444

4545
PrimitiveMan:DrawCirclePrimitive(self.Pos, self.Radius, self.colors[math.random(#self.colors)]);
4646

47-
if g_nucleocommunicationtable[self.Sharpness] ~= nil then
48-
for i = 1, #g_nucleocommunicationtable[self.Sharpness] do
49-
if g_nucleocommunicationtable[self.Sharpness][i][1] == self.UniqueID then
50-
if g_nucleocommunicationtable[self.Sharpness][i][2].UniqueID ~= self.UniqueID then
51-
g_nucleocommunicationtable[self.Sharpness][i][2] = self;
47+
if NucleoCommunicationTable[self.Sharpness] ~= nil then
48+
for i = 1, #NucleoCommunicationTable[self.Sharpness] do
49+
if NucleoCommunicationTable[self.Sharpness][i][1] == self.UniqueID then
50+
if NucleoCommunicationTable[self.Sharpness][i][2].UniqueID ~= self.UniqueID then
51+
NucleoCommunicationTable[self.Sharpness][i][2] = self;
5252
end
5353
else
54-
local raydirection = SceneMan:ShortestDistance(self.Pos,g_nucleocommunicationtable[self.Sharpness][i][2].Pos,SceneMan.SceneWrapsX)
55-
if MovableMan:IsParticle(g_nucleocommunicationtable[self.Sharpness][i][2]) and raydirection.Magnitude < self.linkRange then
54+
local rayDirection = SceneMan:ShortestDistance(self.Pos,NucleoCommunicationTable[self.Sharpness][i][2].Pos,SceneMan.SceneWrapsX)
55+
if MovableMan:IsParticle(NucleoCommunicationTable[self.Sharpness][i][2]) and rayDirection.Magnitude < self.linkRange then
5656

57-
local dist = SceneMan:ShortestDistance(self.Pos, g_nucleocommunicationtable[self.Sharpness][i][2].Pos, SceneMan.SceneWrapsX);
57+
local dist = SceneMan:ShortestDistance(self.Pos, NucleoCommunicationTable[self.Sharpness][i][2].Pos, SceneMan.SceneWrapsX);
5858
PrimitiveMan:DrawLinePrimitive(self.Pos + Vector(math.random(-1, 1), math.random(-1, 1)), self.Pos + dist + Vector(math.random(-1, 1), math.random(-1, 1)), self.colors[math.random(#self.colors)]);
5959
--The projectiles are drawn towards each other
60-
self.Vel = self.Vel + dist * rte.PxTravelledPerFrame * self.linkPullRatio;
60+
self.Vel = self.Vel + dist:RadRotate(RangeRand(-0.1, 0.1)) * rte.PxTravelledPerFrame * self.linkPullRatio;
6161

62-
local moid = SceneMan:CastMORay(self.Pos, raydirection, rte.NoMOID, self.Team, rte.airID, true, 1);
62+
local moid = SceneMan:CastMORay(self.Pos, rayDirection, rte.NoMOID, self.Team, rte.airID, true, 1);
6363
if moid ~= rte.NoMOID then
6464
local hitPos = Vector();
65-
SceneMan:CastFindMORay(self.Pos, raydirection, moid, hitPos, rte.airID, true, 1);
65+
SceneMan:CastFindMORay(self.Pos, rayDirection, moid, hitPos, rte.airID, true, 1);
6666
self.Pos = hitPos;
6767
self.boom = true;
6868
self.hitTarget = true;
@@ -72,18 +72,18 @@ function Update(self)
7272
end
7373
end
7474
else
75-
g_nucleocommunicationtable[self.Sharpness] = {};
76-
g_nucleocommunicationtable[self.Sharpness][#g_nucleocommunicationtable[self.Sharpness] + 1] = {self.UniqueID,self};
75+
NucleoCommunicationTable[self.Sharpness] = {};
76+
NucleoCommunicationTable[self.Sharpness][#NucleoCommunicationTable[self.Sharpness] + 1] = {self.UniqueID,self};
7777
end
7878
self.Vel = Vector(self.Vel.X, self.Vel.Y):SetMagnitude(math.min(self.Vel.Magnitude + self.acceleration, self.speed));
7979
self.AngularVel = self.AngularVel * 0.9;
8080
self.RotAngle = 0;
8181

8282
if self.hitTarget then
83-
for i = 1, #g_nucleocommunicationtable[self.Sharpness] do
84-
if g_nucleocommunicationtable[self.Sharpness][i][1] ~= self.UniqueID and MovableMan:IsParticle(g_nucleocommunicationtable[self.Sharpness][i][2]) then
85-
g_nucleocommunicationtable[self.Sharpness][i][2].Pos = self.Pos + Vector(math.random() * 5, 0):RadRotate(math.random() * math.pi * 2);
86-
g_nucleocommunicationtable[self.Sharpness][i][2]:SetNumberValue("GOBOOM", 1);
83+
for i = 1, #NucleoCommunicationTable[self.Sharpness] do
84+
if NucleoCommunicationTable[self.Sharpness][i][1] ~= self.UniqueID and MovableMan:IsParticle(NucleoCommunicationTable[self.Sharpness][i][2]) then
85+
NucleoCommunicationTable[self.Sharpness][i][2].Pos = self.Pos + Vector(math.random() * 5, 0):RadRotate(math.random() * math.pi * 2);
86+
NucleoCommunicationTable[self.Sharpness][i][2]:SetNumberValue("GOBOOM", 1);
8787
end
8888
end
8989
end
@@ -108,7 +108,7 @@ function Update(self)
108108
melt.Pos = self.Pos;
109109
melt.Team = self.Team;
110110
melt.Sharpness = ToActor(parent).ID;
111-
melt.PinStrength = self.disintegrationStrength * math.sqrt(#g_nucleocommunicationtable[self.Sharpness]);
111+
melt.PinStrength = self.disintegrationStrength * math.sqrt(#NucleoCommunicationTable[self.Sharpness]);
112112
MovableMan:AddMO(melt);
113113
end
114114
end
@@ -123,23 +123,23 @@ function Update(self)
123123
end
124124

125125
function Destroy(self)
126-
if g_nucleocommunicationtable and self.Sharpness and g_nucleocommunicationtable[self.Sharpness] then
127-
for i = 1, #g_nucleocommunicationtable[self.Sharpness] do
128-
if g_nucleocommunicationtable[self.Sharpness][i][1] == self.UniqueID then
129-
g_nucleocommunicationtable[self.Sharpness][i] = nil;
126+
if NucleoCommunicationTable and self.Sharpness and NucleoCommunicationTable[self.Sharpness] then
127+
for i = 1, #NucleoCommunicationTable[self.Sharpness] do
128+
if NucleoCommunicationTable[self.Sharpness][i][1] == self.UniqueID then
129+
NucleoCommunicationTable[self.Sharpness][i] = nil;
130130
end
131131
end
132132

133133
local temptable = {};
134-
for i = 1, #g_nucleocommunicationtable[self.Sharpness] do
135-
if g_nucleocommunicationtable[self.Sharpness][i] ~= nil then
136-
temptable[#temptable + 1] = g_nucleocommunicationtable[self.Sharpness][i];
134+
for i = 1, #NucleoCommunicationTable[self.Sharpness] do
135+
if NucleoCommunicationTable[self.Sharpness][i] ~= nil then
136+
temptable[#temptable + 1] = NucleoCommunicationTable[self.Sharpness][i];
137137
end
138138
end
139-
g_nucleocommunicationtable[self.Sharpness] = temptable;
139+
NucleoCommunicationTable[self.Sharpness] = temptable;
140140

141-
if #g_nucleocommunicationtable[self.Sharpness] == 0 then
142-
g_nucleocommunicationtable[self.Sharpness] = nil;
141+
if #NucleoCommunicationTable[self.Sharpness] == 0 then
142+
NucleoCommunicationTable[self.Sharpness] = nil;
143143
end
144144
end
145145
end

Techion.rte/Devices/Weapons/NucleoSwarm/NucleoSwarm.ini

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -113,17 +113,17 @@ AddEffect = AEmitter
113113
AddGib = Gib
114114
GibParticle = MOPixel
115115
CopyOf = Dihelical Damage Particle
116-
Count = 16
116+
Count = 15
117117
Spread = 3.14
118118
MaxVelocity = 50
119119
MinVelocity = 40
120120
AddGib = Gib
121121
GibParticle = MOPixel
122122
CopyOf = Air Blast Short
123-
Count = 16
123+
Count = 15
124124
Spread = 3.14
125-
MaxVelocity = 50
126-
MinVelocity = 40
125+
MaxVelocity = 25
126+
MinVelocity = 20
127127
GibImpulseLimit = 1
128128

129129

@@ -186,7 +186,7 @@ AddDevice = HDFirearm
186186
AddToGroup = Weapons
187187
AddToGroup = Weapons - Primary
188188
AddToGroup = Weapons - Heavy
189-
Mass = 24
189+
Mass = 22
190190
HitsMOs = 0
191191
GetsHitByMOs = 1
192192
SpriteFile = ContentFile

0 commit comments

Comments
 (0)