@Override public int getTargetNameIdx() { return (int) e.getProperty(indices.targetNameIdx); }
@Override public boolean hasTargetSourceName() { return (int) e.getProperty(indices.targetSourceNameIdx) != 0; }
@Override public boolean isTargetHero() { return indices.targetHeroIdx != null ? (boolean) e.getProperty(indices.targetHeroIdx) : true; }
@Override public float getTimestamp() { return e.getProperty(indices.timestampIdx); }
@Override public int getTargetSourceNameIdx() { return (int) e.getProperty(indices.targetSourceNameIdx); }
@Override public int getAttackerNameIdx() { return (int) e.getProperty(indices.attackerNameIdx); }
@Override public boolean hasDamageSourceName() { return (int) e.getProperty(indices.sourceNameIdx) != 0; }
@Override public boolean isTargetIllusion() { return e.getProperty(indices.targetIllusionIdx); }
@Override public boolean isAbilityToggleOn() { return indices.abilityToggleOnIdx != null ? (boolean) e.getProperty(indices.abilityToggleOnIdx) : false; }
@Override public boolean hasInflictorName() { return (int) e.getProperty(indices.inflictorNameIdx) != 0; }
@Override public boolean isAttackerHero() { return indices.attackerHeroIdx != null ? (boolean) e.getProperty(indices.attackerHeroIdx) : true; }
@Override public boolean isTargetIllusion() { return e.getProperty(indices.targetIllusionIdx); }
@Override public boolean isAbilityToggleOff() { return indices.abilityToggleOffIdx != null ? (boolean) e.getProperty(indices.abilityToggleOffIdx) : false; }
@Override public boolean hasTargetName() { return (int) e.getProperty(indices.targetNameIdx) != 0; }
@Override public boolean hasInflictorName() { return (int) e.getProperty(indices.inflictorNameIdx) != 0; }
@Override public boolean isAttackerHero() { return indices.attackerHeroIdx != null ? (boolean) e.getProperty(indices.attackerHeroIdx) : true; }
@Override public int getAbilityLevel() { return indices.abilityLevelIdx != null ? (int) e.getProperty(indices.abilityLevelIdx) : 0; }
@Override public float getTimestampRaw() { return indices.timestampRawIdx == null ? (float) e.getProperty(indices.timestampRawIdx) : 0.0f; }
@Override public DotaUserMessages.DOTA_COMBATLOG_TYPES getType() { return DotaUserMessages.DOTA_COMBATLOG_TYPES.valueOf((int) e.getProperty(indices.typeIdx)); }
@Override public String getAttackerName() { return readCombatLogName((int) e.getProperty(indices.attackerNameIdx)); }