Module dpmod: Change committed
havoc at icculus.org
havoc at icculus.org
Tue Mar 11 14:22:47 EST 2003
Commiter : havoc
CVSROOT : /cvs/cvsroot/twilight
Module : dpmod
Commit time: 2003-03-11 19:22:47 UTC
Log message:
new triple barrel plasma cannon, barrels firing in sequence for rapid spew, or overload for hefty damage
Modified files:
qc/w_plasmarifle.qc
------=MIME.3c7739e37f5487777fc7cdd6baf7b2d7
Content-Type: text/plain; name="dpmod.20030311.192247.havoc.diff"
Content-Disposition: attachment; filename="dpmod.20030311.192247.havoc.diff"
Content-Transfer-Encoding: 8bit
Index: dpmod/qc/w_plasmarifle.qc
diff -u dpmod/qc/w_plasmarifle.qc:1.6 dpmod/qc/w_plasmarifle.qc:1.7
--- dpmod/qc/w_plasmarifle.qc:1.6 Thu Feb 20 03:58:15 2003
+++ dpmod/qc/w_plasmarifle.qc Tue Mar 11 14:22:37 2003
@@ -30,16 +30,108 @@
};
*/
-void() W_PlasmaRifleFire =
+/*
+void(float a, float d, float r) W_PlasmaRifleFireShot =
{
- if (self.wload > self.ammo_cells)
- self.wload = self.ammo_cells;
+ local vector v;
+ if (self.ammo_cells <= 0)
+ return;
+ if (a > self.ammo_cells)
+ a = self.ammo_cells;
self.wfiretime = time;
- self.currentammo = self.ammo_cells = self.ammo_cells - self.wload;
- self.wburst = self.wburst - self.wload;
- FirePlasma(self, shotorg, shotdir, self.wload * 30 * damagescale, 45, '0 0 0', "PLASMARIFLE", Obituary_PlasmaRifle);
+ self.currentammo = self.ammo_cells = self.ammo_cells - a;
+ self.wburst = self.wburst - a;
+ if (self.plasmabarrel == 0)
+ {
+ self.plasmabarrel = 1;
+ v = v_up * 2;
+ }
+ else if (self.plasmabarrel == 1)
+ {
+ self.plasmabarrel = 2;
+ v = v_right * 1.4 + v_up * -1.4;
+ }
+ else
+ {
+ self.plasmabarrel = 0;
+ v = v_right * -1.4 + v_up * -1.4;
+ }
+ FirePlasma(self, shotorg + v, shotdir + v * 0.005, a * d * damagescale, r, '0 0 0', "PLASMARIFLE", Obituary_PlasmaRifle);
};
+void() W_PlasmaRifleFireRapid =
+{
+ if (self.ammo_cells <= 0)
+ {
+ stopfiring = TRUE;
+ return;
+ }
+ W_PlasmaRifleFireShot(1, 30, 60);
+};
+
+void() W_PlasmaRifleFireBlast =
+{
+ W_PlasmaRifleFireShot(2, 25, 120);
+ W_PlasmaRifleFireShot(2, 25, 120);
+ W_PlasmaRifleFireShot(2, 25, 120);
+};
+
+void() W_PlasmaRifleFireBlast2 =
+{
+ local float d, r;
+ local vector v;
+ self.wfiretime = time;
+ d = 50;
+ r = 120;
+ v = v_up * 2 ;FirePlasma(self, shotorg + v, shotdir + v * 0.005, d * damagescale, r, '0 0 0', "PLASMARIFLE", Obituary_PlasmaRifle);
+ v = v_right * 1.4 + v_up * -1.4;FirePlasma(self, shotorg + v, shotdir + v * 0.005, d * damagescale, r, '0 0 0', "PLASMARIFLE", Obituary_PlasmaRifle);
+ v = v_right * -1.4 + v_up * -1.4;FirePlasma(self, shotorg + v, shotdir + v * 0.005, d * damagescale, r, '0 0 0', "PLASMARIFLE", Obituary_PlasmaRifle);
+};
+*/
+
+.float plasmabarrel;
+void() W_PlasmaRifleFireRapid2 =
+{
+ local float d, r;
+ local vector v;
+ self.currentammo = self.ammo_cells = self.ammo_cells - 1;
+ self.wfiretime = time;
+ if (self.plasmabarrel == 0)
+ {
+ self.plasmabarrel = 1;
+ v = v_up * 2;
+ }
+ else if (self.plasmabarrel == 1)
+ {
+ self.plasmabarrel = 2;
+ v = v_right * 1.4 + v_up * -1.4;
+ }
+ else
+ {
+ self.plasmabarrel = 0;
+ v = v_right * -1.4 + v_up * -1.4;
+ }
+ d = 30;
+ r = 60;
+ FirePlasma(self, shotorg + v, shotdir + v * 0.005, d * damagescale, r, '0 0 0', "PLASMARIFLE", Obituary_PlasmaRifle);
+ if (self.ammo_cells <= 0)
+ stopfiring = TRUE;
+};
+
+.float woverload;
+void() W_PlasmaRifleFireOverload2 =
+{
+ local float d, r;
+ local vector v;
+ self.wfiretime = time;
+ d = self.woverload * 10;
+ r = 120;
+ v = v_up * 2 ;FirePlasma(self, shotorg + v, shotdir + v * 0.005, d * damagescale, r, '0 0 0', "PLASMARIFLE", Obituary_PlasmaRifle);
+ v = v_right * 1.414 + v_up * -1.414;FirePlasma(self, shotorg + v, shotdir + v * 0.005, d * damagescale, r, '0 0 0', "PLASMARIFLE", Obituary_PlasmaRifle);
+ v = v_right * -1.414 + v_up * -1.414;FirePlasma(self, shotorg + v, shotdir + v * 0.005, d * damagescale, r, '0 0 0', "PLASMARIFLE", Obituary_PlasmaRifle);
+ self.woverload = 0;
+};
+
void() w_plasmarifledrop1;
void() w_plasmarifledrop2;
void() w_plasmarifleraise1;
@@ -135,6 +227,7 @@
}
*/
+ /*
if (time >= self.attack_finished)
{
if (self.ammo_cells > 0 && self.wburst > 0 && (self.button0 || self.button3))
@@ -146,12 +239,81 @@
self.wload = 3;
if (self.wload > self.wburst)
self.wload = self.wburst;
- W_GenericSlowFireCode("plasma/plasma.wav", 0.1, W_PlasmaRifleFire);
+ W_GenericSlowFireCode("plasma/plasma.wav", 0.1 * self.wload, W_PlasmaRifleFire);
}
else if (self.ammo_cells > 0 && self.wburst < 9)
{
self.wburst = 9;
self.attack_finished = time + 0.4;
+ }
+ else if (widle(w_plasmarifledrop1))
+ return;
+ }
+ */
+
+ /*
+ if (self.button0 && self.ammo_cells > 0)
+ W_GenericRapidFireCode("plasma/plasma.wav", 0.1, W_PlasmaRifleFireRapid);
+ else
+ {
+ self.notfiring = TRUE;
+ if (self.button3 && self.ammo_cells > 0)
+ W_GenericSlowFireCode("plasma/plasma.wav", 0.8, W_PlasmaRifleFireBlast);
+ else if (time >= self.attack_finished)
+ if (widle(w_plasmarifledrop1))
+ return;
+ }
+ */
+ /*
+ if (self.button3)
+ {
+ if (self.wburst < 9)
+ if (time > self.attack_finished)
+ {
+ self.wburst = self.wburst + 3;
+ self.currentammo = self.ammo_cells = self.ammo_cells - 1;
+ self.attack_finished = time + 0.1;
+ if (self.wburst > 9)
+ self.wburst = 9;
+ sound(self, CHAN_WEAPON, "plasma/plasexpl.wav", 1, ATTN_NORM);
+ }
+ }
+ else if (self.button0)
+ {
+ if (self.wburst <= 0)
+ if (time > self.attack_finished)
+ {
+ self.wburst = self.wburst + 3;
+ self.currentammo = self.ammo_cells = self.ammo_cells - 1;
+ self.attack_finished = time + 0.1;
+ if (self.wburst > 9)
+ self.wburst = 9;
+ //sound(self, CHAN_WEAPON, "plasma/plasexpl.wav", 1, ATTN_NORM);
+ }
+ if (self.wburst > 0)
+ W_GenericSlowFireCode("plasma/plasma.wav", 0.1, W_PlasmaRifleFireRapid2);
+ }
+ else
+ {
+ }
+ */
+ // FIXME: need overload fire sound (second overload sound)
+ if (self.woverload > 0)
+ W_GenericSlowFireCode("plasma/plasma.wav", 1, W_PlasmaRifleFireOverload2);
+ else if (self.button0 && self.ammo_cells > 0)
+ W_GenericRapidFireCode("plasma/plasma.wav", 0.1, W_PlasmaRifleFireRapid2);
+ else if (time >= self.attack_finished)
+ {
+ self.notfiring = TRUE;
+ if (self.button3 && self.ammo_cells > 0)
+ {
+ self.woverload = 12;
+ if (self.woverload > self.ammo_cells)
+ self.woverload = self.ammo_cells;
+ self.currentammo = self.ammo_cells = self.ammo_cells - self.woverload;
+ self.attack_finished = time + 0.2;
+ // FIXME: need overload charge sound (first overload sound)
+ sound(self, CHAN_WEAPON, "plasma/plasexpl.wav", 1, ATTN_NORM);
}
else if (widle(w_plasmarifledrop1))
return;
More information about the twilight-commits
mailing list