status attack () living.c Denna funktion är "hjärtat" i stridshanteringen. Funktionen returnerar 1 om striden fortfarande pågår (dvs attacker_ob fortfarande pekar på ett objekt), annars 0. Först kollas om attacker_ob != 0. Om attacker_ob existerar kontrolleras om detta fortfarande finns kvar i rummet. Om attacker_ob inte finns i rummet, inte har dött (är ett spöke) och kommandogivaren inte är jagad, sätts kommandogivaren till att jaga attacker_ob. Se vidare move_player. attacker_ob nollställs, och om det finns ett alt_attacker_ob sätts attacker_ob till detta, och attack anropas rekursivt. Finns attacker_ob i samma rum, sker anfallet. Först kollas om variabeln spell_cost != 0. Är den skild från 0 minskas sp i kommandogivaren med detta värde. Funktionen hit() anropas i det fattade vapnet, och om hit() returnerar en siffra, läggs denna ihop med vapnets vanliga wc. Detta värde multipliceras med 2, läggs ihop med medelvärdet av kommandogivarens Str och Dex och delas slutligen med 3. Är slutvärdet 0 sätts det till 1. Om attacker_ob fortfarande finns (rekursion i hit() kan göra att det inte finns) anropas hit_player() i attacker_ob med random (slutvärde) plus värdet i variabeln spell_dam (som sätts samtidigt med spell_cost). Returnerar hit_player() 0, eller hit() returnerade strängen "miss", nollställs spell_dam och spell_cost, och 1 returneras. Returneras däremot ett tal (dvs attacker_ob skadades), kontrolleras det om attacker_ob fortfarande lever, en sträng om skadan skrivs ut och 1 returneras. Lever inte fienden meddelas detta, attacker_ob sätts om till alt_attacker_ob, alt_attacker_ob nollställs och 1 returneras.