2018-12-31 01:00:38 +00:00
|
|
|
/***
|
|
|
|
*
|
2019-01-16 16:43:50 +00:00
|
|
|
* Copyright (c) 2016-2019 Marco 'eukara' Hladik. All rights reserved.
|
|
|
|
*
|
|
|
|
* See the file LICENSE attached with the sources for usage details.
|
2018-12-31 01:00:38 +00:00
|
|
|
*
|
|
|
|
****/
|
|
|
|
|
2019-01-03 01:26:39 +00:00
|
|
|
class func_recharge:CBaseTrigger
|
2018-12-31 01:00:38 +00:00
|
|
|
{
|
2019-08-19 06:45:34 +00:00
|
|
|
entity m_eUser;
|
2018-12-31 01:00:38 +00:00
|
|
|
float m_flDelay;
|
2019-08-19 06:45:34 +00:00
|
|
|
float m_flCheck;
|
|
|
|
|
2019-01-03 01:26:39 +00:00
|
|
|
void() func_recharge;
|
2019-08-19 06:45:34 +00:00
|
|
|
virtual void() customphysics;
|
2018-12-31 01:00:38 +00:00
|
|
|
virtual void() PlayerUse;
|
|
|
|
};
|
|
|
|
|
2019-01-03 01:26:39 +00:00
|
|
|
void func_recharge::PlayerUse(void)
|
2018-12-31 01:00:38 +00:00
|
|
|
{
|
2019-08-18 19:01:01 +00:00
|
|
|
eActivator.gflags |= GF_USE_RELEASED;
|
2019-08-19 06:45:34 +00:00
|
|
|
|
|
|
|
/* First come first serve */
|
|
|
|
if (m_eUser && eActivator != m_eUser) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* First time */
|
|
|
|
if (m_eUser == world) {
|
|
|
|
sound(this, CHAN_VOICE, "items/suitchargeok1.wav", 1.0, ATTN_NORM);
|
|
|
|
}
|
|
|
|
|
2018-12-31 01:00:38 +00:00
|
|
|
if (m_flDelay > time) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2019-08-19 06:45:34 +00:00
|
|
|
if (eActivator.armor >= 100) {
|
|
|
|
eActivator.gflags &= ~GF_USE_RELEASED;
|
|
|
|
sound(this, CHAN_VOICE, "items/suitchargeno1.wav", 1.0, ATTN_NORM);
|
|
|
|
} else {
|
|
|
|
if (m_eUser == world) {
|
|
|
|
sound(this, CHAN_ITEM, "items/suitcharge1.wav", 1.0, ATTN_NORM);
|
|
|
|
}
|
|
|
|
eActivator.armor = bound(0, eActivator.armor += 1, 100);
|
|
|
|
}
|
|
|
|
|
|
|
|
m_eUser = eActivator;
|
2019-08-18 19:01:01 +00:00
|
|
|
m_flDelay = time + 0.1f;
|
2019-08-19 06:45:34 +00:00
|
|
|
m_flCheck = time + 0.25f;
|
|
|
|
}
|
|
|
|
|
|
|
|
void func_recharge::customphysics(void)
|
|
|
|
{
|
|
|
|
if (m_flCheck > time) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (m_eUser) {
|
|
|
|
sound(this, CHAN_ITEM, "misc/null.wav", 1.0, ATTN_NORM);
|
|
|
|
m_eUser = world;
|
|
|
|
}
|
2018-12-31 01:00:38 +00:00
|
|
|
}
|
|
|
|
|
2019-01-03 01:26:39 +00:00
|
|
|
void func_recharge::func_recharge(void)
|
2018-12-31 01:00:38 +00:00
|
|
|
{
|
2019-08-19 06:45:34 +00:00
|
|
|
precache_sound("items/suitchargeok1.wav");
|
|
|
|
precache_sound("items/suitchargeno1.wav");
|
|
|
|
precache_sound("items/suitcharge1.wav");
|
|
|
|
|
|
|
|
|
2018-12-31 01:00:38 +00:00
|
|
|
solid = SOLID_BSP;
|
|
|
|
movetype = MOVETYPE_PUSH;
|
|
|
|
setorigin(this, origin);
|
|
|
|
setmodel(this, model);
|
|
|
|
}
|