mirror of
https://github.com/ProjectSWGCore/Holocore.git
synced 2026-10-16 06:12:52 -04:00
Holocore-435 [Brawler] Parry Riposte Stance
Lots of file edits because I also created SWGColor and used in relevant places. It contains commonly used colors for flytexts, so we don't need to look them up each time. There are way more colors than the ones I added, but I figure it makes sense to add them as we go along.
This commit is contained in:
@@ -21,6 +21,7 @@ meleeHit LEFT_CLICK_DEFAULT STANDARD ATTACK HEALTH 1 object/tangible/spac
|
||||
meleeStrike LEFT_CLICK_DEFAULT STANDARD ATTACK HEALTH 1 object/tangible/space/content_infrastructure/generic_egg_small.iff -1 3 1 TARGET STANDARD TRUE TRUE attack_high_right_medium_0,attack_high_right_medium_1,attack_high_center_medium_0,attack_high_center_medium_1,attack_high_center_1_jab_double_medium,attack_high_center_medium_2,attack_high_left_medium_0,attack_high_left_medium_1,attack_mid_left_medium_0,attack_mid_left_medium_1,attack_mid_left_medium_2,attack_mid_right_medium_0,attack_mid_right_medium_1,attack_mid_right_medium_2,attack_special_elbow_throw_medium SINGLE_TARGET 0 0 0 0 0 0 1.2 0 1 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 PISTOL RANGED_WEAPON KINETIC KINETIC 0 0 0 FALSE WEAPON_NAME 0 0 1 0
|
||||
neurotoxin RIGHT_CLICK_SPECIAL STANDARD ATTACK HEALTH 1 appearance/pt_special_attack_blind.prt weapon object/tangible/space/content_infrastructure/generic_egg_small.iff -1 3 1 TARGET STANDARD TRUE TRUE fire_1_single_medium attack_special_knee_strike_medium combo_2b_medium combo_4c_medium combo_4c_medium fire_1_single_medium fire_1_single_medium fire_1_single_medium fire_1_single_medium *heavy_wpn SINGLE_TARGET 0 0 0 0 20 0 1 0 1 0 0 0 0 0 50 0 0 0 0 0 medicNeurotoxin_1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 PISTOL RANGED_WEAPON KINETIC KINETIC 0 0 0 FALSE ACTION_NAME 0 0 1 0
|
||||
paintTarget RIGHT_CLICK_SPECIAL STANDARD DEBUFF HEALTH 1 appearance/pt_special_attack_startle.prt weapon object/tangible/space/content_infrastructure/generic_egg_small.iff -1 3 1 TARGET STANDARD TRUE TRUE fire_1_single_medium attack_special_knee_strike_medium combo_2b_medium combo_4c_medium combo_4c_medium fire_1_single_medium fire_1_single_medium fire_1_single_medium fire_1_single_medium *heavy_wpn SINGLE_TARGET 0 0 0 0 20 0 1 0 1 0 0 0 0 0 50 0 0 0 0 0 officerPaintTarget_1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 PISTOL RANGED_WEAPON KINETIC KINETIC 0 0 0 FALSE perform_target ACTION_NAME 0 0 1 0
|
||||
parryRiposte RIGHT_CLICK_SPECIAL NONE BUFF HEALTH 1 object/tangible/space/content_infrastructure/generic_egg_small.iff -1 3 1 TARGET STANDARD TRUE TRUE SINGLE_TARGET 0 0 0 0 0 0 1 0 1 0 0 0 0 0 50 0 0 0 0 0 0 0 parryRiposte 0 0 1 0 0 0 0 0 0 0 0 0 0 PISTOL RANGED_WEAPON KINETIC KINETIC 0 0 0 FALSE perform_notarget ACTION_NAME 0 0 1 0
|
||||
rangedShot LEFT_CLICK_DEFAULT STANDARD ATTACK HEALTH 1 object/tangible/space/content_infrastructure/generic_egg_small.iff -1 3 1 TARGET STANDARD TRUE TRUE fire_1_single_medium fire_1_single_medium fire_1_single_medium fire_3_single_medium fire_1_single_medium SINGLE_TARGET 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 PISTOL RANGED_WEAPON KINETIC KINETIC 0 0 0 FALSE WEAPON_NAME 0 0 1 0
|
||||
saberHit LEFT_CLICK_DEFAULT STANDARD ATTACK HEALTH 1 object/tangible/space/content_infrastructure/generic_egg_small.iff -1 3 1 TARGET STANDARD TRUE TRUE attack_high_center_medium_0,attack_high_center_medium_1,attack_high_center_medium_2,attack_high_left_medium_0,attack_high_left_medium_1,attack_high_left_medium_2,attack_high_right_medium_0,attack_high_right_medium_1,attack_high_right_medium_2,attack_low_left_medium_0,attack_low_left_medium_1,attack_low_left_medium_2,attack_low_right_medium_0,attack_low_right_medium_1,attack_low_right_medium_2,attack_mid_center_medium_0,attack_mid_center_medium_1,attack_mid_center_medium_2,attack_mid_left_medium_0,attack_mid_left_medium_1,attack_mid_left_medium_2,attack_mid_right_medium_0,attack_mid_right_medium_1,attack_mid_right_medium_2 attack_high_center_medium_0,attack_high_center_medium_1,attack_high_center_medium_2,attack_high_left_medium_0,attack_high_left_medium_1,attack_high_left_medium_2,attack_high_right_medium_0,attack_high_right_medium_1,attack_high_right_medium_2,attack_low_left_medium_0,attack_low_left_medium_1,attack_low_left_medium_2,attack_low_right_medium_0,attack_low_right_medium_1,attack_low_right_medium_2,attack_mid_center_medium_0,attack_mid_center_medium_1,attack_mid_center_medium_2,attack_mid_left_medium_0,attack_mid_left_medium_1,attack_mid_left_medium_2,attack_mid_right_medium_0,attack_mid_right_medium_1,attack_mid_right_medium_2 attack_high_center_medium_0,attack_high_center_medium_1,attack_high_center_medium_2,attack_high_left_medium_0,attack_high_left_medium_1,attack_high_left_medium_2,attack_high_right_medium_0,attack_high_right_medium_1,attack_high_right_medium_2,attack_low_left_medium_0,attack_low_left_medium_1,attack_low_left_medium_2,attack_low_right_medium_0,attack_low_right_medium_1,attack_low_right_medium_2,attack_mid_center_medium_0,attack_mid_center_medium_1,attack_mid_center_medium_2,attack_mid_left_medium_0,attack_mid_left_medium_1,attack_mid_left_medium_2,attack_mid_right_medium_0,attack_mid_right_medium_1,attack_mid_right_medium_2 attack_high_center_medium_0,attack_high_center_medium_1,attack_high_center_medium_2,attack_high_left_medium_0,attack_high_left_medium_1,attack_high_left_medium_2,attack_high_right_medium_0,attack_high_right_medium_1,attack_high_right_medium_2,attack_low_left_medium_0,attack_low_left_medium_1,attack_low_left_medium_2,attack_low_right_medium_0,attack_low_right_medium_1,attack_low_right_medium_2,attack_mid_center_medium_0,attack_mid_center_medium_1,attack_mid_center_medium_2,attack_mid_left_medium_0,attack_mid_left_medium_1,attack_mid_left_medium_2,attack_mid_right_medium_0,attack_mid_right_medium_1,attack_mid_right_medium_2 SINGLE_TARGET 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 PISTOL RANGED_WEAPON KINETIC KINETIC 0 0 0 FALSE WEAPON_NAME 0 0 1 0
|
||||
stormLordSpecial RIGHT_CLICK_SPECIAL STANDARD DEBUFF HEALTH 1 clienteffect/pl_storm_lord_special.cef object/tangible/space/content_infrastructure/generic_egg_small.iff -1 3 1 TARGET STANDARD FALSE FALSE $force_lightning_1_arc_particle_level_[private_force_lightning_single_power:2]_medium AREA 30 0 0 32 10000 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1000 1500 PISTOL RANGED_WEAPON KINETIC KINETIC 0 0 0 FALSE NO_ATTACK_NAME 0 0 1 0
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.projectswg.holocore.resources.support.color
|
||||
|
||||
import com.projectswg.common.data.RGB
|
||||
|
||||
object SWGColor {
|
||||
val black = RGB(0, 0, 0)
|
||||
|
||||
object Blues {
|
||||
val cyan = RGB(0, 255, 255)
|
||||
}
|
||||
|
||||
object Greens {
|
||||
val seagreen = RGB(46, 139, 87)
|
||||
}
|
||||
|
||||
object Reds {
|
||||
val orangered = RGB(255, 69, 0)
|
||||
val red = RGB(255, 0, 0)
|
||||
}
|
||||
|
||||
object Violets {
|
||||
val magenta = RGB(255, 0, 255)
|
||||
}
|
||||
|
||||
object Whites {
|
||||
val white = RGB(255, 255, 255)
|
||||
}
|
||||
}
|
||||
-60
@@ -1,60 +0,0 @@
|
||||
/***********************************************************************************
|
||||
* Copyright (c) 2018 /// Project SWG /// www.projectswg.com *
|
||||
* *
|
||||
* ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on *
|
||||
* July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. *
|
||||
* Our goal is to create an emulator which will provide a server for players to *
|
||||
* continue playing a game similar to the one they used to play. We are basing *
|
||||
* it on the final publish of the game prior to end-game events. *
|
||||
* *
|
||||
* This file is part of Holocore. *
|
||||
* *
|
||||
* --------------------------------------------------------------------------------*
|
||||
* *
|
||||
* Holocore is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU Affero General Public License as *
|
||||
* published by the Free Software Foundation, either version 3 of the *
|
||||
* License, or (at your option) any later version. *
|
||||
* *
|
||||
* Holocore is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Affero General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Affero General Public License *
|
||||
* along with Holocore. If not, see <http://www.gnu.org/licenses/>. *
|
||||
***********************************************************************************/
|
||||
package com.projectswg.holocore.resources.support.global.commands.callbacks;
|
||||
|
||||
import com.projectswg.common.data.RGB;
|
||||
import com.projectswg.common.data.encodables.oob.StringId;
|
||||
import com.projectswg.common.data.encodables.tangible.Posture;
|
||||
import com.projectswg.common.network.packets.swg.zone.object_controller.ShowFlyText;
|
||||
import com.projectswg.holocore.resources.support.global.commands.ICmdCallback;
|
||||
import com.projectswg.holocore.resources.support.global.commands.Locomotion;
|
||||
import com.projectswg.holocore.resources.support.global.player.Player;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.SWGObject;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureObject;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class KnockdownRecoveryCmdCallback implements ICmdCallback{
|
||||
|
||||
@Override
|
||||
public void execute(@NotNull Player player, SWGObject target, @NotNull String args) {
|
||||
CreatureObject creatureObject = player.getCreatureObject();
|
||||
|
||||
if (Locomotion.KNOCKED_DOWN.isActive(creatureObject)) {
|
||||
standUp(creatureObject);
|
||||
} else {
|
||||
showWrongPostureFlyText(creatureObject);
|
||||
}
|
||||
}
|
||||
|
||||
private void showWrongPostureFlyText(CreatureObject creatureObject) {
|
||||
creatureObject.sendSelf(new ShowFlyText(creatureObject.getObjectId(), new StringId("combat_effects", "wrong_posture_fly"), ShowFlyText.Scale.MEDIUM, new RGB(255, 255, 255)));
|
||||
}
|
||||
|
||||
private void standUp(CreatureObject creatureObject) {
|
||||
creatureObject.setPosture(Posture.UPRIGHT);
|
||||
}
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
package com.projectswg.holocore.resources.support.global.commands.callbacks
|
||||
|
||||
import com.projectswg.common.data.encodables.oob.StringId
|
||||
import com.projectswg.common.data.encodables.tangible.Posture
|
||||
import com.projectswg.common.network.packets.swg.zone.object_controller.ShowFlyText
|
||||
import com.projectswg.holocore.resources.support.color.SWGColor
|
||||
import com.projectswg.holocore.resources.support.global.commands.ICmdCallback
|
||||
import com.projectswg.holocore.resources.support.global.commands.Locomotion
|
||||
import com.projectswg.holocore.resources.support.global.player.Player
|
||||
import com.projectswg.holocore.resources.support.objects.swg.SWGObject
|
||||
import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureObject
|
||||
|
||||
class KnockdownRecoveryCmdCallback : ICmdCallback {
|
||||
override fun execute(player: Player, target: SWGObject?, args: String) {
|
||||
val creatureObject = player.creatureObject
|
||||
|
||||
if (Locomotion.KNOCKED_DOWN.isActive(creatureObject)) {
|
||||
standUp(creatureObject)
|
||||
} else {
|
||||
showWrongPostureFlyText(creatureObject)
|
||||
}
|
||||
}
|
||||
|
||||
private fun showWrongPostureFlyText(creatureObject: CreatureObject) {
|
||||
creatureObject.sendSelf(ShowFlyText(creatureObject.objectId, StringId("combat_effects", "wrong_posture_fly"), ShowFlyText.Scale.MEDIUM, SWGColor.Whites.white))
|
||||
}
|
||||
|
||||
private fun standUp(creatureObject: CreatureObject) {
|
||||
creatureObject.posture = Posture.UPRIGHT
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.projectswg.holocore.resources.support.npc.ai
|
||||
|
||||
import com.projectswg.common.data.RGB
|
||||
import com.projectswg.common.data.encodables.oob.StringId
|
||||
import com.projectswg.common.data.encodables.tangible.Posture
|
||||
import com.projectswg.common.data.location.Location
|
||||
@@ -12,6 +11,7 @@ import com.projectswg.holocore.intents.support.npc.ai.StartNpcCombatIntent
|
||||
import com.projectswg.holocore.intents.support.npc.ai.StartNpcMovementIntent
|
||||
import com.projectswg.holocore.intents.support.npc.ai.StopNpcMovementIntent
|
||||
import com.projectswg.holocore.intents.support.objects.swg.MoveObjectIntent
|
||||
import com.projectswg.holocore.resources.support.color.SWGColor
|
||||
import com.projectswg.holocore.resources.support.data.server_info.loader.DataLoader
|
||||
import com.projectswg.holocore.resources.support.data.server_info.mongodb.PswgDatabase
|
||||
import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureObject
|
||||
@@ -62,7 +62,7 @@ class NpcCombatMode(obj: AIObject) : NpcMode(obj) {
|
||||
}
|
||||
|
||||
private fun showExclamationMarkAboveNpc() {
|
||||
ai.sendObservers(ShowFlyText(ai.objectId, StringId("npc_reaction/flytext", "threaten"), ShowFlyText.Scale.SMALL, RGB(204, 0, 0)))
|
||||
ai.sendObservers(ShowFlyText(ai.objectId, StringId("npc_reaction/flytext", "threaten"), ShowFlyText.Scale.SMALL, SWGColor.Reds.red))
|
||||
}
|
||||
|
||||
override fun onModeEnd() {
|
||||
|
||||
+2
-2
@@ -26,13 +26,13 @@
|
||||
***********************************************************************************/
|
||||
package com.projectswg.holocore.resources.support.objects.swg.custom;
|
||||
|
||||
import com.projectswg.common.data.RGB;
|
||||
import com.projectswg.common.data.encodables.oob.StringId;
|
||||
import com.projectswg.common.data.location.Location;
|
||||
import com.projectswg.common.network.packets.swg.zone.baselines.Baseline.BaselineType;
|
||||
import com.projectswg.common.network.packets.swg.zone.object_controller.ShowFlyText;
|
||||
import com.projectswg.holocore.intents.support.npc.ai.ScheduleNpcModeIntent;
|
||||
import com.projectswg.holocore.intents.support.npc.ai.StartNpcCombatIntent;
|
||||
import com.projectswg.holocore.resources.support.color.SWGColor;
|
||||
import com.projectswg.holocore.resources.support.npc.spawn.Spawner;
|
||||
import com.projectswg.holocore.resources.support.objects.ObjectCreator;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.SWGObject;
|
||||
@@ -170,7 +170,7 @@ public class AIObject extends CreatureObject {
|
||||
}
|
||||
|
||||
private void showQuestionMarkAboveNpc() {
|
||||
this.sendObservers(new ShowFlyText(this.getObjectId(), new StringId("npc_reaction/flytext", "alert"), ShowFlyText.Scale.SMALL, new RGB(204, 0, 0)));
|
||||
this.sendObservers(new ShowFlyText(this.getObjectId(), new StringId("npc_reaction/flytext", "alert"), ShowFlyText.Scale.SMALL, SWGColor.Reds.INSTANCE.getRed()));
|
||||
}
|
||||
|
||||
private void checkAwareAttack(CreatureObject player) {
|
||||
|
||||
+42
-2
@@ -27,17 +27,20 @@
|
||||
|
||||
package com.projectswg.holocore.services.gameplay.combat.command;
|
||||
|
||||
import com.projectswg.common.data.RGB;
|
||||
import com.projectswg.common.data.combat.*;
|
||||
import com.projectswg.common.data.encodables.oob.OutOfBandPackage;
|
||||
import com.projectswg.common.data.encodables.oob.ProsePackage;
|
||||
import com.projectswg.common.data.encodables.oob.StringId;
|
||||
import com.projectswg.common.data.location.Location;
|
||||
import com.projectswg.common.network.packets.swg.zone.object_controller.ShowFlyText;
|
||||
import com.projectswg.common.network.packets.swg.zone.object_controller.combat.CombatAction;
|
||||
import com.projectswg.common.network.packets.swg.zone.object_controller.combat.CombatAction.Defender;
|
||||
import com.projectswg.common.network.packets.swg.zone.object_controller.combat.CombatSpam;
|
||||
import com.projectswg.holocore.intents.gameplay.combat.EnterCombatIntent;
|
||||
import com.projectswg.holocore.intents.gameplay.combat.KnockdownIntent;
|
||||
import com.projectswg.holocore.intents.gameplay.combat.RequestCreatureDeathIntent;
|
||||
import com.projectswg.holocore.intents.support.global.chat.SystemMessageIntent;
|
||||
import com.projectswg.holocore.resources.support.color.SWGColor;
|
||||
import com.projectswg.holocore.resources.support.global.commands.CombatCommand;
|
||||
import com.projectswg.holocore.resources.support.global.commands.Locomotion;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.SWGObject;
|
||||
@@ -196,7 +199,7 @@ enum CombatCommandAttack implements CombatCommandHitType {
|
||||
if (randomNumberBetween0And100() > toHit) {
|
||||
info.setSuccess(false);
|
||||
|
||||
ShowFlyText missFlyText = new ShowFlyText(target.getObjectId(), new StringId("combat_effects", "miss"), ShowFlyText.Scale.MEDIUM, new RGB(255, 255, 255));
|
||||
ShowFlyText missFlyText = new ShowFlyText(target.getObjectId(), new StringId("combat_effects", "miss"), ShowFlyText.Scale.MEDIUM, SWGColor.Whites.INSTANCE.getWhite());
|
||||
target.sendSelf(missFlyText);
|
||||
source.sendSelf(missFlyText);
|
||||
|
||||
@@ -258,11 +261,48 @@ enum CombatCommandAttack implements CombatCommandHitType {
|
||||
int hate = (int) (finalDamage * command.getHateDamageModifier());
|
||||
hate += command.getHateAdd();
|
||||
target.handleHate(source, hate);
|
||||
|
||||
boolean bothUsingMelee = target.getEquippedWeapon().getType().isMelee() && source.getEquippedWeapon().getType().isMelee();
|
||||
|
||||
if (bothUsingMelee) {
|
||||
double percentOfDamageToReflectBackToAttacker = target.getSkillModValue("private_melee_dmg_shield") / 100d;
|
||||
|
||||
if (percentOfDamageToReflectBackToAttacker > 0) {
|
||||
riposte(source, target, rawDamage, percentOfDamageToReflectBackToAttacker);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
source.sendObservers(action);
|
||||
}
|
||||
|
||||
private static void riposte(CreatureObject source, CreatureObject target, int rawDamage, double percentOfDamageToReflectBackToAttacker) {
|
||||
int reflectedDamage = (int) (percentOfDamageToReflectBackToAttacker * rawDamage);
|
||||
|
||||
ShowFlyText riposteFlytext = new ShowFlyText(target.getObjectId(), new StringId("cbt_spam", "dmg_shield_melee_fly"), ShowFlyText.Scale.MEDIUM, SWGColor.Reds.INSTANCE.getOrangered());
|
||||
target.sendSelf(riposteFlytext);
|
||||
source.sendSelf(riposteFlytext);
|
||||
|
||||
OutOfBandPackage spamMessage = new OutOfBandPackage(new ProsePackage(new StringId("cbt_spam", "dmg_shield_melee_spam"), "TU", target.getObjectName(), "TT", source.getObjectName(), "DI", reflectedDamage));
|
||||
sendRiposteCombatSpam(target, spamMessage);
|
||||
sendRiposteCombatSpam(source, spamMessage);
|
||||
|
||||
if (source.getHealth() < reflectedDamage) {
|
||||
// Took more damage than they had health left. Final damage becomes the amount of remaining health.
|
||||
RequestCreatureDeathIntent.broadcast(source, target);
|
||||
} else {
|
||||
source.modifyHealth(-reflectedDamage);
|
||||
}
|
||||
}
|
||||
|
||||
private static void sendRiposteCombatSpam(CreatureObject receiver, OutOfBandPackage spamMessage) {
|
||||
CombatSpam riposteCombatSpamTo = new CombatSpam(receiver.getObjectId());
|
||||
riposteCombatSpamTo.setDataType((byte) 2);
|
||||
riposteCombatSpamTo.setSpamMessage(spamMessage);
|
||||
riposteCombatSpamTo.setSpamType(CombatSpamType.HIT);
|
||||
receiver.sendSelf(riposteCombatSpamTo);
|
||||
}
|
||||
|
||||
private static double calculateToHit(CreatureObject source, WeaponObject sourceWeapon, CreatureObject target) {
|
||||
int accMod = calculateAccMod(source, sourceWeapon);
|
||||
int defMod = calculateDefMod(source, target);
|
||||
|
||||
+5
-7
@@ -39,6 +39,7 @@ import com.projectswg.common.network.packets.swg.zone.object_controller.ShowFlyT
|
||||
import com.projectswg.common.network.packets.swg.zone.object_controller.combat.CombatAction;
|
||||
import com.projectswg.common.network.packets.swg.zone.object_controller.combat.CombatSpam;
|
||||
import com.projectswg.holocore.intents.gameplay.combat.buffs.BuffIntent;
|
||||
import com.projectswg.holocore.resources.support.color.SWGColor;
|
||||
import com.projectswg.holocore.resources.support.global.commands.CombatCommand;
|
||||
import com.projectswg.holocore.resources.support.global.commands.Command;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.SWGObject;
|
||||
@@ -50,9 +51,6 @@ import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
public class CombatCommandCommon {
|
||||
|
||||
private static final RGB COLOR_WHITE = new RGB(255, 255, 255);
|
||||
private static final RGB COLOR_CYAN = new RGB(0, 255, 255);
|
||||
|
||||
private CombatCommandCommon() {
|
||||
|
||||
}
|
||||
@@ -161,10 +159,10 @@ public class CombatCommandCommon {
|
||||
|
||||
public static void handleStatus(CreatureObject source, CombatStatus status) {
|
||||
switch (status) {
|
||||
case NO_TARGET -> showFlyText(source, "@combat_effects:target_invalid_fly", Scale.MEDIUM, COLOR_WHITE, ShowFlyText.Flag.PRIVATE);
|
||||
case TOO_FAR -> showFlyText(source, "@combat_effects:range_too_far", Scale.MEDIUM, COLOR_CYAN, ShowFlyText.Flag.PRIVATE);
|
||||
case INVALID_TARGET -> showFlyText(source, "@combat_effects:target_invalid_fly", Scale.MEDIUM, COLOR_CYAN, ShowFlyText.Flag.PRIVATE);
|
||||
default -> showFlyText(source, "@combat_effects:action_failed", Scale.MEDIUM, COLOR_WHITE, ShowFlyText.Flag.PRIVATE);
|
||||
case NO_TARGET -> showFlyText(source, "@combat_effects:target_invalid_fly", Scale.MEDIUM, SWGColor.Whites.INSTANCE.getWhite(), ShowFlyText.Flag.PRIVATE);
|
||||
case TOO_FAR -> showFlyText(source, "@combat_effects:range_too_far", Scale.MEDIUM, SWGColor.Blues.INSTANCE.getCyan(), ShowFlyText.Flag.PRIVATE);
|
||||
case INVALID_TARGET -> showFlyText(source, "@combat_effects:target_invalid_fly", Scale.MEDIUM, SWGColor.Blues.INSTANCE.getCyan(), ShowFlyText.Flag.PRIVATE);
|
||||
default -> showFlyText(source, "@combat_effects:action_failed", Scale.MEDIUM, SWGColor.Whites.INSTANCE.getWhite(), ShowFlyText.Flag.PRIVATE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -27,7 +27,6 @@
|
||||
|
||||
package com.projectswg.holocore.services.gameplay.combat.command;
|
||||
|
||||
import com.projectswg.common.data.RGB;
|
||||
import com.projectswg.common.data.combat.*;
|
||||
import com.projectswg.common.data.encodables.oob.OutOfBandPackage;
|
||||
import com.projectswg.common.data.encodables.oob.ProsePackage;
|
||||
@@ -42,6 +41,7 @@ import com.projectswg.common.network.packets.swg.zone.object_controller.combat.C
|
||||
import com.projectswg.common.network.packets.swg.zone.object_controller.combat.CombatAction.Defender;
|
||||
import com.projectswg.common.network.packets.swg.zone.object_controller.combat.CombatSpam;
|
||||
import com.projectswg.holocore.intents.gameplay.player.experience.ExperienceIntent;
|
||||
import com.projectswg.holocore.resources.support.color.SWGColor;
|
||||
import com.projectswg.holocore.resources.support.global.commands.CombatCommand;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.SWGObject;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureObject;
|
||||
@@ -187,7 +187,7 @@ enum CombatCommandHeal implements CombatCommandHitType {
|
||||
combatAction.addDefender(new Defender(healed.getObjectId(), healed.getPosture(), false, (byte) 0, HitLocation.HIT_LOCATION_BODY, (short) 0));
|
||||
|
||||
OutOfBandPackage oobp = new OutOfBandPackage(new ProsePackage("StringId", new StringId("healing", "heal_fly"), "DI", difference, "TO", attribName));
|
||||
ShowFlyText flyText = new ShowFlyText(healed.getObjectId(), oobp, Scale.MEDIUM, new RGB(46, 139, 87), ShowFlyText.Flag.IS_HEAL);
|
||||
ShowFlyText flyText = new ShowFlyText(healed.getObjectId(), oobp, Scale.MEDIUM, SWGColor.Greens.INSTANCE.getSeagreen(), ShowFlyText.Flag.IS_HEAL);
|
||||
String commandName = combatCommand.getName();
|
||||
SWGPacket effect;
|
||||
|
||||
|
||||
+2
-3
@@ -1,6 +1,5 @@
|
||||
package com.projectswg.holocore.services.gameplay.player.experience;
|
||||
|
||||
import com.projectswg.common.data.RGB;
|
||||
import com.projectswg.common.data.encodables.oob.OutOfBandPackage;
|
||||
import com.projectswg.common.data.encodables.oob.ProsePackage;
|
||||
import com.projectswg.common.data.encodables.oob.StringId;
|
||||
@@ -9,6 +8,7 @@ import com.projectswg.common.network.packets.swg.zone.object_controller.ShowFlyT
|
||||
import com.projectswg.common.network.packets.swg.zone.object_controller.ShowFlyText.Scale;
|
||||
import com.projectswg.holocore.intents.gameplay.player.experience.ExperienceIntent;
|
||||
import com.projectswg.holocore.intents.support.global.chat.SystemMessageIntent;
|
||||
import com.projectswg.holocore.resources.support.color.SWGColor;
|
||||
import com.projectswg.holocore.resources.support.data.server_info.mongodb.PswgDatabase;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.SWGObject;
|
||||
import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureObject;
|
||||
@@ -68,8 +68,7 @@ public class ExperiencePointService extends Service {
|
||||
|
||||
private void showFlytext(CreatureObject creatureObject, SWGObject flytextTarget, int xpGained) {
|
||||
OutOfBandPackage message = new OutOfBandPackage(new ProsePackage(new StringId("base_player", "prose_flytext_xp"), "DI", xpGained));
|
||||
RGB magenta = new RGB(255, 0, 255);
|
||||
ShowFlyText packet = new ShowFlyText(flytextTarget.getObjectId(), message, Scale.MEDIUM, magenta);
|
||||
ShowFlyText packet = new ShowFlyText(flytextTarget.getObjectId(), message, Scale.MEDIUM, SWGColor.Violets.INSTANCE.getMagenta());
|
||||
creatureObject.sendSelf(packet);
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -14,6 +14,7 @@ import com.projectswg.holocore.intents.support.global.command.ExecuteCommandInte
|
||||
import com.projectswg.holocore.intents.support.global.command.QueueCommandIntent;
|
||||
import com.projectswg.holocore.intents.support.global.network.InboundPacketIntent;
|
||||
import com.projectswg.holocore.intents.support.global.zone.PlayerEventIntent;
|
||||
import com.projectswg.holocore.resources.support.color.SWGColor;
|
||||
import com.projectswg.holocore.resources.support.data.server_info.StandardLog;
|
||||
import com.projectswg.holocore.resources.support.data.server_info.loader.DataLoader;
|
||||
import com.projectswg.holocore.resources.support.data.server_info.loader.ValidWeapon;
|
||||
@@ -332,7 +333,7 @@ public class CommandQueueService extends Service {
|
||||
}
|
||||
|
||||
private void showInvalidWeaponFlyText(CreatureObject source) {
|
||||
source.sendSelf(new ShowFlyText(source.getObjectId(), new StringId("cbt_spam", "invalid_weapon"), ShowFlyText.Scale.MEDIUM, new RGB(255, 255, 255)));
|
||||
source.sendSelf(new ShowFlyText(source.getObjectId(), new StringId("cbt_spam", "invalid_weapon"), ShowFlyText.Scale.MEDIUM, SWGColor.Whites.INSTANCE.getWhite()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user