Buggy code:
public abstract class Char extends Actor { public static final int NEUTER = 0 ; public static final int MASCULINE = 1 ; public static final int FEMININE = 2 ; protected static final String [ ] TXT_HIT = Game . getVars ( Char_Hit ) ; protected static final String [ ] TXT_KILL = Game . getVars ( Char_Kill ) ; protected static final String [ ] TXT_DEFEAT = Game . getVars ( Char_Defeat ) ; private static final String TXT_YOU_MISSED = Game . getVar ( Char_YouMissed ) ; private static final String TXT_SMB_MISSED = Game . getVar ( Char_SmbMissed ) ; private static final String TXT_OUT_OF_PARALYSIS = Game . getVar ( Char_OutParalysis ) ; public int pos = 0 ; public CharSprite sprite ; public String name = Game . getVar ( Char_Name ) ; public String name_objective = Game . getVar ( Char_Name_Objective ) ; protected String description = Game . getVar ( Mob_Desc ) ; private String defenceVerb = null ; public int gender = Char . NEUTER ; public int HT ; public int HP ; protected float baseSpeed = 1 ; public boolean paralysed = false ; public boolean pacified = false ; public boolean rooted = false ; public boolean flying = false ; public int invisible = 0 ; public int viewDistance = 8 ; private HashSet < Buff > buffs = new HashSet < Buff > ( ) ; @ Override protected boolean act ( ) { } private static final String POS = "pos" ; private static final String TAG_HP = "HP" ; private static final String TAG_HT = "HT" ; private static final String BUFFS = "buffs" ; @ Override public void storeInBundle ( Bundle bundle ) { } @ Override public void restoreFromBundle ( Bundle bundle ) { } private void setCharGender ( String sGender ) { } protected String getClassParam ( String paramName , String defaultValue , boolean warnIfAbsent ) { } protected void readCharData ( ) { } public boolean attack ( Char enemy ) { boolean visibleFight = ( Dungeon . visible [ pos ] ) || ( Dungeon . visible [ enemy . pos ] ) ; if ( Char . hit ( this , enemy , false ) ) { if ( visibleFight ) { GLog . i ( Char . TXT_HIT [ gender ] , name , enemy . name_objective ) ; } int dr = ( ( ( ( this ) instanceof Hero ) && ( ( ( ( Hero ) ( this ) ) . rangedWeapon ) != null ) ) && ( ( ( ( Hero ) ( this ) ) . subClass ) == ( HeroSubClass . SNIPER ) ) ) ? 0 : Random . IntRange ( 0 , enemy . dr ( ) ) ; int dmg = damageRoll ( ) ; int effectiveDamage = Math . max ( ( dmg - dr ) , 0 ) ; effectiveDamage = attackProc ( enemy , effectiveDamage ) ; effectiveDamage = enemy . defenseProc ( this , effectiveDamage ) ; enemy . damage ( effectiveDamage , this ) ; if ( visibleFight ) { INSTANCE . play ( SND_HIT , 1 , 1 , Random . Float ( 0.8F , 1.25F ) ) ; } if ( enemy == ( Dungeon . hero ) ) { hero . interrupt ( ) ; } enemy . sprite . bloodBurstA ( sprite . center ( ) , effectiveDamage ) ; enemy . sprite . flash ( ) ; if ( ( ! ( enemy . isAlive ( ) ) ) && visibleFight ) { if ( enemy == ( Dungeon . hero ) ) { if ( ( hero . killerGlyph ) != null ) { Dungeon . fail ( Utils . format ( GLYPH , killerGlyph . name ( ) , depth ) ) ; <START_BUG> GLog . n ( Char . TXT_KILL [ Char . MASCULINE ] , killerGlyph . name ( ) ) ; <END_BUG> } else { if ( Bestiary . isUnique ( this ) ) { Dungeon . fail ( Utils . format ( BOSS , name , depth ) ) ; } else { Dungeon . fail ( Utils . format ( MOB , Utils . indefinite ( name ) , depth ) ) ; } GLog . n ( Char . TXT_KILL [ gender ] , name ) ; } } else { GLog . i ( Char . TXT_DEFEAT [ gender ] , name , enemy . name_objective ) ; } } return true ; } else { if ( visibleFight ) { String defense = enemy . defenseVerb ( ) ; enemy . sprite . showStatus ( NEUTRAL , defense ) ; if ( ( this ) == ( Dungeon . hero ) ) { GLog . i ( Char . TXT_YOU_MISSED , enemy . name , defense ) ; } else { GLog . i ( Char . TXT_SMB_MISSED , enemy . name , defense , name ) ; } INSTANCE . play ( SND_MISS ) ; } return false ; } } public static boolean hit ( Char attacker , Char defender , boolean magic ) { } public int attackSkill ( Char target ) { } public int defenseSkill ( Char enemy ) { } public String defenseVerb ( ) { } public int dr ( ) { } public int damageRoll ( ) { } public int attackProc ( Char enemy , int damage ) { } public int defenseProc ( Char enemy , int damage ) { } public float speed ( ) { } public void damage ( int dmg , Object src ) { } public void destroy ( ) { } public void die ( Object src ) { } public boolean isAlive ( ) { } @ Override protected void spend ( float time ) { } public HashSet < Buff > buffs ( ) { }

Fix:
GLog . n ( Char . TXT_KILL [ hero . gender ] , killerGlyph . name ( ) ) ;