684 lines
No EOL
16 KiB
C++
684 lines
No EOL
16 KiB
C++
|
||
void (entity chest, float iid, float num) DropFromChest;
|
||
|
||
void(entity to, float iid, float amount) AddNonStackable =
|
||
{
|
||
local float slot;
|
||
|
||
slot = SlotOfItem(to, iid);
|
||
if (!slot)
|
||
slot = FindSuitableEmptySlot(to, iid);
|
||
if (slot)
|
||
SetItemSlot(to, slot, SlotVal(iid, amount));
|
||
};
|
||
|
||
void(entity to, float iid, float amount) AddStackable =
|
||
{
|
||
local float slot;
|
||
|
||
slot = FindSuitableEmptySlot(to, iid);
|
||
if (slot)
|
||
SetItemSlot(to, slot, SlotVal(iid, amount + ToStatus(ItemInSlot(to, slot))));
|
||
}
|
||
|
||
void(float cost, float iid) BuyStackable =
|
||
{
|
||
local string z;
|
||
|
||
if (self.ammo_shells < cost)
|
||
{
|
||
self.currentmenu = "none";
|
||
sprint(self, PRINT_HIGH, "not enough money.\n");
|
||
return;
|
||
}
|
||
|
||
if (!TryGiveStackable(self, iid))
|
||
{
|
||
sprint(self, 2, "full inventory.\n");
|
||
return;
|
||
}
|
||
|
||
sound (self, CHAN_BODY, "misc/item1.wav", 1, ATTN_NORM);
|
||
self.ammo_shells = self.ammo_shells - cost;
|
||
|
||
sprint(self, PRINT_HIGH, "you bought a ");
|
||
|
||
z = GetItemName(iid);
|
||
sprint(self, PRINT_HIGH, z);
|
||
sprint(self, PRINT_HIGH, "\n");
|
||
self.impulse = 0;
|
||
};
|
||
|
||
void(float cost, float iid, float amount) BuyStackableMulti =
|
||
{
|
||
local string z;
|
||
|
||
if (self.ammo_shells < cost)
|
||
{
|
||
self.currentmenu = "none";
|
||
sprint(self, PRINT_HIGH, "not enough money.\n");
|
||
return;
|
||
}
|
||
|
||
if (!TryGiveStackable(self, iid))
|
||
{
|
||
sprint(self, 2, "full inventory.\n");
|
||
return;
|
||
}
|
||
|
||
sound (self, CHAN_BODY, "misc/item1.wav", 1, ATTN_NORM);
|
||
self.ammo_shells = self.ammo_shells - cost;
|
||
|
||
sprint(self, PRINT_HIGH, "you bought a ");
|
||
|
||
z = GetItemName(iid);
|
||
sprint(self, PRINT_HIGH, z);
|
||
sprint(self, PRINT_HIGH, "\n");
|
||
|
||
//put grenade in inventory
|
||
//finds existing grenades, otherwise, empty slot
|
||
};
|
||
|
||
|
||
|
||
|
||
void(string type) ChangeAmmo =
|
||
{
|
||
|
||
if (self.ammo_shells < 1)
|
||
{
|
||
self.currentmenu = "none";
|
||
sprint(self, PRINT_HIGH, "not enough money.\n");
|
||
return;
|
||
}
|
||
|
||
|
||
sound (self, CHAN_BODY, "misc/item1.wav", 1, ATTN_NORM);
|
||
|
||
if (self.current_slot == 1)
|
||
self.ammotype1 = type;
|
||
if (self.current_slot == 2)
|
||
self.ammotype2 = type;
|
||
};
|
||
|
||
void() SetWeaponModel;
|
||
|
||
void (float wt, float cost, float wid) BuyWeapon =
|
||
{
|
||
local string itname;
|
||
local float ammotype, ammocount;
|
||
local float slotnum;
|
||
local float curweap;
|
||
|
||
if (self.ammo_shells < cost)
|
||
{
|
||
self.currentmenu = "none";
|
||
sound (self, CHAN_BODY, "misc/menu3.wav", 1, ATTN_IDLE);
|
||
sprint(self, PRINT_HIGH, "not enough money.\n");
|
||
return;
|
||
}
|
||
|
||
sound (self, CHAN_BODY, "misc/item1.wav", 1, ATTN_NORM);
|
||
self.ammo_shells = self.ammo_shells - cost;
|
||
|
||
sprint(self, PRINT_HIGH, "you bought ");
|
||
|
||
itname = GetItemName(wid);
|
||
sprint(self, PRINT_HIGH, itname);
|
||
sprint(self, PRINT_HIGH, ".\n");
|
||
|
||
//put new weapon in current slot
|
||
//put old weapon in empty slot (but not armor slot!)
|
||
//otherwise, drop it.
|
||
|
||
curweap = ItemInSlot(self, self.current_slot);
|
||
slotnum = FindSuitableEmptySlot(self, ToIID(curweap));
|
||
|
||
if (slotnum == 0)//no more room
|
||
DropFromSlot (self.current_slot, 1, 0);
|
||
else //found a place to stick old weapon
|
||
SetItemSlot(self, slotnum, curweap);
|
||
|
||
ammocount = WeaponMagQuant(wid);//load weapon with full ammo (may be changed)
|
||
SetItemSlot(self, self.current_slot, SlotVal(wid, ammocount));
|
||
|
||
|
||
ammotype = WeaponAmmoType(wid);//load weapon with full ammo (may be changed)
|
||
TryGiveStackable(self, ammotype, ammocount*3);
|
||
|
||
SetWeaponModel();
|
||
};
|
||
|
||
|
||
void (float cost, float item, float slot) BuyPerk =
|
||
{
|
||
|
||
if (slot == 1 && self.perk2 == item)
|
||
{
|
||
sprint (self, PRINT_HIGH, "you already know that ability!\n");
|
||
return;
|
||
}
|
||
if (slot == 2 && self.perk1 == item)
|
||
{
|
||
sprint (self, PRINT_HIGH, "you already know that ability!\n");
|
||
return;
|
||
}
|
||
|
||
sprint (self, PRINT_HIGH, "you have learned a new ability in the wastes.\n");
|
||
|
||
if (slot == 1)
|
||
self.perk1 = item;
|
||
else if (slot == 2)
|
||
self.perk2 = item;
|
||
self.currentmenu = "none";
|
||
return;
|
||
};
|
||
|
||
void (float wt, float cost, float item) BuyArmor =
|
||
{
|
||
local string z;
|
||
local float x;
|
||
|
||
if (self.ammo_shells < cost)
|
||
{
|
||
self.currentmenu = "none";
|
||
sound (self, CHAN_BODY, "misc/menu3.wav", 1, ATTN_IDLE);
|
||
sprint(self, PRINT_HIGH, "not enough money.\n");
|
||
return;
|
||
}
|
||
|
||
sound (self, CHAN_BODY, "misc/item1.wav", 1, ATTN_NORM);
|
||
self.ammo_shells = self.ammo_shells - cost;
|
||
|
||
sprint(self, PRINT_HIGH, "you bought ");
|
||
|
||
z = GetItemName(item);
|
||
sprint(self, PRINT_HIGH, z);
|
||
sprint(self, PRINT_HIGH, ".\n");
|
||
|
||
//put new armor in armor slot
|
||
//put old armor in inventory
|
||
|
||
x = FindEmptySlot(self);
|
||
|
||
// if (x == 0)
|
||
// sprint(self, 2, "no more room. giving armor to merchant.\n");
|
||
|
||
// if (x != 0) //found a place to stick old armor
|
||
// SetItemSlot(self, x, SlotVal(self.islot3, 1));
|
||
|
||
SetItemSlot(self, 3, SlotVal(item, 1));
|
||
};
|
||
|
||
void (float cost, float item) BuyEquipment =
|
||
{
|
||
local float lbs;
|
||
local string x;
|
||
|
||
lbs = weightx ();
|
||
if ((cost > self.ammo_shells))
|
||
{
|
||
sprint (self, PRINT_HIGH, "not enough money.\n");
|
||
self.currentmenu = "none";
|
||
return;
|
||
}
|
||
sound (self, CHAN_BODY, "items/item1.wav", 1, ATTN_NORM);
|
||
|
||
x = GetItemName(item);
|
||
SetItemSlot(self, 4, SlotVal(item, 1));
|
||
|
||
sprint (self, PRINT_HIGH, x);
|
||
sprint (self, PRINT_HIGH, " purchased.\n");
|
||
self.ammo_shells = (self.ammo_shells - cost);
|
||
return;
|
||
};
|
||
|
||
void (float cost, float item) BuyProtect =
|
||
{
|
||
local string x;
|
||
|
||
/*
|
||
if ((self.armor >= TE_LIGHTNING2))
|
||
{
|
||
sprint (self, PRINT_HIGH, "too many electronics in\nyour currently worn armor!");
|
||
self.currentmenu = "none";
|
||
return;
|
||
}
|
||
*/
|
||
if ((cost > self.ammo_shells))
|
||
{
|
||
sprint (self, PRINT_HIGH, "not enough money.\n");
|
||
self.currentmenu = "none";
|
||
return;
|
||
}
|
||
sound (self, CHAN_BODY, "items/item1.wav", 1, ATTN_NORM);
|
||
self.ammo_shells = (self.ammo_shells - cost);
|
||
self.protect = item;
|
||
x = GetProtectName();
|
||
sprint (self, PRINT_HIGH, x);
|
||
sprint (self, PRINT_HIGH, " purchased.\n");
|
||
|
||
return;
|
||
};
|
||
|
||
|
||
float (float input) overweight =
|
||
{
|
||
local float tmp;
|
||
local float max;
|
||
|
||
tmp = input + self.weight;
|
||
max = self.max_weight;
|
||
|
||
if (tmp > max)
|
||
return (TRUE);
|
||
else
|
||
return (FALSE);
|
||
};
|
||
|
||
|
||
void() W_PlayerMenu =
|
||
{
|
||
local float xx;
|
||
local string yy, q, x;
|
||
|
||
if (self.currentmenu == "none")
|
||
return;
|
||
|
||
|
||
else if (self.currentmenu == "display_enter_screen")
|
||
{
|
||
if (self.impulse == 1 && coop == 1)
|
||
{
|
||
self.missionbrief = 0;
|
||
self.team = 1;
|
||
self.connected = 1;
|
||
sound (self, CHAN_WEAPON, "player/yourturn.wav", TRUE, ATTN_NORM);
|
||
centerprint(self, "\n");
|
||
self.currentmenu = "none";
|
||
PutClientInServer();
|
||
self.impulse = 0;
|
||
self.current_slot = 1;
|
||
return;
|
||
}
|
||
else if (self.impulse == 1 && coop == 0)
|
||
{
|
||
self.missionbrief = 0;
|
||
if (teamblue == teamred)
|
||
{
|
||
if (random()*100 <= 50)
|
||
{
|
||
self.team = 1;
|
||
teamblue = teamblue + 1;
|
||
}
|
||
else
|
||
{
|
||
self.team = 2;
|
||
teamred = teamred + 1;
|
||
}
|
||
}
|
||
else if (teamblue > teamred)
|
||
{
|
||
self.team = 2;
|
||
teamred = teamred + 1;
|
||
}
|
||
else if (teamblue < teamred)
|
||
{
|
||
self.team = 1;
|
||
teamblue = teamblue + 1;
|
||
}
|
||
|
||
self.connected = 1;
|
||
sound (self, CHAN_WEAPON, "player/yourturn.wav", TRUE, ATTN_NORM);
|
||
centerprint(self, "\n");
|
||
self.currentmenu = "none";
|
||
PutClientInServer();
|
||
self.impulse = 0;
|
||
self.current_slot = 1;
|
||
return;
|
||
}
|
||
}
|
||
else if (self.currentmenu == "select_mission")
|
||
{
|
||
if (self.impulse >= 1 && self.impulse <= 6)
|
||
{
|
||
|
||
if (self.impulse == 1)
|
||
get_new_mission(1);
|
||
if (self.impulse == 2)
|
||
get_new_mission(2);
|
||
if (self.impulse == 3)
|
||
get_new_mission(3);
|
||
if (self.impulse == 4)
|
||
get_new_mission(4);
|
||
if (self.impulse == 5)
|
||
get_new_mission(5);
|
||
if (self.impulse == 6)
|
||
get_new_mission(6);
|
||
|
||
|
||
self.team = 1;
|
||
sound (self, CHAN_WEAPON, "effects/radio2.wav", TRUE, ATTN_IDLE);
|
||
centerprint(self, "mission obtained\n");
|
||
self.currentmenu = "none";
|
||
self.impulse = 0;
|
||
return;
|
||
}
|
||
|
||
else
|
||
{
|
||
centerprint(self, "\n");
|
||
self.currentmenu = "none";
|
||
self.impulse = 0;
|
||
return;
|
||
}
|
||
}
|
||
else if (self.currentmenu == "confirm_depart")
|
||
{
|
||
if (self.impulse == 1)
|
||
{
|
||
if (infokey(world, "objective") == "return")
|
||
{
|
||
sprint(self, 2, "you're not on a mission!\n");
|
||
self.currentmenu = "none";
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
changelevel(m_map);
|
||
return;
|
||
}
|
||
}
|
||
else if (self.impulse == 2)
|
||
{
|
||
centerprint(self, "\n");
|
||
self.currentmenu = "none";
|
||
self.impulse = 0;
|
||
return;
|
||
}
|
||
}
|
||
else if (self.currentmenu == "menu_lockpick")
|
||
{
|
||
if (self.impulse == 1)
|
||
{
|
||
if (self.chest.inplace == 1 && self.chest.tumbler1.inplace == 1 && self.chest.tumbler2.inplace == 1)
|
||
{
|
||
local entity te;
|
||
local float greed;
|
||
|
||
te = findradius (self.origin, 600);
|
||
while (te)
|
||
{
|
||
if (te.classname == "player" && te != self)
|
||
greed = 0;
|
||
else
|
||
greed = 1;
|
||
|
||
te = te.chain;
|
||
}
|
||
|
||
if (greed == 1)
|
||
self.score = self.score - 50;
|
||
else
|
||
self.score = self.score - 25;
|
||
|
||
|
||
sound (self, CHAN_WEAPON, "effects/openlock.wav", TRUE, ATTN_NORM);
|
||
sprint(self, 2, "you manage to pick the lock. you find:\n");
|
||
if (random()<1)
|
||
{
|
||
sprint(self, 2, "<EFBFBD><EFBFBD> money (");
|
||
xx = 10 + ceil(random()*30);
|
||
yy = ftos(xx);
|
||
sprint(self, 2, yy);
|
||
sprint(self, 2, ")\n");
|
||
self.ammo_shells = self.ammo_shells + xx;
|
||
}
|
||
if (random()<0.5)
|
||
{
|
||
xx = ceil(random()*2);
|
||
DropFromChest(self.chest.owner, IID_CHEM_STIMPACK, xx);
|
||
sprint(self, 2, "<EFBFBD><EFBFBD> stimpacks (");
|
||
yy = ftos(xx);
|
||
sprint(self, 2, yy);
|
||
sprint(self, 2, ")\n");
|
||
}
|
||
if (random()<0.75)
|
||
{
|
||
xx = ceil(309+random()*12);
|
||
yy = GetItemName(xx);
|
||
sprint(self, 2, "<EFBFBD><EFBFBD> ");
|
||
sprint(self, 2, yy);
|
||
sprint(self, 2, "\n");
|
||
DropFromChest(self.chest.owner, xx, 1);
|
||
//TryGiveStackable(self, xx, 1);
|
||
}
|
||
if (random()<0.75)
|
||
{
|
||
xx = ceil(309+random()*12);
|
||
yy = GetItemName(xx);
|
||
sprint(self, 2, "<EFBFBD><EFBFBD> ");
|
||
sprint(self, 2, yy);
|
||
sprint(self, 2, "\n");
|
||
DropFromChest(self.chest.owner, xx, 1);
|
||
//TryGiveStackable(self, xx, 1);
|
||
}
|
||
if (random()<0.75)
|
||
{
|
||
xx = ceil(309+random()*12);
|
||
yy = GetItemName(xx);
|
||
sprint(self, 2, "<EFBFBD><EFBFBD> ");
|
||
sprint(self, 2, yy);
|
||
sprint(self, 2, "\n");
|
||
DropFromChest(self.chest.owner, xx, 1);
|
||
//TryGiveStackable(self, xx, 1);
|
||
}
|
||
if (random()<0.75)
|
||
{
|
||
xx = ceil(309+random()*12);
|
||
yy = GetItemName(xx);
|
||
sprint(self, 2, "<EFBFBD><EFBFBD> ");
|
||
sprint(self, 2, yy);
|
||
sprint(self, 2, "\n");
|
||
DropFromChest(self.chest.owner, xx, 1);
|
||
//TryGiveStackable(self, xx, 1);
|
||
}
|
||
if (random()<0.05)
|
||
{
|
||
yy = GetItemName(IID_WP_MP9);
|
||
sprint(self, 2, "<EFBFBD><EFBFBD> ");
|
||
sprint(self, 2, yy);
|
||
sprint(self, 2, "\n");
|
||
DropFromChest(self.chest.owner, IID_WP_MP9, 30);
|
||
//AddNonStackable(self, IID_WP_MP9, 30);
|
||
}
|
||
if (random()<0.05)
|
||
{
|
||
yy = GetItemName(IID_WP_NEEDLER);
|
||
sprint(self, 2, "<EFBFBD><EFBFBD> ");
|
||
sprint(self, 2, yy);
|
||
sprint(self, 2, "\n");
|
||
DropFromChest(self.chest.owner, IID_WP_NEEDLER, 10);
|
||
//AddNonStackable(self, IID_WP_NEEDLER, 10);
|
||
}
|
||
if (random()<0.50)
|
||
{
|
||
yy = GetItemName(IID_ARM_LEATHER);
|
||
sprint(self, 2, "<EFBFBD><EFBFBD> ");
|
||
sprint(self, 2, yy);
|
||
sprint(self, 2, "\n");
|
||
DropFromChest(self.chest.owner, IID_ARM_LEATHER, 1);
|
||
//AddNonStackable(self, IID_ARM_LEATHER, 1);
|
||
}
|
||
if (random()<0.05)
|
||
{
|
||
yy = GetItemName(IID_WP_PIPERIFLE_SCOPE_S);
|
||
sprint(self, 2, "<EFBFBD><EFBFBD> ");
|
||
sprint(self, 2, yy);
|
||
sprint(self, 2, "\n");
|
||
DropFromChest(self.chest.owner, IID_WP_PIPERIFLE_SCOPE_S, 1);
|
||
//AddNonStackable(self, IID_WP_PIPERIFLE_SCOPE_S, 1);
|
||
//AddNonStackable(self, IID_AM_44MAGNUM, 12);
|
||
}
|
||
if (random()<0.05)
|
||
{
|
||
yy = GetItemName(IID_WP_USP);
|
||
sprint(self, 2, "<EFBFBD><EFBFBD> ");
|
||
sprint(self, 2, yy);
|
||
sprint(self, 2, "\n");
|
||
DropFromChest(self.chest.owner, IID_WP_USP, 12);
|
||
//AddNonStackable(self, IID_WP_USP, 10);
|
||
//AddNonStackable(self, IID_AM_45ACP, 12);
|
||
}
|
||
if (random()<0.05)
|
||
{
|
||
yy = GetItemName(IID_WP_WINCHESTER);
|
||
sprint(self, 2, "<EFBFBD><EFBFBD> ");
|
||
sprint(self, 2, yy);
|
||
sprint(self, 2, "\n");
|
||
DropFromChest(self.chest.owner, IID_WP_WINCHESTER, 2);
|
||
//AddNonStackable(self, IID_WP_WINCHESTER, 2);
|
||
//AddNonStackable(self, IID_AM_12GAUGESHELLS, 18);
|
||
}
|
||
if (random()<0.75)
|
||
{
|
||
xx = ceil(309+random()*12);
|
||
yy = GetItemName(xx);
|
||
sprint(self, 2, "<EFBFBD><EFBFBD> ");
|
||
sprint(self, 2, yy);
|
||
sprint(self, 2, "\n");
|
||
DropFromChest(self.chest.owner, xx, 1);
|
||
//TryGiveStackable(self, xx, 1);
|
||
}
|
||
if (random()<0.25)
|
||
{
|
||
yy = GetItemName(IID_GREN_FRAG);
|
||
sprint(self, 2, "<EFBFBD><EFBFBD> ");
|
||
sprint(self, 2, yy);
|
||
sprint(self, 2, "\n");
|
||
DropFromChest(self.chest.owner, IID_GREN_FRAG, 1);
|
||
//TryGiveStackable(self, IID_GREN_FRAG, 1);
|
||
}
|
||
self.picking = 0;
|
||
self.chest.owner.picking = 2;
|
||
self.chest.owner.frame = 1;
|
||
self.currentmenu = "none";
|
||
remove(self.chest.tumbler1);
|
||
remove(self.chest.tumbler2);
|
||
remove(self.chest);
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
if (random()<0.90)
|
||
{
|
||
sprint(self, 2, "failed to pick the lock.\n");
|
||
self.chest.owner.picking = 0;
|
||
}
|
||
else if (ToIID(self.islot4) == IID_EQUIP_TOOLKIT)
|
||
{
|
||
sprint(self, 2, "failed, almost jammed but super toolkit prevented.\n");
|
||
self.chest.owner.picking = 0;
|
||
}
|
||
else
|
||
{
|
||
sprint(self, 2, "failed. lock is jammed.\n");
|
||
self.chest.owner.picking = 3;
|
||
}
|
||
self.picking = 0;
|
||
self.currentmenu = "none";
|
||
remove(self.chest.tumbler1);
|
||
remove(self.chest.tumbler2);
|
||
remove(self.chest);
|
||
return;
|
||
}
|
||
}
|
||
else if (self.impulse == 2)
|
||
{
|
||
self.picking = 0;
|
||
self.chest.owner.picking = 0;
|
||
remove(self.chest.tumbler1);
|
||
remove(self.chest.tumbler2);
|
||
remove(self.chest);
|
||
self.currentmenu = "none";
|
||
self.impulse = 0;
|
||
return;
|
||
}
|
||
}
|
||
else if (self.currentmenu == "menu_defuse")
|
||
{
|
||
if (self.impulse == 1)
|
||
{
|
||
if (self.chest.inplace == 1 && self.chest.tumbler1.inplace == 1 && self.chest.tumbler2.inplace == 1)
|
||
{
|
||
|
||
if (self.chest.owner.rtime <= 0)
|
||
{
|
||
sound (self, CHAN_WEAPON, "effects/beep1.wav", TRUE, ATTN_NORM);
|
||
sprint(self, 2, "you manage to disarm the bomb\n");
|
||
|
||
self.score = self.score + 75;
|
||
spawn_excla(self.chest.owner, 3000);
|
||
remove(self.chest.owner);
|
||
self.picking = 0;
|
||
self.chest.owner.picking = 2;
|
||
self.chest.owner.frame = 1;
|
||
self.currentmenu = "none";
|
||
remove(self.chest.tumbler1);
|
||
remove(self.chest.tumbler2);
|
||
remove(self.chest);
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
sprint(self, 2, "almost got it... ");
|
||
self.chest.owner.rtime = self.chest.owner.rtime - 1;
|
||
x = ftos(self.chest.owner.rtime);
|
||
sprint(self, 2, x);
|
||
sprint(self, 2, " circuits left\n");
|
||
|
||
return;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (random()<0.75)
|
||
{
|
||
sprint(self, 2, "oops! slipped...\n");
|
||
self.chest.owner.picking = 0;
|
||
}
|
||
else if (ToIID(self.islot4) == IID_EQUIP_TOOLKIT)
|
||
{
|
||
sprint(self, 2, "failed, almost jammed but super toolkit prevented.\n");
|
||
self.chest.owner.picking = 0;
|
||
}
|
||
else
|
||
{
|
||
sprint(self, 2, "oops! circuits have been shorted. ");
|
||
self.chest.owner.rtime = self.chest.owner.rtime + 1;
|
||
self.chest.owner.picking = 0;
|
||
x = ftos(self.chest.owner.rtime);
|
||
sprint(self, 2, x);
|
||
sprint(self, 2, " circuits left\n");
|
||
}
|
||
self.picking = 0;
|
||
self.currentmenu = "none";
|
||
remove(self.chest.tumbler1);
|
||
remove(self.chest.tumbler2);
|
||
remove(self.chest);
|
||
return;
|
||
}
|
||
}
|
||
else if (self.impulse == 2)
|
||
{
|
||
self.picking = 0;
|
||
self.chest.owner.picking = 0;
|
||
remove(self.chest.tumbler1);
|
||
remove(self.chest.tumbler2);
|
||
remove(self.chest);
|
||
self.currentmenu = "none";
|
||
self.impulse = 0;
|
||
return;
|
||
}
|
||
}
|
||
}; |