Problem beim Umgang mit Array
Hallo, ich habe hier folgende Funktion, die leider nicht das macht, was sie machen soll.
Sinn ist folgender: Manche Waffen haben einen eigenen Parameter im Name (gekennzeichnet durch !...) und durch den bekommt der Kämpfer neue Skills. Alle Angriffe sind so quasi von Waffen abhängig.
Unterschiedliche Waffen, unterschiedliche Parameter, unterschiedliche Angriffe.
Funktioniert auch alles soweit, Problem ist die for-Schleife zum Schluss:
Diese löscht das 0. Element aus dem Array skills_neu UND aus @skills. dadurch wird das eigentlich 1. Element zum 0. und dann übersprungen.
Das ist aber Quatsch, der soll das Element doch nur aus skills_neu löschen...
Warum löscht der das auch aus @skills?
Code:
def angriffe_setzen(waffe)
skills_neu = @skills
if waffe.include?("!M")
# Machtwaffen
skills_neu.push(3) # Angriff
elsif waffe.include?("!S")
# Schusswaffen
skills_neu.push(2) # Angriff
skills_neu.push(5) # Gezielter Angriff
elsif !waffe.include?("")
# Normale Waffen
skills_neu.push(1) # Angriff
if waffe.include?("!r") or waffe.include?("!m")
skills_neu.push(4) # Gezielter Angriff
end
if waffe.include?("!m")
skills_neu.push(24) # Meucheln
end
end
for i in 0..@skills.size
if @skills[i] < 25
skills_neu.delete_at(i)
else
break
end
end
@skills = skills_neu
@skills.sort!
end
Außerdem bin ich für Optimierungsvorschläge dankbar ^_^"