forked from blasthavers/blastmud
Fixups for attack after attacker leaves.
This commit is contained in:
parent
b28ea26d8a
commit
9046218155
@ -117,7 +117,9 @@ async fn list_item_contents<'l>(ctx: &'l VerbContext<'_>, item: &'l Item) -> URe
|
|||||||
Subattack::Wrestling => buf.push_str(", wrestling "),
|
Subattack::Wrestling => buf.push_str(", wrestling "),
|
||||||
_ => buf.push_str(", attacking ")
|
_ => buf.push_str(", attacking ")
|
||||||
}
|
}
|
||||||
match &head.presence_target {
|
match &head.active_combat.as_ref()
|
||||||
|
.and_then(|ac| ac.attacking.clone())
|
||||||
|
.or_else(|| head.presence_target.clone()) {
|
||||||
None => buf.push_str("someone"),
|
None => buf.push_str("someone"),
|
||||||
Some(who) => match who.split_once("/") {
|
Some(who) => match who.split_once("/") {
|
||||||
None => buf.push_str("someone"),
|
None => buf.push_str("someone"),
|
||||||
|
@ -21,7 +21,7 @@ use crate::{
|
|||||||
services::{
|
services::{
|
||||||
broadcast_to_room,
|
broadcast_to_room,
|
||||||
skills::skill_check_and_grind,
|
skills::skill_check_and_grind,
|
||||||
combat::stop_attacking,
|
combat::stop_attacking_mut,
|
||||||
combat::handle_resurrect,
|
combat::handle_resurrect,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -97,7 +97,9 @@ pub async fn attempt_move_immediate(
|
|||||||
Some(old_victim) => {
|
Some(old_victim) => {
|
||||||
if let Some((vcode, vtype)) = old_victim.split_once("/") {
|
if let Some((vcode, vtype)) = old_victim.split_once("/") {
|
||||||
if let Some(vitem) = trans.find_item_by_type_code(vcode, vtype).await? {
|
if let Some(vitem) = trans.find_item_by_type_code(vcode, vtype).await? {
|
||||||
stop_attacking(trans, &mover, &vitem).await?;
|
let mut vitem_mut = (*vitem).clone();
|
||||||
|
stop_attacking_mut(trans, &mut mover, &mut vitem_mut, false).await?;
|
||||||
|
trans.save_item_model(&vitem_mut).await?
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -126,7 +128,9 @@ pub async fn attempt_move_immediate(
|
|||||||
&attacker_names_str))).await?;
|
&attacker_names_str))).await?;
|
||||||
}
|
}
|
||||||
for item in &attacker_items[..] {
|
for item in &attacker_items[..] {
|
||||||
stop_attacking(trans, &item, &mover).await?;
|
let mut item_mut = (**item).clone();
|
||||||
|
stop_attacking_mut(trans, &mut item_mut, &mut mover, true).await?;
|
||||||
|
trans.save_item_model(&item_mut).await?;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if let Some(ctx) = player_ctx.as_ref() {
|
if let Some(ctx) = player_ctx.as_ref() {
|
||||||
|
Loading…
Reference in New Issue
Block a user