5.24 Damage Over Time Kills Don't Give XP
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
Direzione di ricerca
Leggi la definizione di DamageOverTime in components.rs, quindi segui la sua costruzione in rawmaster.rs e effects/damage.rs. Segui la gestione degli effetti di stato in ai/initiative_system.rs. Il lavoro è completato quando il creatore dell’effetto viene preservato durante un’uccisione causata da danno nel tempo, così che il giocatore riceva XP.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Because damage effects created by a DOT status condition don't include a creator, if the player uses the effect to kill a monster they don't gain any XP from the kill.
I was able to fix it with a little bit of difficulty (all thanks to a bug in specs):
In components.rs:
#[derive(Component, Debug, ConvertSaveload, Clone)]
pub struct DamageOverTime {
pub damage: i32,
pub creator: EntityOption<Entity>,
}
This requires the entity-container workaround at https://github.com/amethyst/specs/issues/681#issuecomment-821274957 to store an optional entity.
In rawmaster.rs:
"damage_over_time" => $eb = $eb.with(DamageOverTime {
damage: effect.1.parse::<i32>().unwrap(),
creator: None.into(),
}),
Then, in effects/damage.rs, pass along the effect creator (converting to an EntityOption):
.with(DamageOverTime { damage: *damage, creator: effect.creator.into() })
And finally, in ai/initiative_system.rs, pass the status effect creator back into the effect system:
add_effect(
dot.creator.into(),
EffectType::Damage { amount: dot.damage },
Targets::Single {
target: status.target,
},
);
- Lingua principale
- Rust
- Stelle
- 968
- Fork
- 166
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di amethyst/rustrogueliketutorial
-
Wrong typing in chapter 57aAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
-
[RESOLVED] Wayland IssueAperta
Difficoltà 1/5 1-3 ore Idoneità per principianti 45/100
Tutte le issue di amethyst/rustrogueliketutorial
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
solana-foundation/pay-kit#341 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
anthropics/buffa#487 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
arkworks-rs/algebra#1161 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
lbjlaq/Antigravity-Manager#3525 · 2 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
rustdesk/rustdesk-server#708 ·