Merge branch 'Movement' of github.com:teamfisk/TacticalZ into Movement
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
<Color A="0" B="1.96078432" G="0" R="3.92156863"/>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:NetworkComponent/>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="-0.0900000036" Z="-0.00600000005"/>
|
||||
<Orientation X="1.57000005" Y="0" Z="0"/>
|
||||
|
||||
@@ -79,45 +79,37 @@ std::string BoostSystem::DetermineClass(EntityWrapper inflictorPlayer)
|
||||
|
||||
void BoostSystem::giveAmmo(EntityWrapper giver, EntityWrapper receiver)
|
||||
{
|
||||
bool gaveAmmo = false;
|
||||
|
||||
if (receiver.HasComponent("AssaultWeapon")) {
|
||||
int magazineSize = receiver["AssaultWeapon"]["MagazineSize"];
|
||||
int& magazineAmmo = receiver["AssaultWeapon"]["MagazineAmmo"];
|
||||
|
||||
int prevMagazineAmmo = receiver["AssaultWeapon"]["MagazineAmmo"];
|
||||
int maxAmmo = receiver["AssaultWeapon"]["MaxAmmo"];
|
||||
int& ammo = receiver["AssaultWeapon"]["Ammo"];
|
||||
|
||||
if (magazineAmmo < magazineSize) {
|
||||
magazineAmmo += 1;
|
||||
gaveAmmo = true;
|
||||
} else if (ammo < maxAmmo) {
|
||||
ammo += 1;
|
||||
gaveAmmo = true;
|
||||
int givenAmmo = 3;
|
||||
|
||||
magazineAmmo = glm::clamp(magazineAmmo + givenAmmo, 0, magazineSize);
|
||||
if (magazineAmmo > prevMagazineAmmo) {
|
||||
givenAmmo = prevMagazineAmmo + givenAmmo - magazineSize;
|
||||
}
|
||||
if (givenAmmo > 0) {
|
||||
ammo = glm::clamp(ammo + givenAmmo, 0, maxAmmo);
|
||||
}
|
||||
} else if (receiver.HasComponent("DefenderWeapon")) {
|
||||
int magazineSize = receiver["DefenderWeapon"]["MagazineSize"];
|
||||
int& magazineAmmo = receiver["DefenderWeapon"]["MagazineAmmo"];
|
||||
|
||||
int prevMagazineAmmo = receiver["DefenderWeapon"]["MagazineAmmo"];
|
||||
int maxAmmo = receiver["DefenderWeapon"]["MaxAmmo"];
|
||||
int& ammo = receiver["DefenderWeapon"]["Ammo"];
|
||||
|
||||
if (magazineAmmo < magazineSize) {
|
||||
magazineAmmo += 1;
|
||||
gaveAmmo = true;
|
||||
} else if (ammo < maxAmmo) {
|
||||
ammo += 1;
|
||||
gaveAmmo = true;
|
||||
int givenAmmo = 1;
|
||||
|
||||
magazineAmmo = glm::clamp(magazineAmmo + givenAmmo, 0, magazineSize);
|
||||
if (magazineAmmo > prevMagazineAmmo) {
|
||||
givenAmmo = prevMagazineAmmo + givenAmmo - magazineSize;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (gaveAmmo) {
|
||||
EntityWrapper effectSpawner = giver.FirstChildByName("AmmoShareEffectSpawner");
|
||||
if (effectSpawner.Valid()) {
|
||||
if (effectSpawner.HasComponent("Spawner")) {
|
||||
SpawnerSystem::Spawn(effectSpawner, effectSpawner);
|
||||
}
|
||||
if (givenAmmo > 0) {
|
||||
ammo = glm::clamp(ammo + givenAmmo, 0, maxAmmo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -281,7 +281,44 @@ bool SidearmWeaponBehaviour::dealDamage(ComponentWrapper cWeapon, WeaponInfo& wi
|
||||
// If friendly fire, reduce damage to 0 (needed to make Boosts, Ammosharing work)
|
||||
if ((ComponentInfo::EnumType)victim["Team"]["Team"] == (ComponentInfo::EnumType)wi.Player["Team"]["Team"]) {
|
||||
damage = 0;
|
||||
//giveAmmo(cWeapon, wi, victim);
|
||||
|
||||
bool gaveAmmo = false;
|
||||
|
||||
if (victim.HasComponent("AssaultWeapon")) {
|
||||
int magazineSize = victim["AssaultWeapon"]["MagazineSize"];
|
||||
int magazineAmmo = victim["AssaultWeapon"]["MagazineAmmo"];
|
||||
|
||||
int maxAmmo = victim["AssaultWeapon"]["MaxAmmo"];
|
||||
int ammo = victim["AssaultWeapon"]["Ammo"];
|
||||
|
||||
if (magazineAmmo < magazineSize) {
|
||||
gaveAmmo = true;
|
||||
} else if (ammo < maxAmmo) {
|
||||
gaveAmmo = true;
|
||||
}
|
||||
} else if (victim.HasComponent("DefenderWeapon")) {
|
||||
int magazineSize = victim["DefenderWeapon"]["MagazineSize"];
|
||||
int magazineAmmo = victim["DefenderWeapon"]["MagazineAmmo"];
|
||||
|
||||
int maxAmmo = victim["DefenderWeapon"]["MaxAmmo"];
|
||||
int ammo = victim["DefenderWeapon"]["Ammo"];
|
||||
|
||||
if (magazineAmmo < magazineSize) {
|
||||
gaveAmmo = true;
|
||||
} else if (ammo < maxAmmo) {
|
||||
gaveAmmo = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (gaveAmmo) {
|
||||
EntityWrapper effectSpawner = wi.FirstPersonEntity.FirstChildByName("AmmoShareEffectSpawner");
|
||||
if (effectSpawner.Valid()) {
|
||||
if (effectSpawner.HasComponent("Spawner")) {
|
||||
SpawnerSystem::Spawn(effectSpawner, effectSpawner);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Deal damage!
|
||||
|
||||
Reference in New Issue
Block a user