Showing from line 26 — the session's position is below, and the lines above it are not in this window.
26· let shield_pct = calculate_remaining_shield_pct(initial_shield, remaining_shield);shield_pct=100initial_shield=10000remaining_shield=10000shield_pct=100initial_shield=10000remaining_shield=10000shield_pct=90initial_shield=10000remaining_shield=9000
27· let mut damage = 0;damage=0damage=0damage=0
28· if(shield_pct == 100){shield_pct=100shield_pct=100shield_pct=90
29· damage = mass * 1;damage:0→100mass=100damage:0→2000mass=2000
30 }
31· else{
32▶ damage = mass * (100 - shield_pct);damage:0→2000mass=200shield_pct=90
33 }
34· if(damage as u32 > remaining_shield as u32){damage=100remaining_shield=10000damage=2000remaining_shield=10000→100→2000
35 damage = remaining_shield;
36 }
37· damage as Field
38 }
39
40·fn calculate_shield_regeneration(initial_shield:Field, remaining_shield:Field, shield_regen_percentage: Field) -> Field{initial_shield=10000remaining_shield=9900shield_regen_percentage=10initial_shield=10000remaining_shield=8000shield_regen_percentage=10
41
42· let mut regen = (initial_shield * shield_regen_percentage) / 100;regen=1000initial_shield=10000shield_regen_percentage=10regen=1000initial_shield=10000shield_regen_percentage=10
43· if((remaining_shield + regen) as u32 > initial_shield as u32){remaining_shield=9900regen=1000initial_shield=10000remaining_shield=8000regen=1000initial_shield=10000→1000
44· regen = initial_shield - remaining_shield;regen=1000initial_shield=10000remaining_shield=9900→100
45 }
46· regen as Field
47 }
48·fn calculate_remaining_shield_pct(initial_shield: Field, remaining_shield: Field) -> Field {initial_shield=10000remaining_shield=10000initial_shield=10000remaining_shield=10000remaining_shield=9000initial_shield=10000remaining_shield=9000
49· let result = (remaining_shield * 100) as u32 / initial_shield as u32;result=100remaining_shield=10000initial_shield=10000result=100remaining_shield=10000initial_shield=10000result=90remaining_shield=9000result=90remaining_shield=9000initial_shield=10000
50· result as Fieldresult=100result=100result=90result=90→100→100→90→90
51 }
52
53·fn status_report(iteration: u32 ,initial_shield: Field, remaining_shield: Field, damage: Field, regenerated_shield: Field){iteration=0initial_shield=10000remaining_shield=10000damage=100regenerated_shield=100iteration=1initial_shield=10000remaining_shield=9000damage=2000regenerated_shield=1000
54· println(f"----- iteration {iteration} -----");iteration=0iteration=1
55
56
57· let damage_as_u32 = damage as u32;damage_as_u32=100damage=100damage_as_u32=2000damage=2000
58· println(f"Damage: {damage_as_u32}");damage_as_u32=100damage_as_u32=2000
59
60· let regenerated_shield_as_u32 = regenerated_shield as u32;regenerated_shield_as_u32=100regenerated_shield=100regenerated_shield_as_u32=1000regenerated_shield=1000
61· println(f"Regenerated {regenerated_shield_as_u32} energy");regenerated_shield_as_u32=100regenerated_shield_as_u32=1000
62
63· let remaining_shield_as_u32 = remaining_shield as u32;remaining_shield_as_u32=10000remaining_shield=10000remaining_shield_as_u32=9000remaining_shield=9000
64· let remaining_shield_pct = calculate_remaining_shield_pct(initial_shield, remaining_shield);remaining_shield_pct=100initial_shield=10000remaining_shield=10000remaining_shield_pct=90initial_shield=10000remaining_shield=9000
65· let remaining_shield_pct_as_u32 = remaining_shield_pct as u32;remaining_shield_pct_as_u32=100remaining_shield_pct=100remaining_shield_pct_as_u32=90remaining_shield_pct=90
66· println(f"Shield status {remaining_shield_pct_as_u32}% {remaining_shield_as_u32}");remaining_shield_pct_as_u32=100remaining_shield_as_u32=10000remaining_shield_pct_as_u32=90remaining_shield_as_u32=9000
67 }