1012Fermer
deephLe 31/01/2013 à 19:23
Merci pour la routine ! Mais est-ce qu'elle permet de démarrer à n'importe quelles coordonnées (même non alignées) ? Ça me fait penser, je suis sûr qu'elle pourra servir à pas mal de monde : http://www.omnimaga.org/index.php?topic=1598.msg256238#msg256238

Sinon je pensais en faire une facilement avec _darkline, mais le flag bufferOnly n'existe pas sur 83... Peut être qu'en utilisant simplement une bonne routine de ligne avec un djnz ferait l'affaire...

Pour les APPS, en pratique je ne vois pas trop comment charger les routines en RAM... ? Autant modifier la source pour travailler avec les saferam, non ?

Et pour ce qui est des metatiles, je n'ai pas trop compris l'intérêt (c'est simplement le fait de tous les regrouper en mémoire, non ? Parce que c'est déjà le cas pour les tiles mais pas pour les sprites, mais dans les deux cas je ne vais pas les modifier).

D'ailleurs je vais peut être pouvoir modifier la taille des sprites des pokémons (de 40*26 à 32*26), enfin si ça rentre.

Sinon pour Pokémon Topaze, effectivement ça m'a pas mal motivé à terminer le mien (et je me suis inspiré de quelques sprites/"mises en pages", j'espère que ça dérangera pas Hayleia), mais pour le reste c'est de l'Axe (et je n'y connais rien), donc je préfère coder le mien sans trop comparer les méthodes smile

Là j'en suis à calculer les dégâts, c'est pas trop difficile avec les OP, et la formule est détaillée ici : http://www.pokepedia.fr/index.php/Calcul_des_d%C3%A9g%C3%A2ts

Tiens d'ailleurs ça me fait penser, Zeph, un admin de yN a rajouté les brushes z80 et ARM à la balise [source] (c'est pas encore officiel donc je ferai une annonce plus tard). On peut s'en servir comme ça : [source=z80][/source] smile

edit :
PJsf

J'ai un début de code pour calculer les dommages (en plus de ça il faudra que j'ajoute une animation pour les dommages, ou peut être simplement faire clignoter les sprites) :
Routine de calcul des dommages
calculate_damages:	; output : a = int((((hl+1*0.4+2)*[attack_power])*(hl+(pokemon_att-pokemon_stats))/(de+(pokemon_def-pokemon_lvl))*50+2)*CE)
	push hl
	ld h,0
	ld l,opponent_pokemon_stats_def-opponent_pokemon_stats
	add hl,de
	ld l,(hl)	; on a DEF
	ld h,0
	bcall _setxxxxop2
	ld a,50
	bcall _setxxop1
	bcall _fpmult
	bcall _op1toop4
	ld a,2
	bcall _setxxop1
	ld a,5
	bcall _setxxop2
	bcall _fpdiv
	pop hl
	push hl
	inc hl	; son niveau
	ld l,(hl)
	ld h,0
	bcall _setxxxxop2
	bcall _fpmult
	ld a,2
	bcall _setxxop2
	bcall _fpadd
	pop hl
	ld d,0
	ld e,pokemon_att-pokemon_stats
	add hl,de
	ld l,(hl)	; on a ATT
	ld h,0
	bcall _setxxxxop2
	bcall _fpmult
	ld a,(current_attack)
	call find_attack_a
	ld d,0
	ld e,attack_power-attack_data
	add hl,de
	ld l,(hl)
	ld h,d
	bcall _setxxxxop2
	bcall _fpmult
	bcall _op4toop2
	bcall _fpdiv
	ld a,2
	bcall _setxxop2
	bcall _fpadd
CE = $+1
	ld a,0
	bcall _setxxop2
	bcall _fpmult
	bcall _int
	bcall _convop1
	; rajouter la marge d'erreur de 15% (0.85 à 1 fois le résultat)
	ret

Il me reste plus qu'a "boucler" les combats et je posterai le nouveau code smile

(par contre si le sabelette niveau 32 n'inflige que 29 points de vie en moins au pauvre chenipan niveau 2 c'est parce que je ne lui ai pas mis les bonnes stats d'attaque)

Ah et j'en suis à 9263 octets !