public void onReload(Person person, long now) { if (person.isReload() && person.getShotCooldown() < now && person.getReloadCooldown() < now) { AbstractWeapon weapon = person.getWeapon(); if (weapon.getTotalClip() <= 0) { return; } person.setIsReload(false); int clipToReload = weapon.getClipSize(); if (clipToReload > weapon.getTotalClip()) { clipToReload = weapon.getTotalClip(); } weapon.setCurrentClip(clipToReload); } }
void handleFire(Person person, Room room) { if (person.isFire()) { AbstractWeapon weapon = person.getWeapon(); long now = System.currentTimeMillis(); if (!person.isReload() && weapon.getCurrentClip() <= 0) { if (weapon.getTotalClip() > 0) { person.setIsReload(true); person.setReloadCooldown(now + person.getWeapon().getReloadTimeout()); } } else if (!person.isReload() && weapon.getCurrentClip() > 0 && person.getShotCooldown() < now) { fire(person, room); } } }