@@ -1493,7 +1493,7 @@ impl Skill {
1493
1493
}
1494
1494
}
1495
1495
Self :: guard => Tgt :: crea,
1496
- Self :: haunt => Tgt :: crea,
1496
+ Self :: haunt => tgt ! ( and crea not skele ) ,
1497
1497
Self :: heal => tgt ! ( or crea play) ,
1498
1498
Self :: holylight => tgt ! ( or crea play) ,
1499
1499
Self :: icebolt => tgt ! ( or crea play) ,
@@ -3167,7 +3167,13 @@ impl Skill {
3167
3167
}
3168
3168
for & ( k, v) in tstatus. iter ( ) {
3169
3169
match k {
3170
- Stat :: hp | Stat :: maxhp | Stat :: atk | Stat :: card | Stat :: costele | Stat :: shardgolem | Stat :: swarmhp => ( ) ,
3170
+ Stat :: hp
3171
+ | Stat :: maxhp
3172
+ | Stat :: atk
3173
+ | Stat :: card
3174
+ | Stat :: costele
3175
+ | Stat :: shardgolem
3176
+ | Stat :: swarmhp => ( ) ,
3171
3177
Stat :: castele | Stat :: cast => {
3172
3178
if setcast {
3173
3179
ctx. set ( equip, k, v)
@@ -4845,6 +4851,22 @@ impl Skill {
4845
4851
let owner = ctx. get_owner ( c) ;
4846
4852
let foe = ctx. get_foe ( owner) ;
4847
4853
let upped = card:: Upped ( ctx. get ( c, Stat :: card) ) ;
4854
+ let mut perms = Vec :: with_capacity ( 18 ) ;
4855
+ for i in 0 ..2 {
4856
+ let plpl = ctx. get_player ( if i == 0 { owner } else { foe } ) ;
4857
+ perms. clear ( ) ;
4858
+ perms. extend (
4859
+ once ( plpl. weapon )
4860
+ . chain ( once ( plpl. shield ) )
4861
+ . chain ( plpl. permanents . into_iter ( ) )
4862
+ . filter ( |& pr| pr != 0 && ctx. material ( pr, None ) ) ,
4863
+ ) ;
4864
+ for id in perms. iter ( ) . cloned ( ) {
4865
+ if ctx. get ( id, Stat :: frozen) > 0 {
4866
+ ctx. shatter ( id) ;
4867
+ }
4868
+ }
4869
+ }
4848
4870
for i in 0 ..3 {
4849
4871
let pl = if i == 2 {
4850
4872
if upped {
@@ -4855,19 +4877,14 @@ impl Skill {
4855
4877
} else {
4856
4878
foe
4857
4879
} ;
4858
- let mut perms = Vec :: with_capacity ( 18 ) ;
4859
4880
let plpl = ctx. get_player ( pl) ;
4881
+ perms. clear ( ) ;
4860
4882
perms. extend (
4861
4883
once ( plpl. weapon )
4862
4884
. chain ( once ( plpl. shield ) )
4863
4885
. chain ( plpl. permanents . into_iter ( ) )
4864
4886
. filter ( |& pr| pr != 0 && ctx. material ( pr, None ) ) ,
4865
4887
) ;
4866
- for id in perms. iter ( ) . cloned ( ) {
4867
- if ctx. get ( id, Stat :: frozen) > 0 {
4868
- ctx. shatter ( id) ;
4869
- }
4870
- }
4871
4888
if let Some ( & pr) = ctx. choose ( & perms) {
4872
4889
ctx. fx ( pr, Fx :: Shuffled ) ;
4873
4890
let newowner = if ctx. next32 ( ) & 1 == 0 { pl } else { ctx. get_foe ( pl) } ;
0 commit comments