/* ============================================================================== Q:\art\models\weapons\spllbook\spllbook.hc ============================================================================== */ // For building the model $cd Q:\art\models\weapons\spllbook $origin 0 0 0 $base BASE skin $skin skin $flags 0 // $frame idlebn01 idlebn02 idlebn03 idlebn04 idlebn05 $frame idlebn06 idlebn07 idlebn08 idlebn09 idlebn10 $frame idlebn11 idlebn12 idlebn13 idlebn14 idlebn15 $frame idlebn16 idlebn17 idlebn18 idlebn19 idlebn20 $frame idlebn21 idlebn22 idlebn23 idlebn24 idlebn25 // $frame idlean26 idlean27 idlean28 idlean29 idlean30 $frame idlean31 idlean32 idlean33 idlean34 idlean35 $frame idlean36 idlean37 idlean38 idlean39 idlean40 $frame idlean41 idlean42 idlean43 idlean44 idlean45 $frame idlean46 idlean47 idlean48 idlean49 idlean50 // $frame normal51 normal52 normal53 normal54 normal55 $frame normal56 normal57 normal58 normal59 normal60 $frame normal61 normal62 normal63 normal64 // $frame topowr65 topowr66 topowr67 topowr68 topowr69 $frame topowr70 topowr71 topowr72 topowr73 topowr74 $frame topowr75 topowr76 topowr77 topowr78 topowr79 $frame topowr80 topowr81 topowr82 topowr83 topowr84 // $frame pidleb085 pidleb086 pidleb087 pidleb088 pidleb089 $frame pidleb090 pidleb091 pidleb092 pidleb093 pidleb094 $frame pidleb095 pidleb096 pidleb097 pidleb098 pidleb099 $frame pidleb100 pidleb101 pidleb102 pidleb103 pidleb104 $frame pidleb105 pidleb106 pidleb107 pidleb108 pidleb109 // $frame pidlea110 pidlea111 pidlea112 pidlea113 pidlea114 $frame pidlea115 pidlea116 pidlea117 pidlea118 pidlea119 $frame pidlea120 pidlea121 pidlea122 pidlea123 pidlea124 $frame pidlea125 pidlea126 pidlea127 pidlea128 pidlea129 $frame pidlea130 pidlea131 pidlea132 pidlea133 pidlea134 // $frame powern135 powern136 powern137 powern138 powern139 $frame powern140 powern141 powern142 powern143 powern144 $frame powern145 powern146 powern147 powern148 // $frame tonrml149 tonrml150 tonrml151 tonrml152 tonrml153 $frame tonrml154 tonrml155 tonrml156 tonrml157 tonrml158 $frame tonrml159 tonrml160 tonrml161 tonrml162 tonrml163 $frame tonrml164 tonrml165 tonrml166 tonrml167 tonrml168 // $frame ndesel213 ndesel214 ndesel215 ndesel216 ndesel217 $frame ndesel218 ndesel219 ndesel220 ndesel221 ndesel222 $frame ndesel223 // $frame pselon224 pselon225 pselon226 pselon227 pselon228 $frame pselon229 pselon230 pselon231 pselon232 pselon233 $frame pselon234 /*void acidblobFizzle (void) { CreateGreenSmoke (self.origin,'0 0 8',HX_FRAME_TIME * 2); remove(self); } */ void acidBlobDie(void) { WriteByte (MSG_MULTICAST, SVC_TEMPENTITY); WriteByte (MSG_MULTICAST, TE_ACIDBLOB); WriteCoord (MSG_MULTICAST, self.origin_x - self.movedir_x * 10); WriteCoord (MSG_MULTICAST, self.origin_y - self.movedir_y * 10); WriteCoord (MSG_MULTICAST, self.origin_z - self.movedir_z * 10); multicast(self.origin,MULTICAST_PHS_R); remove(self); } void acidblobThink (void) { if(self.lifetimetime) return; FireAcidBlob("acidblob"); self.attack_finished=time+0.7; } void aorb_normal() { if(self.attack_finished>time) return; FireAcidMissile(0); self.attack_finished=time+0.4; } /*====================== ACTION select deselect ready loop relax loop fire once fire loop ready to relax(after short delay) relax to ready(Fire delay? or automatic if see someone?) =======================*/ void()acidorb_ready_power; void()acidorb_ready_normal; void() Suc_Aorb_Fire; void acidorb_fire (void) { if(self.button0&&self.weaponframe==$normal60 &&!self.artifact_active&ART_TOMEOFPOWER) self.weaponframe=$normal58; else if(self.artifact_active&ART_TOMEOFPOWER) { self.wfs = advanceweaponframe($powern135,$powern148); if(self.weaponframe<$powern141) self.weaponframe+=1; } else { self.wfs = advanceweaponframe($normal51,$normal64); if(self.weaponframe<$normal58) self.weaponframe+=1; } self.th_weapon=acidorb_fire; self.last_attack=time; if(self.wfs==WF_CYCLE_WRAPPED||self.bluemana<3||(self.bluemana<8&&self.artifact_active&ART_TOMEOFPOWER)) if(self.artifact_active&ART_TOMEOFPOWER) acidorb_ready_power(); else acidorb_ready_normal(); else if(self.weaponframe==$normal58)// &&self.attack_finished<=time) aorb_normal(); else if(self.weaponframe==$powern141) aorb_power();//Fixme: hold this frame for a few } void Suc_Aorb_Fire() { acidorb_fire(); thinktime self : 0; } void acidorb_jellyfingers_normal () { self.wfs = advanceweaponframe($idlebn01,$idlebn25); self.th_weapon=acidorb_jellyfingers_normal; if(self.wfs==WF_CYCLE_WRAPPED) if(self.artifact_active&ART_TOMEOFPOWER) acidorb_ready_power(); else acidorb_ready_normal(); } void acidorb_jellyfingers_power () { self.wfs = advanceweaponframe($pidleb085,$pidleb109); self.th_weapon=acidorb_jellyfingers_power; if(self.wfs==WF_CYCLE_WRAPPED) if(self.artifact_active&ART_TOMEOFPOWER) acidorb_ready_power(); else acidorb_ready_normal(); } void acidorb_to_power (void) { self.wfs = advanceweaponframe($topowr65,$topowr84); self.th_weapon=acidorb_to_power; if(self.wfs==WF_CYCLE_WRAPPED) acidorb_ready_power(); } void acidorb_to_normal (void) { self.wfs = advanceweaponframe($tonrml149,$tonrml168); self.th_weapon=acidorb_to_normal; if(self.wfs==WF_CYCLE_WRAPPED) acidorb_ready_normal(); } void acidorb_ready_normal (void) { self.wfs = advanceweaponframe($idlean26,$idlean50); if(random()<0.1&&self.weaponframe==$idlean50) self.th_weapon=acidorb_jellyfingers_normal; else self.th_weapon=acidorb_ready_normal; if(self.artifact_active&ART_TOMEOFPOWER) { self.weaponframe=$topowr65; acidorb_to_power(); } } void acidorb_ready_power (void) { self.wfs = advanceweaponframe($pidlea110,$pidlea134); if(random()<0.1&&self.weaponframe==$pidlea134) self.th_weapon=acidorb_jellyfingers_power; else self.th_weapon=acidorb_ready_power; if(!self.artifact_active&ART_TOMEOFPOWER) { self.weaponframe=$tonrml149; acidorb_to_normal(); } } void acidorb_select_normal (void) { self.wfs = advanceweaponframe($ndesel223,$ndesel213); self.weaponmodel = "models/sucwp2.mdl"; self.th_weapon=acidorb_select_normal; self.t_width=-1; if(self.wfs==WF_CYCLE_WRAPPED) { self.attack_finished = time - 1; acidorb_ready_normal(); } } void acidorb_select_power (void) { self.wfs = advanceweaponframe($pselon224,$pselon234); self.weaponmodel = "models/sucwp2.mdl"; self.th_weapon=acidorb_select_power; self.t_width=-1; if(self.wfs==WF_CYCLE_WRAPPED) { self.attack_finished = time - 1; acidorb_ready_power(); } } void acidorb_select (void) { if(self.artifact_active&ART_TOMEOFPOWER) acidorb_select_power(); else acidorb_select_normal(); } void acidorb_deselect_normal (void) { self.wfs = advanceweaponframe($ndesel213,$ndesel223); self.th_weapon=acidorb_deselect_normal; if(self.wfs==WF_CYCLE_WRAPPED) W_SetCurrentAmmo(); } void acidorb_deselect_power (void) { self.wfs = advanceweaponframe($pselon234,$pselon224); self.th_weapon=acidorb_deselect_power; if(self.wfs==WF_CYCLE_WRAPPED) W_SetCurrentAmmo(); } void acidorb_deselect (void) { if(self.artifact_active&ART_TOMEOFPOWER) acidorb_deselect_power(); else acidorb_deselect_normal(); }